UNPKG

blue-fish-helper

Version:

这是一个修复漏洞后的helper

56 lines (55 loc) 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _ = require("lodash"); function assginSafe(source, extend, newData) { if (extend) { const oldData = _.get(source, extend); const newSetData = typeof oldData === 'object' ? _.assign(oldData, newData) : newData; _.set(source, extend, newSetData); } else { _.assign(source, newData); } } exports.default = new (class { getIds(list, keys) { const key = keys[0] || ''; const ids = []; if (key) _.forEach(list, (v) => { const item = _.get(v, key); if (typeof item === 'string') ids.push(item); else if (Array.isArray(item)) ids.push(...this.getIds(item, keys.slice(1))); }); else _.forEach(list, (v) => { if (typeof v === 'string') ids.push(v); }); return ids; } setValues(list, dataMap, keys, extend = '', defaultValue = {}) { const key = keys[0] || ''; const values = []; if (key) _.forEach(list, (v) => { const item = _.get(v, key); if (typeof item === 'string') { assginSafe(v, extend, dataMap[item] || defaultValue); } else if (Array.isArray(item)) { const newArrayValues = this.setValues(item, dataMap, keys.slice(1), extend, defaultValue); if (newArrayValues.length > 0) _.set(v, extend, newArrayValues); } }); else _.forEach(list, (v) => { if (typeof v === 'string') values.push(dataMap[v] || defaultValue); }); return values; } })();