| | |
| | | const traceMethod = (method: string, args?: any[]) => console.log(["[MC MOCK API]", " ", method, "(", (args ? args : [""]).join(","), ")"].join("")); |
| | | const runtimeCheck = (errorMessage: string, isInvalid: (param: any) => boolean) => { |
| | | return (paramName: string, value: any, optional: boolean = false) => { |
| | | if (!optional && (value === null || value === undefined)) { |
| | | throw new Error(`parameter '${paramName}' is null or undefined`); |
| | | } else { |
| | | if (isInvalid(value)) { |
| | | throw new Error(`parameter '${paramName}' is invalid: ${errorMessage}`); |
| | | if (value === undefined) { |
| | | if (optional) { |
| | | return; |
| | | } else { |
| | | throw new Error(`missing parameter '${paramName}'`); |
| | | } |
| | | } |
| | | if (isInvalid(value)) { |
| | | throw new Error(`parameter '${paramName}' is invalid: ${errorMessage}`); |
| | | } |
| | | } |
| | | } |
| | | const runtimeCheckString = runtimeCheck("not a string", v => typeof v !== "string"); |