UNPKG

adminjs

Version:
28 lines (27 loc) 701 B
/** * @memberof module:flat * @alias PathToPartsOptions */ /** * @load ./path-to-parts.doc.md * @param {string} propertyPath * @param {PathToPartsOptions} options * @returns {PathParts} * * @memberof module:flat * @alias pathToParts */ const pathToParts = (propertyPath, options = {}) => { let allParts = propertyPath.split('.'); if (options.skipArrayIndexes) { // eslint-disable-next-line no-restricted-globals allParts = allParts.filter(part => isNaN(+part)); } return allParts.reduce((memo, part) => { if (memo.length) { return [...memo, [memo[memo.length - 1], part].join('.')]; } return [part]; }, []); }; export { pathToParts };