UNPKG

@codification/cutwater-build-typescript

Version:

Tasks for compiling and linting TypeScript.

75 lines 2.92 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TscTask = void 0; const cutwater_build_core_1 = require("@codification/cutwater-build-core"); class TscTask extends cutwater_build_core_1.GulpTask { constructor() { super('tsc', { spawn: cutwater_build_core_1.Spawn.create(), options: {}, spawnOpts: { command: 'tsc', quiet: false, ignoreErrors: false, cwd: process.cwd(), env: {}, }, }); } executeTask() { return __awaiter(this, void 0, void 0, function* () { const options = this.config.options || {}; options.outDir = options.outDir || this.buildConfig.libFolder; const args = `${this.prepareOptions()}`; this.logVerbose(`Running: tsc ${args}`); yield this.config.spawn.execute(Object.assign(Object.assign({ logger: this.logger() }, this.config.spawnOpts), { args })); }); } toArgString(args) { const argArray = Object.keys(args).map((property) => { const value = args[property]; const arg = `--${property}`; if (typeof value === 'string') { return `${arg} "${value}"`; } else if (typeof value === 'boolean' && !!value) { return arg; } else if (typeof value === 'number') { return `${arg} ${value}`; } else if (Array.isArray(value)) { return `${arg} ${this.toOptionList(value)}`; } return ''; }); return `${argArray.join(' ')} `; } toOptionList(arg) { return arg .map((value) => { if (typeof value === 'string') { return `"${value}"`; } else if (typeof value === 'number') { return value; } return ''; }) .join(' '); } prepareOptions() { return !!this.config.options ? this.toArgString(this.config.options) : ''; } } exports.TscTask = TscTask; //# sourceMappingURL=TscTask.js.map