remove cleanClone

This commit is contained in:
Sidharth Vinod
2023-08-11 02:50:24 +05:30
parent 396bda8d95
commit dfeb25127b
2 changed files with 5 additions and 29 deletions

View File

@@ -1,24 +0,0 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
export function removeUndefined(data: any): any {
if (typeof data === 'object') {
const entries: [string, any][] = Object.entries(data).filter(
([, value]: [string, any]) => value !== undefined
);
const clean: any[][] = entries.map(([key, v]: [string, any]) => {
const value = typeof v == 'object' ? removeUndefined(v) : v;
return [key, value];
});
return Object.fromEntries(clean);
} else if (Array.isArray(data)) {
return data.filter((value: any) => value !== undefined);
}
return data;
}
export function structuredCleanClone<T = any>(defaultData: T, data?: Partial<T>): T {
const cleanValue: T = removeUndefined(data);
return structuredClone<T>({ ...defaultData, ...cleanValue });
}

View File

@@ -15,7 +15,7 @@ import type { ParseDirectiveDefinition } from '../../diagram-api/types.js';
import type { PieFields, PieDB, Sections } from './pieTypes.js';
import type { RequiredDeep } from 'type-fest';
import type { PieDiagramConfig } from '../../config.type.js';
import { structuredCleanClone } from '../../cleanClone.js';
import { cleanAndMerge } from '../../utils.js';
export const DEFAULT_PIE_CONFIG: Required<PieDiagramConfig> = {
useMaxWidth: true,
@@ -31,16 +31,16 @@ export const DEFAULT_PIE_DB: RequiredDeep<PieFields> = {
let sections: Sections = DEFAULT_PIE_DB.sections;
let showData: boolean = DEFAULT_PIE_DB.showData;
let config: Required<PieDiagramConfig> = structuredCleanClone(DEFAULT_PIE_CONFIG);
let config: Required<PieDiagramConfig> = structuredClone(DEFAULT_PIE_CONFIG);
const setConfig = (conf: PieDiagramConfig): void => {
config = structuredCleanClone(DEFAULT_PIE_CONFIG, conf);
config = cleanAndMerge(DEFAULT_PIE_CONFIG, conf);
};
const getConfig = (): Required<PieDiagramConfig> => config;
const resetConfig = (): void => {
config = structuredCleanClone(DEFAULT_PIE_CONFIG);
config = structuredClone(DEFAULT_PIE_CONFIG);
};
const parseDirective: ParseDirectiveDefinition = (statement, context, type) => {
@@ -48,7 +48,7 @@ const parseDirective: ParseDirectiveDefinition = (statement, context, type) => {
};
const clear = (): void => {
sections = structuredCleanClone(DEFAULT_PIE_DB.sections);
sections = structuredClone(DEFAULT_PIE_DB.sections);
showData = DEFAULT_PIE_DB.showData;
commonClear();
resetConfig();