34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import type { ExposeProvider } from './classes.exposeprovider.js';
 | |
| import { WebDavExposeProvider } from './classes.exposeprovider.webdav.js';
 | |
| import * as plugins from './plugins.js';
 | |
| 
 | |
| export interface ISmartExposeOptions {
 | |
|   deleteAfterMillis?: number,
 | |
|   privateUrl?: boolean,
 | |
| }
 | |
| 
 | |
| export class SmartExpose {
 | |
|   // STATIC
 | |
|   public static createWithWebdav(optionsArg: {
 | |
|     webdavCredentials: plugins.smartwebdav.IWebdavClientOptions,
 | |
|     webdavSubPath: string,
 | |
|     exposedBaseUrl: string,
 | |
|     exposeOptions: ISmartExposeOptions,
 | |
|   }) {
 | |
|     const provider = new WebDavExposeProvider({
 | |
|       webdavCredentials: optionsArg.webdavCredentials,
 | |
|       webdavSubPath: optionsArg.webdavSubPath,
 | |
|     });
 | |
|     const smartexposeInstance = new SmartExpose(provider, optionsArg.exposeOptions);
 | |
|     return smartexposeInstance;
 | |
|   }
 | |
| 
 | |
|   // INSTANCE
 | |
|   public taskmanager: plugins.taskbuffer.TaskManager;
 | |
|   public options: ISmartExposeOptions;
 | |
| 
 | |
|   constructor(provider: ExposeProvider, optionsArg: ISmartExposeOptions) {
 | |
|     this.options = optionsArg;
 | |
|   }
 | |
| }
 |