UNPKG

@grnsft/if

Version:

Impact Framework

102 lines 9 kB
#!/usr/bin/env node "use strict"; 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.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` from `child-process`. */ exports.execPromise = (0, util_1.promisify)(child_process_1.exec); /** * Prepends process path to given `filePath`. */ const prependFullFilePath = (filePath) => { const processRunningPath = process.cwd(); if (path.isAbsolute(filePath)) { return filePath; } return path.normalize(`${processRunningPath}/${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:`); const isGlobal = !!process.env.npm_config_global; const ifCommand = [ isGlobal ? command : 'npm', ...(isGlobal ? ['--silent'] : ['run', command, '--silent']), '--', '-h', ]; (0, child_process_1.execFileSync)(ifCommand[0], ifCommand.slice(1), { cwd: process.env.CURRENT_DIR || process.cwd(), stdio: 'inherit', shell: false, }); process.exit(1); }; exports.runHelpCommand = runHelpCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdXRpbC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG9DQUFvQztBQUNwQyxxREFBdUQ7QUFDdkQsaURBQWlEO0FBQ2pELDJDQUE2QjtBQUM3QiwrQkFBK0I7QUFFL0I7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRyxJQUFBLGdCQUFTLEVBQUMsb0JBQUksQ0FBQyxDQUFDO0FBRTNDOztHQUVHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUN0RCxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV6QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDN0IsT0FBTyxRQUFRLENBQUM7S0FDakI7SUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxrQkFBa0IsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQVJXLFFBQUEsbUJBQW1CLHVCQVE5QjtBQUVGOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDbEMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtRQUN2QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBQSwwQkFBZSxFQUFDO1FBQy9CLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztLQUNyQixDQUFDLENBQUM7SUFFSCxNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7SUFFMUIsSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakI7SUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxzQkFBc0IsR0FBRyxLQUFLLElBQUksRUFBRTtJQUMvQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztJQUVyRCxJQUFJLENBQUMsbUJBQW1CLEVBQUU7UUFDeEIsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUVELE1BQU0sS0FBSyxHQUFHLDBCQUEwQixDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUU5QyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUVELE9BQU8sS0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQWZXLFFBQUEsc0JBQXNCLDBCQWVqQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtJQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxPQUFPLGFBQWEsQ0FBQyxDQUFDO0lBRTVFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDO0lBQ2pELE1BQU0sU0FBUyxHQUFHO1FBQ2hCLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQzFCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzRCxJQUFJO1FBQ0osSUFBSTtLQUNMLENBQUM7SUFFRixJQUFBLDRCQUFZLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDN0MsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDN0MsS0FBSyxFQUFFLFNBQVM7UUFDaEIsS0FBSyxFQUFFLEtBQUs7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQWxCVyxRQUFBLGNBQWMsa0JBa0J6QiIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb2Nlc3MtZXhpdCAqL1xuaW1wb3J0IHtjcmVhdGVJbnRlcmZhY2V9IGZyb20gJ25vZGU6cmVhZGxpbmUvcHJvbWlzZXMnO1xuaW1wb3J0IHtleGVjLCBleGVjRmlsZVN5bmN9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7cHJvbWlzaWZ5fSBmcm9tICd1dGlsJztcblxuLyoqXG4gKiBQcm9taXNlIHZlcnNpb24gb2YgTm9kZSdzIGBleGVjYCBmcm9tIGBjaGlsZC1wcm9jZXNzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV4ZWNQcm9taXNlID0gcHJvbWlzaWZ5KGV4ZWMpO1xuXG4vKipcbiAqIFByZXBlbmRzIHByb2Nlc3MgcGF0aCB0byBnaXZlbiBgZmlsZVBhdGhgLlxuICovXG5leHBvcnQgY29uc3QgcHJlcGVuZEZ1bGxGaWxlUGF0aCA9IChmaWxlUGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHByb2Nlc3NSdW5uaW5nUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgaWYgKHBhdGguaXNBYnNvbHV0ZShmaWxlUGF0aCkpIHtcbiAgICByZXR1cm4gZmlsZVBhdGg7XG4gIH1cblxuICByZXR1cm4gcGF0aC5ub3JtYWxpemUoYCR7cHJvY2Vzc1J1bm5pbmdQYXRofS8ke2ZpbGVQYXRofWApO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlcmUgaXMgZGF0YSBwaXBlZCwgdGhlbiBjb2xsZWN0cyBpdC5cbiAqIE90aGVyd2lzZSByZXR1cm5zIGVtcHR5IHN0cmluZy5cbiAqL1xuY29uc3QgY29sbGVjdFBpcGVkRGF0YSA9IGFzeW5jICgpID0+IHtcbiAgaWYgKHByb2Nlc3Muc3RkaW4uaXNUVFkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCByZWFkbGluZSA9IGNyZWF0ZUludGVyZmFjZSh7XG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gIH0pO1xuXG4gIGNvbnN0IGRhdGE6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIGF3YWl0IChjb25zdCBsaW5lIG9mIHJlYWRsaW5lKSB7XG4gICAgZGF0YS5wdXNoKGxpbmUpO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuam9pbignXFxuJyk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGVyZSBpcyBwaXBlZCBkYXRhLCB0cmllcyB0byBwYXJzZSB5YW1sIGZyb20gaXQuXG4gKiBSZXR1cm5zIGVtcHR5IHN0cmluZyBpZiBoYXZlbid0IGZvdW5kIGFueXRoaW5nLlxuICovXG5leHBvcnQgY29uc3QgcGFyc2VNYW5pZmVzdEZyb21TdGRpbiA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgcGlwZWRTb3VyY2VNYW5pZmVzdCA9IGF3YWl0IGNvbGxlY3RQaXBlZERhdGEoKTtcblxuICBpZiAoIXBpcGVkU291cmNlTWFuaWZlc3QpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCByZWdleCA9IC8jIHN0YXJ0KCg/Oi4qXFxuKSs/KSMgZW5kLztcbiAgY29uc3QgbWF0Y2ggPSByZWdleC5leGVjKHBpcGVkU291cmNlTWFuaWZlc3QpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gbWF0Y2ghWzFdO1xufTtcblxuLyoqXG4gKiBSdW5zIHRoZSAtLWhlbHAgY29tbWFuZCB3aGVuIHRoZSBlbnRlcmVkIGNvbW1hbmQgaXMgaW5jb3JyZWN0LlxuICovXG5leHBvcnQgY29uc3QgcnVuSGVscENvbW1hbmQgPSAoY29tbWFuZDogc3RyaW5nKSA9PiB7XG4gIGNvbnNvbGUubG9nKGBIZXJlIGFyZSB0aGUgc3VwcG9ydGVkIGZsYWdzIGZvciB0aGUgXFxgJHtjb21tYW5kfVxcYCBjb21tYW5kOmApO1xuXG4gIGNvbnN0IGlzR2xvYmFsID0gISFwcm9jZXNzLmVudi5ucG1fY29uZmlnX2dsb2JhbDtcbiAgY29uc3QgaWZDb21tYW5kID0gW1xuICAgIGlzR2xvYmFsID8gY29tbWFuZCA6ICducG0nLFxuICAgIC4uLihpc0dsb2JhbCA/IFsnLS1zaWxlbnQnXSA6IFsncnVuJywgY29tbWFuZCwgJy0tc2lsZW50J10pLFxuICAgICctLScsXG4gICAgJy1oJyxcbiAgXTtcblxuICBleGVjRmlsZVN5bmMoaWZDb21tYW5kWzBdLCBpZkNvbW1hbmQuc2xpY2UoMSksIHtcbiAgICBjd2Q6IHByb2Nlc3MuZW52LkNVUlJFTlRfRElSIHx8IHByb2Nlc3MuY3dkKCksXG4gICAgc3RkaW86ICdpbmhlcml0JyxcbiAgICBzaGVsbDogZmFsc2UsXG4gIH0pO1xuXG4gIHByb2Nlc3MuZXhpdCgxKTtcbn07XG4iXX0=