UNPKG

@rashedmakkouk/dev-utils

Version:
55 lines (54 loc) 1.9 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** Utilities */ const isArray_1 = __importDefault(require("lodash/isArray")); const isNumber_1 = __importDefault(require("lodash/isNumber")); const isPlainObject_1 = __importDefault(require("lodash/isPlainObject")); const isString_1 = __importDefault(require("lodash/isString")); // TODO: Refactor 'extractValues' implementation; Issue #4. /** * Extracts values from supplied `key` (i-e 'id') and converts any value to * array; drops object values. * * @param key - Object field name property to extract values from. * @param payload - List of results. */ function extractValues({ key, payload, separator = ',', }) { let data = []; const appendValue = (value) => { if (value === null || value === undefined || value === '') { return; } else if ((0, isString_1.default)(value)) { if (value.includes(separator)) { data = [...data, ...value.split(separator)]; } else { data.push(value); } } else if ((0, isNumber_1.default)(value)) { data.push(value); } else if ((0, isArray_1.default)(value)) { /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment */ data = [...data, ...value]; } }; if (!(0, isArray_1.default)(payload)) { if ((0, isPlainObject_1.default)(payload)) { const { [key]: value } = payload; appendValue(value); } } else if (payload.length) { for (const { [key]: value } of payload) { appendValue(value); } } return data; } exports.default = extractValues;