jatg
Version:
Just Another Template Generator
38 lines • 1.7 kB
JavaScript
import * as changeCase from 'change-case';
import pluralize from 'pluralize';
import { JatgError } from '../models/jatg-error.js';
const operationFunctions = {
// Plain JS functions
upper: value => value.toUpperCase(),
lower: value => value.toLowerCase(),
trim: value => value.trim(),
unaccent: value => value.normalize("NFD").replace(/[\u0300-\u036f]/g, ''),
// change-case functions
camelCase: value => changeCase.camelCase(value),
capitalCase: value => changeCase.capitalCase(value),
constantCase: value => changeCase.constantCase(value),
dotCase: value => changeCase.dotCase(value),
kebabCase: value => changeCase.kebabCase(value),
noCase: value => changeCase.noCase(value),
pascalCase: value => changeCase.pascalCase(value),
pascalSnakeCase: value => changeCase.pascalSnakeCase(value),
pathCase: value => changeCase.pathCase(value),
sentenceCase: value => changeCase.sentenceCase(value),
snakeCase: value => changeCase.snakeCase(value),
trainCase: value => changeCase.trainCase(value),
initials: value => changeCase.split(value).map(item => item[0]).join('').toUpperCase(),
// pluralize functions
plural: value => pluralize.plural(value),
singular: value => pluralize.singular(value),
};
export function processVariableOperations(value, operations, context) {
if (operations.length === 0)
return value;
for (const op of operations) {
if (!operationFunctions[op])
throw new JatgError(`Invalid variable function "${op}" at ${context || 'unknown'}`);
value = operationFunctions[op](value);
}
return value;
}
//# sourceMappingURL=processVariableOperations.js.map