UNPKG

@mieweb/wikigdrive

Version:

Google Drive to MarkDown synchronization

63 lines (62 loc) 2.06 kB
import { QueueTask } from './QueueTask.js'; export class TaskFetchBinary extends QueueTask { constructor(logger, googleDriveService, auth, fileService, file, forceDownload, mimeType, ext) { super(logger); Object.defineProperty(this, "logger", { enumerable: true, configurable: true, writable: true, value: logger }); Object.defineProperty(this, "googleDriveService", { enumerable: true, configurable: true, writable: true, value: googleDriveService }); Object.defineProperty(this, "auth", { enumerable: true, configurable: true, writable: true, value: auth }); Object.defineProperty(this, "fileService", { enumerable: true, configurable: true, writable: true, value: fileService }); Object.defineProperty(this, "file", { enumerable: true, configurable: true, writable: true, value: file }); Object.defineProperty(this, "forceDownload", { enumerable: true, configurable: true, writable: true, value: forceDownload }); Object.defineProperty(this, "mimeType", { enumerable: true, configurable: true, writable: true, value: mimeType }); Object.defineProperty(this, "ext", { enumerable: true, configurable: true, writable: true, value: ext }); } async run() { const assetPath = this.file.id + '.' + this.ext; if (await this.fileService.exists(assetPath) && !this.forceDownload) { return []; } await this.googleDriveService.download(this.auth, { id: this.file.id, mimeType: this.mimeType, name: this.file.name }, this.fileService.createWriteStream(assetPath)); return []; } }