fix(core): update

This commit is contained in:
Philipp Kunz 2024-04-24 18:14:57 +02:00
parent 2bee288dac
commit c9eb03dc31
4 changed files with 24 additions and 29 deletions

View File

@ -9,17 +9,17 @@ import * as smartexpose from '../ts/index.js'
let testSmartexpose: smartexpose.SmartExpose;
tap.test('should create a valid instance of smartexpose using Webdav', async () => {
testSmartexpose = await smartexpose.SmartExpose.createWithWebdav({
webdavCredentials: {
serverUrl: await testQenv.getEnvVarOnDemand('WEBDAV_SERVER_URL'),
password: await testQenv.getEnvVarOnDemand('WEBDAV_SERVER_TOKEN'),
testSmartexpose = new smartexpose.SmartExpose({
webdav: {
webdavCredentials: {
serverUrl: await testQenv.getEnvVarOnDemand('WEBDAV_SERVER_URL'),
password: await testQenv.getEnvVarOnDemand('WEBDAV_SERVER_TOKEN'),
},
webdavSubPath: await testQenv.getEnvVarOnDemand('WEBDAV_SUB_PATH'),
},
webdavSubPath: await testQenv.getEnvVarOnDemand('WEBDAV_SUB_PATH'),
exposeOptions: {
deleteAfterMillis: 30000,
privateUrl: true,
exposedBaseUrl: await testQenv.getEnvVarOnDemand('EXPOSED_BASE_URL'),
}
deleteAfterMillis: 30000,
privateUrl: true,
exposedBaseUrl: await testQenv.getEnvVarOnDemand('EXPOSED_BASE_URL'),
});
await testSmartexpose.start();
expect(testSmartexpose).toBeInstanceOf(smartexpose.SmartExpose);

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartexpose',
version: '1.0.3',
version: '1.0.4',
description: 'a package to expose things to the internet'
}

View File

@ -12,8 +12,9 @@ export class WebDavExposeProvider extends ExposeProvider {
public webdavClient: plugins.smartwebdav.WebdavClient;
public options: IWebdavExposeProviderOptions;
constructor(optionsArg: IWebdavExposeProviderOptions) {
constructor(smartexposeRefArg: SmartExpose, optionsArg: IWebdavExposeProviderOptions) {
super();
this.smartExposeRef = smartexposeRefArg;
this.options = optionsArg;
}

View File

@ -6,36 +6,30 @@ export interface ISmartExposeOptions {
deleteAfterMillis?: number,
privateUrl?: boolean,
exposedBaseUrl: string,
webdav?: {
webdavCredentials: plugins.smartwebdav.IWebdavClientOptions,
webdavSubPath: string,
}
}
export class SmartExpose {
// STATIC
public static createWithWebdav(optionsArg: {
webdavCredentials: plugins.smartwebdav.IWebdavClientOptions,
webdavSubPath: string,
exposeOptions: ISmartExposeOptions,
}) {
const provider = new WebDavExposeProvider({
webdavCredentials: optionsArg.webdavCredentials,
webdavSubPath: optionsArg.webdavSubPath,
});
const smartexposeInstance = new SmartExpose(provider, optionsArg.exposeOptions);
provider.smartExposeRef = smartexposeInstance;
return smartexposeInstance;
}
// INSTANCE
public taskmanager: plugins.taskbuffer.TaskManager;
public provider: ExposeProvider;
public options: ISmartExposeOptions;
constructor(provider: ExposeProvider, optionsArg: ISmartExposeOptions) {
this.provider = provider;
constructor(optionsArg: ISmartExposeOptions) {
this.options = optionsArg;
}
public async start() {
this.taskmanager = new plugins.taskbuffer.TaskManager();
if (this.options.webdav) {
this.provider = new WebDavExposeProvider(this, {
webdavCredentials: this.options.webdav.webdavCredentials,
webdavSubPath: this.options.webdav.webdavSubPath,
});
}
await this.provider.start();
this.taskmanager.start();
}