turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
40 lines (38 loc) • 6.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const incident_1 = require("incident");
const node_async_1 = require("./node-async");
const nycBin = require.resolve("nyc/bin/nyc.js");
async function execNyc(cmd, args = [], options) {
return new node_async_1.SpawnedProcess(nycBin, cmd === null ? args : [cmd, ...args], Object.assign({ stdio: "pipe" }, options)).toPromise();
}
exports.execNyc = execNyc;
async function report(options) {
const args = ["--reporter", "lcov"];
args.push("--temp-directory", options.tempDirectory);
await execNyc("report", args);
}
exports.report = report;
async function run(options) {
const args = [];
args.push("--cwd", options.cwd);
for (const reporter of options.reporters) {
args.push("--reporter", reporter);
}
args.push("--report-dir", options.reportDir);
args.push("--temp-dir", options.tempDir);
if (options.colors) {
args.push("--color");
}
args.push("--", ...options.command);
const result = await execNyc(null, args, { cwd: options.cwd, stdio: "inherit" });
if (result.exit.type === "code") {
if (result.exit.code === 0) {
return;
}
throw incident_1.Incident("CoverageError");
}
throw new incident_1.Incident("UnexpectedExitValue", { exit: result.exit });
}
exports.run = run;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL255Yy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVDQUFvQztBQUVwQyw2Q0FBeUU7QUFFekUsTUFBTSxNQUFNLEdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRWxELEtBQUssa0JBQWtCLEdBQWtCLEVBQUUsT0FBaUIsRUFBRSxFQUFFLE9BQXNCO0lBQzNGLE1BQU0sQ0FBQyxJQUFJLDJCQUFjLENBQ3ZCLE1BQU0sRUFDTixHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUNuQyxLQUFLLEVBQUUsTUFBTSxJQUFLLE9BQU8sRUFDM0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNoQixDQUFDO0FBTkQsMEJBTUM7QUFRTSxLQUFLLGlCQUFpQixPQUFzQjtJQUNqRCxNQUFNLElBQUksR0FBYSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRCxNQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUpELHdCQUlDO0FBWU0sS0FBSyxjQUFjLE9BQW1CO0lBQzNDLE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsR0FBRyxDQUFDLENBQUMsTUFBTSxRQUFRLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEMsTUFBTSxNQUFNLEdBQWdCLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUM1RixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDO1FBQ1QsQ0FBQztRQUNELE1BQU0sbUJBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsTUFBTSxJQUFJLG1CQUFRLENBQUMscUJBQXFCLEVBQUUsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQXJCRCxrQkFxQkMiLCJmaWxlIjoidXRpbHMvbnljLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5jaWRlbnQgfSBmcm9tIFwiaW5jaWRlbnRcIjtcbmltcG9ydCB7IEFic1Bvc2l4UGF0aCB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgU3Bhd25lZFByb2Nlc3MsIFNwYXduT3B0aW9ucywgU3Bhd25SZXN1bHQgfSBmcm9tIFwiLi9ub2RlLWFzeW5jXCI7XG5cbmNvbnN0IG55Y0Jpbjogc3RyaW5nID0gcmVxdWlyZS5yZXNvbHZlKFwibnljL2Jpbi9ueWMuanNcIik7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjTnljKGNtZDogc3RyaW5nIHwgbnVsbCwgYXJnczogc3RyaW5nW10gPSBbXSwgb3B0aW9ucz86IFNwYXduT3B0aW9ucyk6IFByb21pc2U8U3Bhd25SZXN1bHQ+IHtcbiAgcmV0dXJuIG5ldyBTcGF3bmVkUHJvY2VzcyhcbiAgICBueWNCaW4sXG4gICAgY21kID09PSBudWxsID8gYXJncyA6IFtjbWQsIC4uLmFyZ3NdLFxuICAgIHtzdGRpbzogXCJwaXBlXCIsIC4uLm9wdGlvbnN9LFxuICApLnRvUHJvbWlzZSgpO1xufVxuXG5leHBvcnQgdHlwZSBOeWNSZXBvcnRlciA9IFwidGV4dFwiIHwgXCJ0ZXh0LWxjb3ZcIiB8IFwibGNvdm9ubHlcIiB8IFwiaHRtbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydE9wdGlvbnMge1xuICB0ZW1wRGlyZWN0b3J5OiBBYnNQb3NpeFBhdGg7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBvcnQob3B0aW9uczogUmVwb3J0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBhcmdzOiBzdHJpbmdbXSA9IFtcIi0tcmVwb3J0ZXJcIiwgXCJsY292XCJdO1xuICBhcmdzLnB1c2goXCItLXRlbXAtZGlyZWN0b3J5XCIsIG9wdGlvbnMudGVtcERpcmVjdG9yeSk7XG4gIGF3YWl0IGV4ZWNOeWMoXCJyZXBvcnRcIiwgYXJncyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT3B0aW9ucyB7XG4gIGN3ZDogQWJzUG9zaXhQYXRoO1xuICBjb21tYW5kOiBzdHJpbmdbXTtcbiAgcmVwb3J0ZXJzOiBOeWNSZXBvcnRlcltdO1xuICByZXBvcnREaXI6IEFic1Bvc2l4UGF0aDtcbiAgdGVtcERpcjogQWJzUG9zaXhQYXRoO1xuICBpbmNsdWRlPzogc3RyaW5nW107XG4gIGNvbG9ycz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW4ob3B0aW9uczogUnVuT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBhcmdzOiBzdHJpbmdbXSA9IFtdO1xuICBhcmdzLnB1c2goXCItLWN3ZFwiLCBvcHRpb25zLmN3ZCk7XG4gIGZvciAoY29uc3QgcmVwb3J0ZXIgb2Ygb3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICBhcmdzLnB1c2goXCItLXJlcG9ydGVyXCIsIHJlcG9ydGVyKTtcbiAgfVxuICBhcmdzLnB1c2goXCItLXJlcG9ydC1kaXJcIiwgb3B0aW9ucy5yZXBvcnREaXIpO1xuICBhcmdzLnB1c2goXCItLXRlbXAtZGlyXCIsIG9wdGlvbnMudGVtcERpcik7XG4gIGlmIChvcHRpb25zLmNvbG9ycykge1xuICAgIGFyZ3MucHVzaChcIi0tY29sb3JcIik7XG4gIH1cbiAgYXJncy5wdXNoKFwiLS1cIiwgLi4ub3B0aW9ucy5jb21tYW5kKTtcblxuICBjb25zdCByZXN1bHQ6IFNwYXduUmVzdWx0ID0gYXdhaXQgZXhlY055YyhudWxsLCBhcmdzLCB7Y3dkOiBvcHRpb25zLmN3ZCwgc3RkaW86IFwiaW5oZXJpdFwifSk7XG4gIGlmIChyZXN1bHQuZXhpdC50eXBlID09PSBcImNvZGVcIikge1xuICAgIGlmIChyZXN1bHQuZXhpdC5jb2RlID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93IEluY2lkZW50KFwiQ292ZXJhZ2VFcnJvclwiKTtcbiAgfVxuICB0aHJvdyBuZXcgSW5jaWRlbnQoXCJVbmV4cGVjdGVkRXhpdFZhbHVlXCIsIHtleGl0OiByZXN1bHQuZXhpdH0pO1xufVxuIl0sInNvdXJjZVJvb3QiOiIuLiJ9