From b93871f045f8199adac07a9998873b3d311be1a0 Mon Sep 17 00:00:00 2001 From: EYHN Date: Mon, 25 Mar 2024 03:55:26 +0000 Subject: [PATCH] feat(electron): define runtimeConfig in esbuild (#6287) --- packages/common/env/tsconfig.json | 6 +----- packages/frontend/electron/scripts/build-layers.ts | 1 + packages/frontend/electron/scripts/common.ts | 11 +++++++++++ packages/frontend/electron/tsconfig.json | 4 ++-- packages/frontend/electron/tsconfig.node.json | 2 +- packages/frontend/electron/tsconfig.test.json | 2 +- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/common/env/tsconfig.json b/packages/common/env/tsconfig.json index 60bef5cacc..dec9fd8c92 100644 --- a/packages/common/env/tsconfig.json +++ b/packages/common/env/tsconfig.json @@ -6,9 +6,5 @@ "noEmit": false, "outDir": "lib" }, - "references": [ - { - "path": "../../../tests/fixtures" - } - ] + "references": [] } diff --git a/packages/frontend/electron/scripts/build-layers.ts b/packages/frontend/electron/scripts/build-layers.ts index efee8c1ba3..99fa73cbf2 100644 --- a/packages/frontend/electron/scripts/build-layers.ts +++ b/packages/frontend/electron/scripts/build-layers.ts @@ -6,6 +6,7 @@ async function buildLayers() { const common = config(); const define: Record = { + ...common.define, 'process.env.NODE_ENV': `"${mode}"`, 'process.env.BUILD_TYPE': `"${process.env.BUILD_TYPE || 'stable'}"`, }; diff --git a/packages/frontend/electron/scripts/common.ts b/packages/frontend/electron/scripts/common.ts index ab2b6f41b0..25a8f96560 100644 --- a/packages/frontend/electron/scripts/common.ts +++ b/packages/frontend/electron/scripts/common.ts @@ -1,6 +1,8 @@ import { resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; +// eslint-disable-next-line @typescript-eslint/no-restricted-imports +import { getRuntimeConfig } from '@affine/cli/src/webpack/runtime-config'; import type { BuildOptions } from 'esbuild'; export const electronDir = fileURLToPath(new URL('..', import.meta.url)); @@ -17,6 +19,15 @@ export const config = (): BuildOptions => { define['REPLACE_ME_BUILD_ENV'] = `"${process.env.BUILD_TYPE ?? 'stable'}"`; + define['runtimeConfig'] = JSON.stringify( + getRuntimeConfig({ + channel: (process.env.BUILD_TYPE as any) ?? 'canary', + distribution: 'desktop', + mode: + process.env.NODE_ENV === 'production' ? 'production' : 'development', + }) + ); + return { entryPoints: [ resolve(electronDir, './src/main/index.ts'), diff --git a/packages/frontend/electron/tsconfig.json b/packages/frontend/electron/tsconfig.json index d9318764d3..55a2d82b93 100644 --- a/packages/frontend/electron/tsconfig.json +++ b/packages/frontend/electron/tsconfig.json @@ -3,11 +3,11 @@ "compilerOptions": { "composite": true, "skipLibCheck": true, - "target": "ESNext", + "target": "ES2022", "module": "ESNext", "emitDecoratorMetadata": true, "experimentalDecorators": true, - "types": ["node"], + "types": ["node", "affine__env"], "outDir": "lib", "moduleResolution": "node", "resolveJsonModule": true, diff --git a/packages/frontend/electron/tsconfig.node.json b/packages/frontend/electron/tsconfig.node.json index 34fc8e1641..f445874b33 100644 --- a/packages/frontend/electron/tsconfig.node.json +++ b/packages/frontend/electron/tsconfig.node.json @@ -9,7 +9,7 @@ "allowSyntheticDefaultImports": true, "noEmit": false, "outDir": "./lib/scripts", - "types": ["node"], + "types": ["node", "affine__env"], "allowJs": true }, "include": ["./scripts"], diff --git a/packages/frontend/electron/tsconfig.test.json b/packages/frontend/electron/tsconfig.test.json index bf1defc464..725adb9368 100644 --- a/packages/frontend/electron/tsconfig.test.json +++ b/packages/frontend/electron/tsconfig.test.json @@ -9,7 +9,7 @@ "allowSyntheticDefaultImports": true, "noEmit": false, "outDir": "./lib/tests", - "types": ["node"], + "types": ["node", "affine__env"], "allowJs": true }, "references": [