36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
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;
|
|
}
|
|
}
|