MCPcopy
hub / github.com/coder/mux / parseWorkflowArgs

Function parseWorkflowArgs

src/cli/workflow.ts:87–116  ·  view source on GitHub ↗
(input: ParseWorkflowArgsInput)

Source from the content-addressed store, hash-verified

85}
86
87export async function parseWorkflowArgs(input: ParseWorkflowArgsInput): Promise<unknown> {
88 const structuredModes = [
89 input.arg != null && input.arg.length > 0 ? "--arg" : null,
90 input.argsJson != null ? "--args-json" : null,
91 input.argsFile != null ? "--args-file" : null,
92 input.argsStdin === true ? "--args-stdin" : null,
93 ].filter((mode): mode is string => mode != null);
94
95 if (structuredModes.length > 1) {
96 throw new Error(`Only one structured args mode is allowed, got: ${structuredModes.join(", ")}`);
97 }
98
99 if (input.argsJson != null) {
100 return parseJsonArgs(input.argsJson, "--args-json");
101 }
102 if (input.argsFile != null) {
103 return parseJsonArgs(
104 await fs.readFile(input.argsFile, "utf-8"),
105 `--args-file ${input.argsFile}`
106 );
107 }
108 if (input.argsStdin === true) {
109 return parseJsonArgs(input.stdinText ?? (await gatherStdin()), "--args-stdin");
110 }
111 if (input.arg != null && input.arg.length > 0) {
112 return parseKeyValueArgs(input.arg);
113 }
114
115 return {};
116}
117
118function parseJsonArgs(text: string, label: string): unknown {
119 try {

Callers 2

workflow.test.tsFile · 0.90
runWorkflowFunction · 0.85

Calls 4

parseJsonArgsFunction · 0.85
gatherStdinFunction · 0.85
parseKeyValueArgsFunction · 0.85
readFileMethod · 0.65

Tested by

no test coverage detected