jsonblade
Version:
A powerful and modular JSON template engine with extensible filters
52 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringFilters = void 0;
exports.registerStringFilters = registerStringFilters;
const filter_registry_1 = require("../filter-registry");
const stringFilters = {
upper: (v) => {
if (v == null)
return v;
return String(v).toUpperCase();
},
lower: (v) => {
if (v == null)
return v;
return String(v).toLowerCase();
},
capitalize: (v) => {
if (v == null)
return v;
const s = String(v);
return s.charAt(0).toUpperCase() + s.slice(1);
},
trim: (v) => {
if (v == null)
return v;
return String(v).trim();
},
default: (v, ...args) => {
const defaultValue = args[0];
if (v === null || v === undefined || v === "") {
return defaultValue !== undefined ? defaultValue : "";
}
return v;
},
slug: (v) => {
if (v == null)
return v;
return String(v)
.toLowerCase()
.trim()
.replace(/[^\w\s-]/g, "")
.replace(/[\s_-]+/g, "-")
.replace(/^-+|-+$/g, "");
},
};
exports.stringFilters = stringFilters;
function registerStringFilters() {
Object.entries(stringFilters).forEach(([name, fn]) => {
(0, filter_registry_1.registerFilter)(name, fn);
});
}
//# sourceMappingURL=string-filters.js.map