@grnsft/if
Version:
Impact Framework
90 lines • 7.92 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.runHelpCommand = exports.parseManifestFromStdin = exports.prependFullFilePath = exports.execFilePromise = exports.execPromise = void 0;
/* eslint-disable no-process-exit */
const promises_1 = require("node:readline/promises");
const child_process_1 = require("child_process");
const path = __importStar(require("path"));
const util_1 = require("util");
/**
* Promise version of Node's `exec` and `execFile` from `child-process`.
*/
exports.execPromise = (0, util_1.promisify)(child_process_1.exec);
exports.execFilePromise = (0, util_1.promisify)(child_process_1.execFile);
/**
* Prepends process path to given `filePath`.
*/
const prependFullFilePath = (filePath) => {
return path.resolve(process.env.CURRENT_DIR || process.cwd(), filePath);
};
exports.prependFullFilePath = prependFullFilePath;
/**
* Checks if there is data piped, then collects it.
* Otherwise returns empty string.
*/
const collectPipedData = async () => {
if (process.stdin.isTTY) {
return '';
}
const readline = (0, promises_1.createInterface)({
input: process.stdin,
});
const data = [];
for await (const line of readline) {
data.push(line);
}
return data.join('\n');
};
/**
* Checks if there is piped data, tries to parse yaml from it.
* Returns empty string if haven't found anything.
*/
const parseManifestFromStdin = async () => {
const pipedSourceManifest = await collectPipedData();
if (!pipedSourceManifest) {
return '';
}
const regex = /# start((?:.*\n)+?)# end/;
const match = regex.exec(pipedSourceManifest);
if (!match) {
return '';
}
return match[1];
};
exports.parseManifestFromStdin = parseManifestFromStdin;
/**
* Runs the --help command when the entered command is incorrect.
*/
const runHelpCommand = (command) => {
console.log(`Here are the supported flags for the \`${command}\` command:`);
(0, child_process_1.execFileSync)(process.execPath, [...process.execArgv, process.argv[1], '-h'], {
stdio: 'inherit',
});
process.exit(1);
};
exports.runHelpCommand = runHelpCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG9DQUFvQztBQUNwQyxxREFBdUQ7QUFDdkQsaURBQTJEO0FBQzNELDJDQUE2QjtBQUM3QiwrQkFBK0I7QUFFL0I7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRyxJQUFBLGdCQUFTLEVBQUMsb0JBQUksQ0FBQyxDQUFDO0FBQzlCLFFBQUEsZUFBZSxHQUFHLElBQUEsZ0JBQVMsRUFBQyx3QkFBUSxDQUFDLENBQUM7QUFFbkQ7O0dBRUc7QUFDSSxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO0lBQ3RELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxtQkFBbUIsdUJBRTlCO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNsQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLDBCQUFlLEVBQUM7UUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUUxQixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUU7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQjtJQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLHNCQUFzQixHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9DLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDO0lBRXJELElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUN4QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxLQUFLLEdBQUcsMEJBQTBCLENBQUM7SUFDekMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBZlcsUUFBQSxzQkFBc0IsMEJBZWpDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLE9BQU8sYUFBYSxDQUFDLENBQUM7SUFFNUUsSUFBQSw0QkFBWSxFQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUMzRSxLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQVJXLFFBQUEsY0FBYyxrQkFRekIiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCB7Y3JlYXRlSW50ZXJmYWNlfSBmcm9tICdub2RlOnJlYWRsaW5lL3Byb21pc2VzJztcbmltcG9ydCB7ZXhlYywgZXhlY0ZpbGUsIGV4ZWNGaWxlU3luY30gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtwcm9taXNpZnl9IGZyb20gJ3V0aWwnO1xuXG4vKipcbiAqIFByb21pc2UgdmVyc2lvbiBvZiBOb2RlJ3MgYGV4ZWNgIGFuZCBgZXhlY0ZpbGVgIGZyb20gYGNoaWxkLXByb2Nlc3NgLlxuICovXG5leHBvcnQgY29uc3QgZXhlY1Byb21pc2UgPSBwcm9taXNpZnkoZXhlYyk7XG5leHBvcnQgY29uc3QgZXhlY0ZpbGVQcm9taXNlID0gcHJvbWlzaWZ5KGV4ZWNGaWxlKTtcblxuLyoqXG4gKiBQcmVwZW5kcyBwcm9jZXNzIHBhdGggdG8gZ2l2ZW4gYGZpbGVQYXRoYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHByZXBlbmRGdWxsRmlsZVBhdGggPSAoZmlsZVBhdGg6IHN0cmluZykgPT4ge1xuICByZXR1cm4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuZW52LkNVUlJFTlRfRElSIHx8IHByb2Nlc3MuY3dkKCksIGZpbGVQYXRoKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZXJlIGlzIGRhdGEgcGlwZWQsIHRoZW4gY29sbGVjdHMgaXQuXG4gKiBPdGhlcndpc2UgcmV0dXJucyBlbXB0eSBzdHJpbmcuXG4gKi9cbmNvbnN0IGNvbGxlY3RQaXBlZERhdGEgPSBhc3luYyAoKSA9PiB7XG4gIGlmIChwcm9jZXNzLnN0ZGluLmlzVFRZKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgcmVhZGxpbmUgPSBjcmVhdGVJbnRlcmZhY2Uoe1xuICAgIGlucHV0OiBwcm9jZXNzLnN0ZGluLFxuICB9KTtcblxuICBjb25zdCBkYXRhOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgbGluZSBvZiByZWFkbGluZSkge1xuICAgIGRhdGEucHVzaChsaW5lKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhLmpvaW4oJ1xcbicpO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlcmUgaXMgcGlwZWQgZGF0YSwgdHJpZXMgdG8gcGFyc2UgeWFtbCBmcm9tIGl0LlxuICogUmV0dXJucyBlbXB0eSBzdHJpbmcgaWYgaGF2ZW4ndCBmb3VuZCBhbnl0aGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlTWFuaWZlc3RGcm9tU3RkaW4gPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBpcGVkU291cmNlTWFuaWZlc3QgPSBhd2FpdCBjb2xsZWN0UGlwZWREYXRhKCk7XG5cbiAgaWYgKCFwaXBlZFNvdXJjZU1hbmlmZXN0KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgcmVnZXggPSAvIyBzdGFydCgoPzouKlxcbikrPykjIGVuZC87XG4gIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhwaXBlZFNvdXJjZU1hbmlmZXN0KTtcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoIVsxXTtcbn07XG5cbi8qKlxuICogUnVucyB0aGUgLS1oZWxwIGNvbW1hbmQgd2hlbiB0aGUgZW50ZXJlZCBjb21tYW5kIGlzIGluY29ycmVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJ1bkhlbHBDb21tYW5kID0gKGNvbW1hbmQ6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmxvZyhgSGVyZSBhcmUgdGhlIHN1cHBvcnRlZCBmbGFncyBmb3IgdGhlIFxcYCR7Y29tbWFuZH1cXGAgY29tbWFuZDpgKTtcblxuICBleGVjRmlsZVN5bmMocHJvY2Vzcy5leGVjUGF0aCwgWy4uLnByb2Nlc3MuZXhlY0FyZ3YsIHByb2Nlc3MuYXJndlsxXSwgJy1oJ10sIHtcbiAgICBzdGRpbzogJ2luaGVyaXQnLFxuICB9KTtcblxuICBwcm9jZXNzLmV4aXQoMSk7XG59O1xuIl19