Server IP : 162.213.251.212 / Your IP : 3.135.218.210 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/home/allssztx/public_html/easybuyer/node_modules/collect.js/src/methods/ |
Upload File : |
'use strict'; const { isArray, isObject } = require('../helpers/is'); const nestedValue = require('../helpers/nestedValue'); const buildKeyPathMap = function buildKeyPathMap(items) { const keyPaths = {}; items.forEach((item, index) => { function buildKeyPath(val, keyPath) { if (isObject(val)) { Object.keys(val).forEach((prop) => { buildKeyPath(val[prop], `${keyPath}.${prop}`); }); } else if (isArray(val)) { val.forEach((v, i) => { buildKeyPath(v, `${keyPath}.${i}`); }); } keyPaths[keyPath] = val; } buildKeyPath(item, index); }); return keyPaths; }; module.exports = function pluck(value, key) { if (value.indexOf('*') !== -1) { const keyPathMap = buildKeyPathMap(this.items); const keyMatches = []; if (key !== undefined) { const keyRegex = new RegExp(`0.${key}`, 'g'); const keyNumberOfLevels = `0.${key}`.split('.').length; Object.keys(keyPathMap).forEach((k) => { const matchingKey = k.match(keyRegex); if (matchingKey) { const match = matchingKey[0]; if (match.split('.').length === keyNumberOfLevels) { keyMatches.push(keyPathMap[match]); } } }); } const valueMatches = []; const valueRegex = new RegExp(`0.${value}`, 'g'); const valueNumberOfLevels = `0.${value}`.split('.').length; Object.keys(keyPathMap).forEach((k) => { const matchingValue = k.match(valueRegex); if (matchingValue) { const match = matchingValue[0]; if (match.split('.').length === valueNumberOfLevels) { valueMatches.push(keyPathMap[match]); } } }); if (key !== undefined) { const collection = {}; this.items.forEach((item, index) => { collection[keyMatches[index] || ''] = valueMatches; }); return new this.constructor(collection); } return new this.constructor([valueMatches]); } if (key !== undefined) { const collection = {}; this.items.forEach((item) => { if (nestedValue(item, value) !== undefined) { collection[item[key] || ''] = nestedValue(item, value); } else { collection[item[key] || ''] = null; } }); return new this.constructor(collection); } return this.map((item) => { if (nestedValue(item, value) !== undefined) { return nestedValue(item, value); } return null; }); };