js-uploader
Version:
A JavaScript library for file upload
33 lines • 1.56 kB
JavaScript
import { from, of } from 'rxjs';
import { map } from 'rxjs/operators';
import { OSSProvider } from '../../interface';
import { AwsS3TaskHandler } from './AwsS3TaskHandler';
import { CommonsTaskHandler } from './CommonsTaskHandler';
import { QiniuOSSTaskHandler } from './QiniuOSSTaskHandler';
import { QiniuOSSTaskHandler_v2 } from './QiniuOSSTaskHandler_v2';
function toObserverble(input) {
return input && input instanceof Promise ? from(input) : of(input);
}
export function handle(task, uploaderOptions) {
var ossOptions = uploaderOptions.ossOptions;
return toObserverble(ossOptions === null || ossOptions === void 0 ? void 0 : ossOptions.enable(task)).pipe(map(function (enable) {
if (enable) {
switch (ossOptions === null || ossOptions === void 0 ? void 0 : ossOptions.provider) {
case OSSProvider.Qiniu:
return new QiniuOSSTaskHandler(task, uploaderOptions);
case OSSProvider.Qiniu_v2:
return new QiniuOSSTaskHandler_v2(task, uploaderOptions);
case OSSProvider.S3:
return new AwsS3TaskHandler(task, uploaderOptions);
default:
throw new Error("unkown OSSProvider:" + (ossOptions === null || ossOptions === void 0 ? void 0 : ossOptions.provider));
}
}
else {
return new CommonsTaskHandler(task, uploaderOptions);
}
}));
}
export * from './CommonsTaskHandler';
export * from './TaskHandler';
//# sourceMappingURL=index.js.map