UNPKG

@twilio/flex-plugins-library-utils

Version:

Flex Plugins Library Utils

51 lines (47 loc) 1.76 kB
import { isArray, isBoolean, isNumber, isObject, isString } from 'lodash'; export class PluginUtilsErrorManager extends Error { code: number; constructor(message: string, code: number) { super(message); this.code = code; Object.setPrototypeOf(this, PluginUtilsErrorManager.prototype); } static checkInvalidParameters<T>(parameters: T, checks: Record<string, string>): string { for (const key in checks) { if (Object.prototype.hasOwnProperty.call(checks, key)) { const expectedType = checks[key]; const actualValue = parameters[key]; switch (expectedType) { case 'string': if (!isString(actualValue) || actualValue.length === 0) { return `Invalid parameters object passed. Parameter '${key}' must be a string.`; } break; case 'number': if (!isNumber(actualValue)) { return `Invalid parameters object passed. Parameter '${key}' must be a number.`; } break; case 'array': if (!isArray(actualValue)) { return `Invalid parameters object passed. Parameter '${key}' must be an array.`; } break; case 'boolean': if (!isBoolean(actualValue)) { return `Invalid parameters object passed. Parameter '${key}' must be a boolean.`; } break; case 'object': if (!isObject(actualValue)) { return `Invalid parameters object passed. Parameter '${key}' must be an object.`; } break; default: throw new Error(`Unsupported expected type: ${expectedType}`); } } } return ''; } }