chore(server): set script flavor instead of NODE_ENV (#10121)

This commit is contained in:
forehalo
2025-02-12 08:49:51 +00:00
parent 58fed5928b
commit 72bf81245a
8 changed files with 28 additions and 15 deletions

View File

@@ -19,6 +19,7 @@ test.before('start app', async t => {
sync: false,
renderer: false,
doc: true,
script: false,
} satisfies typeof AFFiNE.flavor;
const app = await createTestingApp({
imports: [buildAppModule()],

View File

@@ -21,6 +21,7 @@ test.before('start app', async t => {
sync: false,
renderer: false,
doc: false,
script: false,
} satisfies typeof AFFiNE.flavor;
const app = await createTestingApp({
imports: [buildAppModule()],

View File

@@ -19,6 +19,7 @@ test.before('start app', async t => {
sync: false,
renderer: true,
doc: false,
script: false,
} satisfies typeof AFFiNE.flavor;
const app = await createTestingApp({
imports: [buildAppModule()],

View File

@@ -19,6 +19,7 @@ test.before('start app', async t => {
sync: true,
renderer: false,
doc: false,
script: false,
} satisfies typeof AFFiNE.flavor;
const app = await createTestingApp({
imports: [buildAppModule()],

View File

@@ -2,9 +2,16 @@ import type { LeafPaths } from '../utils/types';
import { AppStartupConfig } from './types';
export type EnvConfigType = 'string' | 'int' | 'float' | 'boolean';
export type ServerFlavor = 'allinone' | 'graphql' | 'sync' | 'renderer' | 'doc';
export type ServerFlavor =
| 'allinone'
| 'graphql'
| 'sync'
| 'renderer'
| 'doc'
| 'script';
export type AFFINE_ENV = 'dev' | 'beta' | 'production';
export type NODE_ENV = 'development' | 'test' | 'production' | 'script';
export type NODE_ENV = 'development' | 'test' | 'production';
export enum DeploymentType {
Affine = 'affine',
@@ -29,7 +36,6 @@ export interface PreDefinedAFFiNEConfig {
prod: boolean;
dev: boolean;
test: boolean;
script: boolean;
};
readonly deploy: boolean;
}

View File

@@ -13,12 +13,15 @@ import {
import { readEnv } from './env';
import { defaultStartupConfig } from './register';
function expectFlavor(flavor: ServerFlavor, expected: ServerFlavor) {
return flavor === expected || flavor === 'allinone';
}
function getPredefinedAFFiNEConfig(): PreDefinedAFFiNEConfig {
const NODE_ENV = readEnv<NODE_ENV>('NODE_ENV', 'production', [
'development',
'test',
'production',
'script',
]);
const AFFINE_ENV = readEnv<AFFINE_ENV>('AFFINE_ENV', 'production', [
'dev',
@@ -31,6 +34,7 @@ function getPredefinedAFFiNEConfig(): PreDefinedAFFiNEConfig {
'sync',
'renderer',
'doc',
'script',
]);
const deploymentType = readEnv<DeploymentType>(
'DEPLOYMENT_TYPE',
@@ -49,7 +53,6 @@ function getPredefinedAFFiNEConfig(): PreDefinedAFFiNEConfig {
prod: NODE_ENV === 'production',
dev: NODE_ENV === 'development',
test: NODE_ENV === 'test',
script: NODE_ENV === 'script',
};
return {
@@ -64,10 +67,11 @@ function getPredefinedAFFiNEConfig(): PreDefinedAFFiNEConfig {
flavor: {
type: flavor,
allinone: flavor === 'allinone',
graphql: flavor === 'graphql' || flavor === 'allinone',
sync: flavor === 'sync' || flavor === 'allinone',
renderer: flavor === 'renderer' || flavor === 'allinone',
doc: flavor === 'doc' || flavor === 'allinone',
graphql: expectFlavor(flavor, 'graphql'),
sync: expectFlavor(flavor, 'sync'),
renderer: expectFlavor(flavor, 'renderer'),
doc: expectFlavor(flavor, 'doc'),
script: expectFlavor(flavor, 'script'),
},
affine,
node,

View File

@@ -1,11 +1,10 @@
import '../prelude';
import { Logger } from '@nestjs/common';
import { CommandFactory } from 'nest-commander';
async function bootstrap() {
AFFiNE.metrics.enabled = false;
AFFiNE.doc.manager.enableUpdateAutoMerging = false;
process.env.SERVER_FLAVOR = 'script';
await import('../prelude');
const { CliAppModule } = await import('./app');
await CommandFactory.run(CliAppModule, new Logger()).catch(e => {
console.error(e);