@versatiledatakit/shared
Version:
Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.
35 lines • 5.12 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { CollectionsUtil } from '../../utils';
import { generateSupportedHttpErrorCodes } from '../../common/error/utils';
/**
* ** Generates error codes for provided method names.
*
* - !!! Important: Only for Unit tests purposes, not for production.
*
* - Optionally could be provided ClassName and PublicName, otherwise will be auto-generated random strings.
*/
/* eslint-disable @typescript-eslint/no-unsafe-argument,
@typescript-eslint/no-unsafe-member-access,
@typescript-eslint/no-unsafe-assignment,
@typescript-eslint/ban-ts-comment,
@typescript-eslint/dot-notation */
export const generateErrorCodes = (serviceStub, methodNames, className, publicName) => {
const _className = className ?? CollectionsUtil.generateRandomString();
const _publicName = publicName ?? CollectionsUtil.generateRandomString();
const _errorCodes = {};
// @ts-ignore
methodNames.forEach((method) => {
_errorCodes[method] = generateSupportedHttpErrorCodes(_className, _publicName, method);
});
serviceStub['errorCodes'] = _errorCodes;
return _errorCodes;
};
/* eslint-enable @typescript-eslint/no-unsafe-argument,
@typescript-eslint/no-unsafe-member-access,
@typescript-eslint/no-unsafe-assignment,
@typescript-eslint/ban-ts-comment,
@typescript-eslint/dot-notation */
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29kZS1nZW5lcmF0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi91bml0LXRlc3RpbmcvdXRpbHMvZXJyb3ItY29kZS1nZW5lcmF0b3ItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBaUIsTUFBTSxhQUFhLENBQUM7QUFJN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0U7Ozs7OztHQU1HO0FBQ0g7Ozs7b0RBSW9EO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQzlCLFdBQWtCLEVBQ2xCLFdBQStELEVBQy9ELFNBQWtCLEVBQ2xCLFVBQW1CLEVBQ0YsRUFBRTtJQUNuQixNQUFNLFVBQVUsR0FBRyxTQUFTLElBQUksZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDdkUsTUFBTSxXQUFXLEdBQUcsVUFBVSxJQUFJLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sV0FBVyxHQUFzQixFQUF1QixDQUFDO0lBRS9ELGFBQWE7SUFDYixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLCtCQUErQixDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0YsQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO0lBRXhDLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUNGOzs7O21EQUltRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMy0yMDI1IEJyb2FkY29tXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IENvbGxlY3Rpb25zVXRpbCwgRmlsdGVyTWV0aG9kcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgRXJyb3JDb2RlcywgRXhjbHVkZWRNZXRob2RzIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuaW1wb3J0IHsgZ2VuZXJhdGVTdXBwb3J0ZWRIdHRwRXJyb3JDb2RlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9lcnJvci91dGlscyc7XG5cbi8qKlxuICogKiogR2VuZXJhdGVzIGVycm9yIGNvZGVzIGZvciBwcm92aWRlZCBtZXRob2QgbmFtZXMuXG4gKlxuICogICAgICAtICEhISBJbXBvcnRhbnQ6IE9ubHkgZm9yIFVuaXQgdGVzdHMgcHVycG9zZXMsIG5vdCBmb3IgcHJvZHVjdGlvbi5cbiAqXG4gKiAgICAgIC0gT3B0aW9uYWxseSBjb3VsZCBiZSBwcm92aWRlZCBDbGFzc05hbWUgYW5kIFB1YmxpY05hbWUsIG90aGVyd2lzZSB3aWxsIGJlIGF1dG8tZ2VuZXJhdGVkIHJhbmRvbSBzdHJpbmdzLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50LFxuICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLFxuICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50LFxuICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50LFxuICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L2RvdC1ub3RhdGlvbiAqL1xuZXhwb3J0IGNvbnN0IGdlbmVyYXRlRXJyb3JDb2RlcyA9IDxDVHlwZT4oXG4gICAgc2VydmljZVN0dWI6IENUeXBlLFxuICAgIG1ldGhvZE5hbWVzOiBBcnJheTxrZXlvZiBGaWx0ZXJNZXRob2RzPENUeXBlLCBFeGNsdWRlZE1ldGhvZHM+PixcbiAgICBjbGFzc05hbWU/OiBzdHJpbmcsXG4gICAgcHVibGljTmFtZT86IHN0cmluZ1xuKTogRXJyb3JDb2RlczxDVHlwZT4gPT4ge1xuICAgIGNvbnN0IF9jbGFzc05hbWUgPSBjbGFzc05hbWUgPz8gQ29sbGVjdGlvbnNVdGlsLmdlbmVyYXRlUmFuZG9tU3RyaW5nKCk7XG4gICAgY29uc3QgX3B1YmxpY05hbWUgPSBwdWJsaWNOYW1lID8/IENvbGxlY3Rpb25zVXRpbC5nZW5lcmF0ZVJhbmRvbVN0cmluZygpO1xuICAgIGNvbnN0IF9lcnJvckNvZGVzOiBFcnJvckNvZGVzPENUeXBlPiA9IHt9IGFzIEVycm9yQ29kZXM8Q1R5cGU+O1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIG1ldGhvZE5hbWVzLmZvckVhY2goKG1ldGhvZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIF9lcnJvckNvZGVzW21ldGhvZF0gPSBnZW5lcmF0ZVN1cHBvcnRlZEh0dHBFcnJvckNvZGVzKF9jbGFzc05hbWUsIF9wdWJsaWNOYW1lLCBtZXRob2QpO1xuICAgIH0pO1xuXG4gICAgc2VydmljZVN0dWJbJ2Vycm9yQ29kZXMnXSA9IF9lcnJvckNvZGVzO1xuXG4gICAgcmV0dXJuIF9lcnJvckNvZGVzO1xufTtcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudCxcbiAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLFxuICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50LFxuICAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnQsXG4gICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb24gKi9cbiJdfQ==