mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-17 19:22:17 +03:00
9a944048e8
fix TOV-280 experimental features ui - enabled in the workspace settings for a cloud workspace; only show for workspace owner + early access - a disclaimer prompt will be shown before going to the next feature setting page - for now only show the ai poc switch, which controls the display of the ai tab in editor's sidepanel
150 lines
5.5 KiB
TypeScript
150 lines
5.5 KiB
TypeScript
import type { BlockSuiteFeatureFlags, RuntimeConfig } from '@affine/env/global';
|
|
import type { BuildFlags } from '@affine/cli/config';
|
|
import { createRequire } from 'node:module';
|
|
|
|
const require = createRequire(import.meta.url);
|
|
const packageJson = require('../package.json');
|
|
|
|
const editorFlags: BlockSuiteFeatureFlags = {
|
|
enable_expand_database_block: false,
|
|
enable_bultin_ledits: false,
|
|
};
|
|
|
|
export function getRuntimeConfig(buildFlags: BuildFlags): RuntimeConfig {
|
|
const buildPreset: Record<BuildFlags['channel'], RuntimeConfig> = {
|
|
stable: {
|
|
enableTestProperties: false,
|
|
enableBroadcastChannelProvider: true,
|
|
enableDebugPage: true,
|
|
changelogUrl: 'https://affine.pro/what-is-new',
|
|
downloadUrl: 'https://affine.pro/download',
|
|
imageProxyUrl: '/api/worker/image-proxy',
|
|
enablePreloading: true,
|
|
enableNewSettingModal: true,
|
|
enableNewSettingUnstableApi: false,
|
|
enableSQLiteProvider: true,
|
|
enableMoveDatabase: false,
|
|
enableNotificationCenter: true,
|
|
enableCloud: true,
|
|
enableCaptcha: true,
|
|
enableEnhanceShareMode: false,
|
|
enablePayment: true,
|
|
enablePageHistory: true,
|
|
serverUrlPrefix: 'https://app.affine.pro',
|
|
editorFlags,
|
|
appVersion: packageJson.version,
|
|
editorVersion: packageJson.dependencies['@blocksuite/presets'],
|
|
appBuildType: 'stable',
|
|
},
|
|
get beta() {
|
|
return {
|
|
...this.stable,
|
|
enablePageHistory: true,
|
|
serverUrlPrefix: 'https://insider.affine.pro',
|
|
appBuildType: 'beta' as const,
|
|
};
|
|
},
|
|
get internal() {
|
|
return {
|
|
...this.stable,
|
|
serverUrlPrefix: 'https://insider.affine.pro',
|
|
appBuildType: 'internal' as const,
|
|
};
|
|
},
|
|
// canary will be aggressive and enable all features
|
|
canary: {
|
|
enableTestProperties: true,
|
|
enableBroadcastChannelProvider: true,
|
|
enableDebugPage: true,
|
|
changelogUrl: 'https://github.com/toeverything/AFFiNE/releases',
|
|
downloadUrl: 'https://affine.pro/download',
|
|
imageProxyUrl: '/api/worker/image-proxy',
|
|
enablePreloading: true,
|
|
enableNewSettingModal: true,
|
|
enableNewSettingUnstableApi: false,
|
|
enableSQLiteProvider: true,
|
|
enableMoveDatabase: false,
|
|
enableNotificationCenter: true,
|
|
enableCloud: true,
|
|
enableCaptcha: true,
|
|
enableEnhanceShareMode: false,
|
|
enablePayment: true,
|
|
enablePageHistory: true,
|
|
serverUrlPrefix: 'https://affine.fail',
|
|
editorFlags,
|
|
appVersion: packageJson.version,
|
|
editorVersion: packageJson.dependencies['@blocksuite/presets'],
|
|
appBuildType: 'canary',
|
|
},
|
|
};
|
|
|
|
const currentBuild = buildFlags.channel;
|
|
|
|
if (!(currentBuild in buildPreset)) {
|
|
throw new Error(`BUILD_TYPE ${currentBuild} is not supported`);
|
|
}
|
|
|
|
const currentBuildPreset = buildPreset[currentBuild];
|
|
|
|
const environmentPreset = {
|
|
enableTestProperties: process.env.ENABLE_TEST_PROPERTIES
|
|
? process.env.ENABLE_TEST_PROPERTIES === 'true'
|
|
: currentBuildPreset.enableTestProperties,
|
|
enableBroadcastChannelProvider: process.env.ENABLE_BC_PROVIDER
|
|
? process.env.ENABLE_BC_PROVIDER !== 'false'
|
|
: currentBuildPreset.enableBroadcastChannelProvider,
|
|
changelogUrl: process.env.CHANGELOG_URL ?? currentBuildPreset.changelogUrl,
|
|
enablePreloading: process.env.ENABLE_PRELOADING
|
|
? process.env.ENABLE_PRELOADING === 'true'
|
|
: currentBuildPreset.enablePreloading,
|
|
enableNewSettingModal: process.env.ENABLE_NEW_SETTING_MODAL
|
|
? process.env.ENABLE_NEW_SETTING_MODAL === 'true'
|
|
: currentBuildPreset.enableNewSettingModal,
|
|
enableSQLiteProvider: process.env.ENABLE_SQLITE_PROVIDER
|
|
? process.env.ENABLE_SQLITE_PROVIDER === 'true'
|
|
: currentBuildPreset.enableSQLiteProvider,
|
|
enableNewSettingUnstableApi: process.env.ENABLE_NEW_SETTING_UNSTABLE_API
|
|
? process.env.ENABLE_NEW_SETTING_UNSTABLE_API === 'true'
|
|
: currentBuildPreset.enableNewSettingUnstableApi,
|
|
enableNotificationCenter: process.env.ENABLE_NOTIFICATION_CENTER
|
|
? process.env.ENABLE_NOTIFICATION_CENTER === 'true'
|
|
: currentBuildPreset.enableNotificationCenter,
|
|
enableCloud: process.env.ENABLE_CLOUD
|
|
? process.env.ENABLE_CLOUD === 'true'
|
|
: currentBuildPreset.enableCloud,
|
|
enableCaptcha: process.env.ENABLE_CAPTCHA
|
|
? process.env.ENABLE_CAPTCHA === 'true'
|
|
: buildFlags.mode === 'development'
|
|
? false
|
|
: currentBuildPreset.enableCaptcha,
|
|
enableEnhanceShareMode: process.env.ENABLE_ENHANCE_SHARE_MODE
|
|
? process.env.ENABLE_ENHANCE_SHARE_MODE === 'true'
|
|
: currentBuildPreset.enableEnhanceShareMode,
|
|
enableMoveDatabase: process.env.ENABLE_MOVE_DATABASE
|
|
? process.env.ENABLE_MOVE_DATABASE === 'true'
|
|
: currentBuildPreset.enableMoveDatabase,
|
|
enablePayment: process.env.ENABLE_PAYMENT
|
|
? process.env.ENABLE_PAYMENT !== 'false'
|
|
: buildFlags.mode === 'development'
|
|
? true
|
|
: currentBuildPreset.enablePayment,
|
|
enablePageHistory: process.env.ENABLE_PAGE_HISTORY
|
|
? process.env.ENABLE_PAGE_HISTORY === 'true'
|
|
: buildFlags.mode === 'development'
|
|
? true
|
|
: currentBuildPreset.enablePageHistory,
|
|
};
|
|
|
|
if (buildFlags.mode === 'development') {
|
|
currentBuildPreset.serverUrlPrefix = 'http://localhost:8080';
|
|
}
|
|
|
|
return {
|
|
...currentBuildPreset,
|
|
// environment preset will overwrite current build preset
|
|
// this environment variable is for debug proposes only
|
|
// do not put them into CI
|
|
...(process.env.CI ? {} : environmentPreset),
|
|
};
|
|
}
|