expression-language
Version:
Javascript implementation of symfony/expression-language
62 lines (61 loc) • 2.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _ExpressionFunction = _interopRequireDefault(require("../ExpressionFunction"));
var _AbstractProvider = _interopRequireDefault(require("./AbstractProvider"));
var _explode = require("locutus/php/strings/explode");
var _strlen = require("locutus/php/strings/strlen");
var _strtolower = require("locutus/php/strings/strtolower");
var _strtoupper = require("locutus/php/strings/strtoupper");
var _substr = require("locutus/php/strings/substr");
var _strstr = require("locutus/php/strings/strstr");
var _stristr = require("locutus/php/strings/stristr");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
class StringProvider extends _AbstractProvider.default {
getFunctions() {
return [new _ExpressionFunction.default('strtolower', str => {
return '__runtime.strtolower(' + str + ')';
}, (args, str) => {
return (0, _strtolower.strtolower)(str);
}), new _ExpressionFunction.default('strtoupper', str => {
return '__runtime.strtoupper(' + str + ')';
}, (args, str) => {
return (0, _strtoupper.strtoupper)(str);
}), new _ExpressionFunction.default('explode', (delimiter, string, limit = 'null') => {
return `__runtime.explode(${delimiter}, ${string}, ${limit})`;
}, (values, delimiter, string, limit = null) => {
return (0, _explode.explode)(delimiter, string, limit);
}), new _ExpressionFunction.default('strlen', function compiler(str) {
return `__runtime.strlen(${str})`;
}, function evaluator(values, str) {
return (0, _strlen.strlen)(str);
}), new _ExpressionFunction.default('strstr', function compiler(haystack, needle, before_needle) {
let remaining = '';
if (before_needle) {
remaining = `, ${before_needle}`;
}
return `__runtime.strstr(${haystack}, ${needle}${remaining})`;
}, function evaluator(values, haystack, needle, before_needle) {
return (0, _strstr.strstr)(haystack, needle, before_needle);
}), new _ExpressionFunction.default('stristr', function compiler(haystack, needle, before_needle) {
let remaining = '';
if (before_needle) {
remaining = `, ${before_needle}`;
}
return `__runtime.stristr(${haystack}, ${needle}${remaining})`;
}, function evaluator(values, haystack, needle, before_needle) {
return (0, _stristr.stristr)(haystack, needle, before_needle);
}), new _ExpressionFunction.default('substr', function compiler(str, start, length) {
let remaining = '';
if (length) {
remaining = `, ${length}`;
}
return `__runtime.substr(${str}, ${start}${remaining})`;
}, function evaluator(values, str, start, length) {
return (0, _substr.substr)(str, start, length);
})];
}
}
exports.default = StringProvider;