UNPKG

@polyfill-io-aot/builder

Version:

This is the builder module for polyfill-io-aot.

46 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Bluebird = require("bluebird"); const fs = require("fs-extra"); const path_1 = require("path"); const Executor_1 = require("./Executor"); const symbols_1 = require("./symbols"); /** @internal */ class CopyExecutor extends Executor_1.Executor { execute() { this._ora.start(this.startText); this.emit(this.allStart); const copyOpts = { errorOnExist: false, overwrite: true, preserveTimestamps: true, recursive: this.isDir }; Bluebird .map(this.source, (cpp) => { const target = path_1.join(this.builder[symbols_1.POLYFILLS_ROOT], cpp.relative); const emptyingPromise = this.isDir ? fs.emptyDir(target) : Promise.resolve(); return emptyingPromise .then(() => { this.emit(this.oneStart, cpp.absolute, target); return fs.copy(cpp.absolute, target, copyOpts); }) .then(() => { this.emit(this.oneOk, cpp.absolute, target); }) .catch((e) => { this.emit(this.oneErr, cpp.absolute, target, e); throw e; }); }) .then(() => { this._ora.succeed(this.okText); this.emit(this.allOk); }, (e) => { this._ora.fail(`Copy operation failed: ${this.formatError(e)}`); this.onError(e); }); } } exports.CopyExecutor = CopyExecutor; //# sourceMappingURL=CopyExecutor.js.map