UNPKG

@mieweb/wikigdrive

Version:

Google Drive to MarkDown synchronization

34 lines (31 loc) 990 B
import {FileContentService} from '../utils/FileContentService.ts'; import {AuthConfig} from '../model/AccountJson.ts'; import {UsageError} from './usage.ts'; interface Params { client_id?: string; client_secret?: string; service_account?: string; } export async function getAuthConfig(params: Params, mainFileService: FileContentService): Promise<AuthConfig> { if (params.service_account) { const rootFileService = new FileContentService('/'); return { service_account: await rootFileService.readJson(params.service_account) }; } else if (params.client_id && params.client_secret) { return { user_account: { type: 'user_account', client_id: params.client_id, client_secret: params.client_secret } }; } else { const authConfig = await mainFileService.readJson('auth_config.json'); if (!authConfig) { throw new UsageError('No authentication credentials provided'); } return authConfig; } }