import { FakeFsGoogleDrive } from "../pro/src/fsGoogleDrive"; import type { RemotelySavePluginSettings } from "./baseTypes"; import type { FakeFs } from "./fsAll"; import { FakeFsDropbox } from "./fsDropbox"; import { FakeFsOnedrive } from "./fsOnedrive"; import { FakeFsS3 } from "./fsS3"; import { FakeFsWebdav } from "./fsWebdav"; import { FakeFsWebdis } from "./fsWebdis"; /** * To avoid circular dependency, we need a new file here. */ export function getClient( settings: RemotelySavePluginSettings, vaultName: string, saveUpdatedConfigFunc: () => Promise ): FakeFs { switch (settings.serviceType) { case "s3": return new FakeFsS3(settings.s3); case "webdav": return new FakeFsWebdav( settings.webdav, vaultName, saveUpdatedConfigFunc ); case "dropbox": return new FakeFsDropbox( settings.dropbox, vaultName, saveUpdatedConfigFunc ); case "onedrive": return new FakeFsOnedrive( settings.onedrive, vaultName, saveUpdatedConfigFunc ); case "webdis": return new FakeFsWebdis( settings.webdis, vaultName, saveUpdatedConfigFunc ); case "googledrive": return new FakeFsGoogleDrive( settings.googledrive, vaultName, saveUpdatedConfigFunc ); default: throw Error(`cannot init client for serviceType=${settings.serviceType}`); } }