UNPKG

projen

Version:

CDK for software projects

34 lines 4.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.$ = void 0; exports.escapeCommand = escapeCommand; /** * The only module allowed to import "dax" (enforced via eslint's * no-restricted-imports): it guarantees the Node compat shim is installed * before dax resolves any command. * * dax's bundled `which` loads `node:fs` through `process.getBuiltinModule()`, * which only exists since Node 22.3.0 / 20.16.0. Without the shim, every task * command fails with `dax: <cmd>: command not found` on older runtimes * (https://github.com/projen/projen/issues/4846). dax reads the API lazily on * first command resolution, so installing the shim at module load - even * though the import below makes dax itself load first - is early enough. */ const node_compat_1 = require("./node-compat"); (0, node_compat_1.polyfillGetBuiltinModule)(); // eslint-disable-next-line @typescript-eslint/no-restricted-imports,import/order const dax_1 = require("dax"); Object.defineProperty(exports, "$", { enumerable: true, get: function () { return dax_1.$; } }); /** * Renders an argv into a single escaped command line. * * Safe for a task `exec` command: every element arrives as exactly one * argument, so whitespace and metacharacters are never interpreted. Works in * any POSIX shell and dax's built-in one, but not in `cmd.exe`. * * @example escapeCommand(["echo", "some text with spaces"]); // echo 'some text with spaces' */ function escapeCommand(argv) { return argv.map((arg) => dax_1.$.escapeArg(arg)).join(" "); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGF4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRCQSxzQ0FFQztBQTlCRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILCtDQUF5RDtBQUN6RCxJQUFBLHNDQUF3QixHQUFFLENBQUM7QUFFM0IsaUZBQWlGO0FBQ2pGLDZCQUF3QjtBQUNmLGtGQURBLE9BQUMsT0FDQTtBQUVWOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLElBQWM7SUFDMUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBvbmx5IG1vZHVsZSBhbGxvd2VkIHRvIGltcG9ydCBcImRheFwiIChlbmZvcmNlZCB2aWEgZXNsaW50J3NcbiAqIG5vLXJlc3RyaWN0ZWQtaW1wb3J0cyk6IGl0IGd1YXJhbnRlZXMgdGhlIE5vZGUgY29tcGF0IHNoaW0gaXMgaW5zdGFsbGVkXG4gKiBiZWZvcmUgZGF4IHJlc29sdmVzIGFueSBjb21tYW5kLlxuICpcbiAqIGRheCdzIGJ1bmRsZWQgYHdoaWNoYCBsb2FkcyBgbm9kZTpmc2AgdGhyb3VnaCBgcHJvY2Vzcy5nZXRCdWlsdGluTW9kdWxlKClgLFxuICogd2hpY2ggb25seSBleGlzdHMgc2luY2UgTm9kZSAyMi4zLjAgLyAyMC4xNi4wLiBXaXRob3V0IHRoZSBzaGltLCBldmVyeSB0YXNrXG4gKiBjb21tYW5kIGZhaWxzIHdpdGggYGRheDogPGNtZD46IGNvbW1hbmQgbm90IGZvdW5kYCBvbiBvbGRlciBydW50aW1lc1xuICogKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL2lzc3Vlcy80ODQ2KS4gZGF4IHJlYWRzIHRoZSBBUEkgbGF6aWx5IG9uXG4gKiBmaXJzdCBjb21tYW5kIHJlc29sdXRpb24sIHNvIGluc3RhbGxpbmcgdGhlIHNoaW0gYXQgbW9kdWxlIGxvYWQgLSBldmVuXG4gKiB0aG91Z2ggdGhlIGltcG9ydCBiZWxvdyBtYWtlcyBkYXggaXRzZWxmIGxvYWQgZmlyc3QgLSBpcyBlYXJseSBlbm91Z2guXG4gKi9cbmltcG9ydCB7IHBvbHlmaWxsR2V0QnVpbHRpbk1vZHVsZSB9IGZyb20gXCIuL25vZGUtY29tcGF0XCI7XG5wb2x5ZmlsbEdldEJ1aWx0aW5Nb2R1bGUoKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHMsaW1wb3J0L29yZGVyXG5pbXBvcnQgeyAkIH0gZnJvbSBcImRheFwiO1xuZXhwb3J0IHsgJCB9O1xuXG4vKipcbiAqIFJlbmRlcnMgYW4gYXJndiBpbnRvIGEgc2luZ2xlIGVzY2FwZWQgY29tbWFuZCBsaW5lLlxuICpcbiAqIFNhZmUgZm9yIGEgdGFzayBgZXhlY2AgY29tbWFuZDogZXZlcnkgZWxlbWVudCBhcnJpdmVzIGFzIGV4YWN0bHkgb25lXG4gKiBhcmd1bWVudCwgc28gd2hpdGVzcGFjZSBhbmQgbWV0YWNoYXJhY3RlcnMgYXJlIG5ldmVyIGludGVycHJldGVkLiBXb3JrcyBpblxuICogYW55IFBPU0lYIHNoZWxsIGFuZCBkYXgncyBidWlsdC1pbiBvbmUsIGJ1dCBub3QgaW4gYGNtZC5leGVgLlxuICpcbiAqIEBleGFtcGxlIGVzY2FwZUNvbW1hbmQoW1wiZWNob1wiLCBcInNvbWUgdGV4dCB3aXRoIHNwYWNlc1wiXSk7IC8vIGVjaG8gJ3NvbWUgdGV4dCB3aXRoIHNwYWNlcydcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUNvbW1hbmQoYXJndjogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gYXJndi5tYXAoKGFyZykgPT4gJC5lc2NhcGVBcmcoYXJnKSkuam9pbihcIiBcIik7XG59XG4iXX0=