admin-bro
Version:
Admin panel for apps written in node.js
22 lines (17 loc) • 1.04 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.propertyKeyRegex = void 0;
var _constants = require("./constants");
// this is the regex used to find all existing properties starting with a key
const propertyKeyRegex = (propertyPath, options) => {
const delimiter = new RegExp(`\\${_constants.DELIMITER}`, 'g');
const escapedDelimiter = `\\${_constants.DELIMITER}`; // but for `nested.1.property.0` it will produce `nested(\.|\.\d+\.)1(\.|\.\d+\.)property.0`
// and this is intentional because user can give an one index in property path for with deeply
// nested arrays
const escapedDelimiterOrIndex = `(${escapedDelimiter}|${escapedDelimiter}\\d+${escapedDelimiter})`;
const path = (options === null || options === void 0 ? void 0 : options.includeAllSiblings) ? propertyPath.replace(delimiter, escapedDelimiterOrIndex) : propertyPath.replace(delimiter, escapedDelimiter);
return new RegExp(`^${path}($|${escapedDelimiter})`, '');
};
exports.propertyKeyRegex = propertyKeyRegex;
;