@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
JavaScript
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