( parameters: ParameterConfig[] | undefined, args: Record<string, any> )
| 177 | * @returns Array of parameter values in order |
| 178 | */ |
| 179 | export function mapArgumentsToArray( |
| 180 | parameters: ParameterConfig[] | undefined, |
| 181 | args: Record<string, any> |
| 182 | ): any[] { |
| 183 | if (!parameters || parameters.length === 0) { |
| 184 | return []; |
| 185 | } |
| 186 | |
| 187 | return parameters.map((param) => { |
| 188 | const value = args[param.name]; |
| 189 | |
| 190 | // Use provided value if available |
| 191 | if (value !== undefined) { |
| 192 | return value; |
| 193 | } |
| 194 | |
| 195 | // Use default value if parameter is optional |
| 196 | if (param.default !== undefined) { |
| 197 | return param.default; |
| 198 | } |
| 199 | |
| 200 | // This should be caught by Zod validation, but add a safety check |
| 201 | if (param.required !== false) { |
| 202 | throw new Error( |
| 203 | `Required parameter '${param.name}' is missing and has no default value.` |
| 204 | ); |
| 205 | } |
| 206 | |
| 207 | // Optional parameter with no default |
| 208 | return null; |
| 209 | }); |
| 210 | } |
no outgoing calls
no test coverage detected