46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { RemotelySavePluginSettings } from "./baseTypes";
|
|
import { FakeFs } from "./fsAll";
|
|
import { FakeFsDropbox } from "./fsDropbox";
|
|
import { FakeFsOnedrive } from "./fsOnedrive";
|
|
import { FakeFsS3 } from "./fsS3";
|
|
import { FakeFsWebdav } from "./fsWebdav";
|
|
|
|
/**
|
|
* To avoid circular dependency, we need a new file here.
|
|
*/
|
|
export function getClient(
|
|
settings: RemotelySavePluginSettings,
|
|
vaultName: string,
|
|
saveUpdatedConfigFunc: () => Promise<any>
|
|
): FakeFs {
|
|
switch (settings.serviceType) {
|
|
case "s3":
|
|
return new FakeFsS3(settings.s3);
|
|
break;
|
|
case "webdav":
|
|
return new FakeFsWebdav(
|
|
settings.webdav,
|
|
vaultName,
|
|
saveUpdatedConfigFunc
|
|
);
|
|
break;
|
|
case "dropbox":
|
|
return new FakeFsDropbox(
|
|
settings.dropbox,
|
|
vaultName,
|
|
saveUpdatedConfigFunc
|
|
);
|
|
break;
|
|
case "onedrive":
|
|
return new FakeFsOnedrive(
|
|
settings.onedrive,
|
|
vaultName,
|
|
saveUpdatedConfigFunc
|
|
);
|
|
break;
|
|
default:
|
|
throw Error(`cannot init client for serviceType=${settings.serviceType}`);
|
|
break;
|
|
}
|
|
}
|