TenantAtlas/apps/platform/.pnpm-store/v10/files/b2/a75ba19b2385dc9eed8da1079661110ca17654c3dccb644f701f8b0df7da36c1dab56a3657142ce977ec95d5ff348636e414bb241d0bfbae98f89c8b385552
Ahmed Darrazi 9f74f7a658
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 51s
feat: compress governance operator outcomes
2026-04-19 14:15:11 +02:00

42 lines
1.7 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExpandArguments = void 0;
const shell_quote_1 = require("shell-quote");
/**
* Replace placeholders with additional arguments.
*/
class ExpandArguments {
additionalArguments;
constructor(additionalArguments) {
this.additionalArguments = additionalArguments;
}
parse(commandInfo) {
const command = commandInfo.command.replace(/\\?\{([@*]|[1-9][0-9]*)\}/g, (match, placeholderTarget) => {
// Don't replace the placeholder if it is escaped by a backslash.
if (match.startsWith('\\')) {
return match.slice(1);
}
if (this.additionalArguments.length > 0) {
// Replace numeric placeholder if value exists in additional arguments.
if (!isNaN(placeholderTarget) &&
placeholderTarget <= this.additionalArguments.length) {
return (0, shell_quote_1.quote)([this.additionalArguments[placeholderTarget - 1]]);
}
// Replace all arguments placeholder.
if (placeholderTarget === '@') {
return (0, shell_quote_1.quote)(this.additionalArguments);
}
// Replace combined arguments placeholder.
if (placeholderTarget === '*') {
return (0, shell_quote_1.quote)([this.additionalArguments.join(' ')]);
}
}
// Replace placeholder with empty string
// if value doesn't exist in additional arguments.
return '';
});
return { ...commandInfo, command };
}
}
exports.ExpandArguments = ExpandArguments;