import _ from "lodash"; import { DefaultEntryType } from "../types"; import defaultFieldsRegexp from "../functions/dsql/default-fields-regexp"; export default function purgeDefaultFields< T extends { [k: string]: any } = DefaultEntryType & { [k: string]: any } >(entry: T | T[]): T | T[] { const newEntry = _.cloneDeep(entry); if (Array.isArray(newEntry)) { const entryKeys = Object.keys(newEntry[0]); for (let i = 0; i < newEntry.length; i++) { for (let j = 0; j < entryKeys.length; j++) { const entryKey = entryKeys[j]; if (defaultFieldsRegexp.test(entryKey)) { delete newEntry[i][entryKey]; } } } return newEntry; } else { const entryKeys = Object.keys(newEntry); for (let i = 0; i < entryKeys.length; i++) { const entryKey = entryKeys[i]; if (defaultFieldsRegexp.test(entryKey)) { delete newEntry[entryKey]; } } return newEntry; } }