From 369ba701388724bff8dedfef56e277470e46a488 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Mon, 14 Apr 2025 12:46:30 +0530 Subject: [PATCH] share isObject code --- src/node/config.ts | 5 +---- src/shared/shared.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/node/config.ts b/src/node/config.ts index 5d751034..164c4978 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -16,6 +16,7 @@ import { resolvePages } from './plugins/dynamicRoutesPlugin' import { APPEARANCE_KEY, VP_SOURCE_KEY, + isObject, slash, type AdditionalConfig, type Awaitable, @@ -309,10 +310,6 @@ export function mergeConfig(a: UserConfig, b: UserConfig, isRoot = true) { return merged } -function isObject(value: unknown): value is Record { - return Object.prototype.toString.call(value) === '[object Object]' -} - export async function resolveSiteData( root: string, userConfig?: UserConfig, diff --git a/src/shared/shared.ts b/src/shared/shared.ts index 124a69f5..03aa224e 100644 --- a/src/shared/shared.ts +++ b/src/shared/shared.ts @@ -291,8 +291,8 @@ function reportConfigLayers(path: string, layers: SiteData[]) { */ export function stackView(...layers: Partial[]): T { layers = layers.filter((layer) => layer !== undefined) - if (!isStackable(layers[0])) return layers[0] as T - layers = layers.filter(isStackable) + if (!isObject(layers[0])) return layers[0] as T + layers = layers.filter(isObject) if (layers.length <= 1) return layers[0] as T return new Proxy( {}, @@ -331,11 +331,11 @@ export function stackView(...layers: Partial[]): T { ) as T } -function isStackable(obj: any) { - return typeof obj === 'object' && obj !== null && !Array.isArray(obj) -} - const UnpackStackView = Symbol('stack-view:unpack') stackView.unpack = function (obj: T): T[] | undefined { return (obj as any)?.[UnpackStackView] } + +export function isObject(value: unknown): value is Record { + return Object.prototype.toString.call(value) === '[object Object]' +}