UNPKG

@puq/names

Version:

The library provides a useful function to create all casing variants of a given string value such as title-case, pascal-case, snake-case and so more.

35 lines (34 loc) 1.16 kB
import { InvalidResourceNameError } from '@puq/errors'; import { endsWithFn, keys, some, values } from '@puq/utils'; export const ResourceClassNameSuffixes = { Controller: 'Controller', Service: 'Service', Interceptor: 'Interceptor', ExceptionFilter: 'ExceptionFilter', EventEmitter: 'EventEmitter', EventListener: 'EventListener', Module: 'Module', Guard: 'Guard', Error: 'Error', Pipe: 'Pipe', Transformer: 'Transformer', Middleware: 'Middleware' }; /** * Check if * the given {@link className} is valid as in {@link ResourceClassNameSuffix} or not, * then return `true`, else `false * * @group Names * @param className {@link string} * @returns - {@link Boolean} */ export function isResourceClassName(className) { return some(values(ResourceClassNameSuffixes), endsWithFn(className)); } export function isResourceClassNameOrThrow(className, expected = keys(ResourceClassNameSuffixes).map((e)=>e + '$').join('|')) { if (isResourceClassName(className)) { return true; } throw new InvalidResourceNameError(className, expected); } //# sourceMappingURL=resource-class-name.js.map