aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/concurrently/dist/src/command-parser/expand-arguments.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/concurrently/dist/src/command-parser/expand-arguments.js')
-rw-r--r--node_modules/concurrently/dist/src/command-parser/expand-arguments.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/node_modules/concurrently/dist/src/command-parser/expand-arguments.js b/node_modules/concurrently/dist/src/command-parser/expand-arguments.js
new file mode 100644
index 0000000..42c087c
--- /dev/null
+++ b/node_modules/concurrently/dist/src/command-parser/expand-arguments.js
@@ -0,0 +1,38 @@
+"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 {
+ 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);
+ }
+ // 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;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage