UNPKG

twing

Version:

First-class Twig engine for Node.js

38 lines (37 loc) 1.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFilter = void 0; /** * Get a filter by name. * * @param {string} name The filter name * * @return {TwingFilter|false} A TwingFilter instance or false if the filter does not exist */ const getFilter = (filters, name) => { const result = filters.get(name); if (result) { return result; } for (let [pattern, filter] of filters) { let count = 0; pattern = pattern.replace(/\*/g, function () { count++; return '(.*?)'; }); if (count) { const regExp = new RegExp('^' + pattern + '$', 'g'); const match = regExp.exec(name); const matches = []; if (match) { for (let i = 1; i <= count; i++) { matches.push(match[i]); } filter.nativeArguments = matches; return filter; } } } return null; }; exports.getFilter = getFilter;