summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2023-08-15 21:11:00 +0800
committerGravatar GitHub <noreply@github.com> 2023-08-15 21:11:00 +0800
commitfa29e4a36f1b2bf49248336d39b09360b77f7403 (patch)
tree4ffbfdc8d425110931bb82f07ad9a69af73d11da
parentc19987df0be3520cf774476cea270c03edd08354 (diff)
downloadastro-fa29e4a36f1b2bf49248336d39b09360b77f7403.tar.gz
astro-fa29e4a36f1b2bf49248336d39b09360b77f7403.tar.zst
astro-fa29e4a36f1b2bf49248336d39b09360b77f7403.zip
Remove deepmerge-ts for simpler implementation (#8086)
-rw-r--r--packages/astro/package.json1
-rw-r--r--packages/astro/src/core/config/tsconfig.ts26
-rw-r--r--pnpm-lock.yaml8
3 files changed, 24 insertions, 11 deletions
diff --git a/packages/astro/package.json b/packages/astro/package.json
index 404242f20..37bd049eb 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -137,7 +137,6 @@
"common-ancestor-path": "^1.0.1",
"cookie": "^0.5.0",
"debug": "^4.3.4",
- "deepmerge-ts": "^4.3.0",
"devalue": "^4.3.2",
"diff": "^5.1.0",
"es-module-lexer": "^1.3.0",
diff --git a/packages/astro/src/core/config/tsconfig.ts b/packages/astro/src/core/config/tsconfig.ts
index 5a5d3fc64..a0c78f08c 100644
--- a/packages/astro/src/core/config/tsconfig.ts
+++ b/packages/astro/src/core/config/tsconfig.ts
@@ -1,4 +1,3 @@
-import { deepmerge } from 'deepmerge-ts';
import { existsSync } from 'node:fs';
import { join } from 'node:path';
import * as tsr from 'tsconfig-resolver';
@@ -96,5 +95,28 @@ export function updateTSConfigForFramework(
return target;
}
- return deepmerge(target, presets.get(framework)!);
+ return deepMergeObjects(target, presets.get(framework)!);
+}
+
+// Simple deep merge implementation that merges objects and strings
+function deepMergeObjects<T extends Record<string, any>>(a: T, b: T): T {
+ const merged: T = { ...a };
+
+ for (const key in b) {
+ const value = b[key];
+
+ if (a[key] == null) {
+ merged[key] = value;
+ continue;
+ }
+
+ if (typeof a[key] === 'object' && typeof value === 'object') {
+ merged[key] = deepMergeObjects(a[key], value);
+ continue;
+ }
+
+ merged[key] = value;
+ }
+
+ return merged;
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ca505820a..0f43ca59c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -548,9 +548,6 @@ importers:
debug:
specifier: ^4.3.4
version: 4.3.4
- deepmerge-ts:
- specifier: ^4.3.0
- version: 4.3.0
devalue:
specifier: ^4.3.2
version: 4.3.2
@@ -10809,11 +10806,6 @@ packages:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
- /deepmerge-ts@4.3.0:
- resolution: {integrity: sha512-if3ZYdkD2dClhnXR5reKtG98cwyaRT1NeugQoAPTTfsOpV9kqyeiBF9Qa5RHjemb3KzD5ulqygv6ED3t5j9eJw==}
- engines: {node: '>=12.4.0'}
- dev: false
-
/deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}