From 425905b7be0758e40ab1f113f7cbf26a4134f3c8 Mon Sep 17 00:00:00 2001 From: Vjacheslav Trushkin Date: Sat, 15 Oct 2022 12:24:16 +0300 Subject: [PATCH] fix: create empty objects from null in utils --- packages/utils/src/icon-set/get-icon.ts | 8 ++++++-- packages/utils/src/icon-set/get-icons.ts | 3 ++- packages/utils/src/icon-set/tree.ts | 4 ++-- packages/utils/src/icon-set/validate-basic.ts | 4 ++-- packages/utils/src/icon-set/validate.ts | 3 ++- packages/utils/src/misc/objects.ts | 2 +- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/utils/src/icon-set/get-icon.ts b/packages/utils/src/icon-set/get-icon.ts index 81b8728..04482a3 100644 --- a/packages/utils/src/icon-set/get-icon.ts +++ b/packages/utils/src/icon-set/get-icon.ts @@ -1,4 +1,8 @@ -import type { ExtendedIconifyIcon, IconifyJSON } from '@iconify/types'; +import type { + ExtendedIconifyIcon, + IconifyAliases, + IconifyJSON, +} from '@iconify/types'; import { mergeIconData } from '../icon/merge'; import { getIconsTree } from './tree'; @@ -11,7 +15,7 @@ export function internalGetIconData( tree: string[] ): ExtendedIconifyIcon { const icons = data.icons; - const aliases = data.aliases || {}; + const aliases = data.aliases || (Object.create(null) as IconifyAliases); let currentProps = {} as ExtendedIconifyIcon; diff --git a/packages/utils/src/icon-set/get-icons.ts b/packages/utils/src/icon-set/get-icons.ts index f5bb0e8..acb0f78 100644 --- a/packages/utils/src/icon-set/get-icons.ts +++ b/packages/utils/src/icon-set/get-icons.ts @@ -25,7 +25,8 @@ export function getIcons( }; const sourceIcons = data.icons; - const sourceAliases = data.aliases || {}; + const sourceAliases = + data.aliases || (Object.create(null) as IconifyAliases); // Add lastModified if (data.lastModified) { diff --git a/packages/utils/src/icon-set/tree.ts b/packages/utils/src/icon-set/tree.ts index dbee3f4..82d6fef 100644 --- a/packages/utils/src/icon-set/tree.ts +++ b/packages/utils/src/icon-set/tree.ts @@ -1,4 +1,4 @@ -import type { IconifyJSON } from '@iconify/types'; +import type { IconifyAliases, IconifyJSON } from '@iconify/types'; // Parent icons, first is direct parent, last is icon. Does not include self export type ParentIconsList = string[]; @@ -16,7 +16,7 @@ export function getIconsTree( names?: string[] ): ParentIconsTree { const icons = data.icons; - const aliases = data.aliases || {}; + const aliases = data.aliases || (Object.create(null) as IconifyAliases); const resolved = Object.create(null) as ParentIconsTree; diff --git a/packages/utils/src/icon-set/validate-basic.ts b/packages/utils/src/icon-set/validate-basic.ts index 301f170..c898bab 100644 --- a/packages/utils/src/icon-set/validate-basic.ts +++ b/packages/utils/src/icon-set/validate-basic.ts @@ -1,4 +1,4 @@ -import type { IconifyJSON } from '@iconify/types'; +import type { IconifyAliases, IconifyJSON } from '@iconify/types'; import { matchIconName } from '../icon/name'; import { defaultIconDimensions, @@ -75,7 +75,7 @@ export function quicklyValidateIconSet(obj: unknown): IconifyJSON | null { } // Check all aliases - const aliases = data.aliases || {}; + const aliases = data.aliases || (Object.create(null) as IconifyAliases); for (const name in aliases) { const icon = aliases[name]; const parent = icon.parent; diff --git a/packages/utils/src/icon-set/validate.ts b/packages/utils/src/icon-set/validate.ts index ae1040d..b6ac7bb 100644 --- a/packages/utils/src/icon-set/validate.ts +++ b/packages/utils/src/icon-set/validate.ts @@ -1,5 +1,6 @@ import type { ExtendedIconifyIcon, + IconifyAliases, IconifyJSON, IconifyOptional, } from '@iconify/types'; @@ -135,7 +136,7 @@ export function validateIconSet( // Validate all icons and aliases const tree = getIconsTree(data); const icons = data.icons; - const aliases = data.aliases || {}; + const aliases = data.aliases || (Object.create(null) as IconifyAliases); for (const name in tree) { const treeItem = tree[name]; const isAlias = !icons[name]; diff --git a/packages/utils/src/misc/objects.ts b/packages/utils/src/misc/objects.ts index 5546f76..d7bc827 100644 --- a/packages/utils/src/misc/objects.ts +++ b/packages/utils/src/misc/objects.ts @@ -41,7 +41,7 @@ export function commonObjectProps>( item: unknown, reference: T ): Partial { - const result = {} as T; + const result = Object.create(null) as T; for (const key in reference) { if (key in (item as T)) { result[key] = (item as T)[key];