0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2024-12-30 20:33:54 -05:00

chore(core,shared): add isDevFeatureEnabled to envset (#4707)

This commit is contained in:
wangsijie 2023-10-20 17:41:29 +08:00 committed by GitHub
parent b5553e7237
commit cc81d8de33
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 12 additions and 7 deletions

View file

@ -6,4 +6,4 @@ export const isCloud = yes(process.env.IS_CLOUD);
export const adminEndpoint = process.env.ADMIN_ENDPOINT; export const adminEndpoint = process.env.ADMIN_ENDPOINT;
// eslint-disable-next-line unicorn/prevent-abbreviations -- we love dev // eslint-disable-next-line unicorn/prevent-abbreviations -- we love dev
export const isDevFeaturesEnabled = export const isDevFeaturesEnabled =
yes(process.env.DEV_FEATURES_ENABLED) || yes(process.env.INTEGRATION_TEST); !isProduction || yes(process.env.DEV_FEATURES_ENABLED) || yes(process.env.INTEGRATION_TEST);

View file

@ -5,7 +5,7 @@ import assertThat from '#src/utils/assert-that.js';
export const validateMfa = (mfa: Mfa) => { export const validateMfa = (mfa: Mfa) => {
// TODO @sijie: remove this check when MFA is ready for production. // TODO @sijie: remove this check when MFA is ready for production.
if (EnvSet.values.isProduction && !EnvSet.values.isIntegrationTest) { if (!EnvSet.values.isDevFeaturesEnabled) {
throw new Error('MFA is not ready for production yet.'); throw new Error('MFA is not ready for production yet.');
} }

View file

@ -7,7 +7,7 @@ import AppBoundary from './Providers/AppBoundary';
import LoadingLayerProvider from './Providers/LoadingLayerProvider'; import LoadingLayerProvider from './Providers/LoadingLayerProvider';
import PageContextProvider from './Providers/PageContextProvider'; import PageContextProvider from './Providers/PageContextProvider';
import SettingsProvider from './Providers/SettingsProvider'; import SettingsProvider from './Providers/SettingsProvider';
import { isDevelopmentFeaturesEnabled } from './constants/env'; import { isDevFeaturesEnabled as isDevelopmentFeaturesEnabled } from './constants/env';
import Callback from './pages/Callback'; import Callback from './pages/Callback';
import Consent from './pages/Consent'; import Consent from './pages/Consent';
import Continue from './pages/Continue'; import Continue from './pages/Continue';

View file

@ -1,4 +1,7 @@
import { yes } from '@silverhand/essentials'; import { yes } from '@silverhand/essentials';
export const isDevelopmentFeaturesEnabled = // eslint-disable-next-line unicorn/prevent-abbreviations -- keep the same as in other packages
yes(process.env.DEV_FEATURES_ENABLED) || yes(process.env.INTEGRATION_TEST); export const isDevFeaturesEnabled =
process.env.NODE_ENV !== 'production' ||
yes(process.env.DEV_FEATURES_ENABLED) ||
yes(process.env.INTEGRATION_TEST);

View file

@ -1,7 +1,7 @@
import { conditional } from '@silverhand/essentials'; import { conditional } from '@silverhand/essentials';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { isDevelopmentFeaturesEnabled } from '@/constants/env'; import { isDevFeaturesEnabled } from '@/constants/env';
import { type ErrorHandlers } from './use-error-handler'; import { type ErrorHandlers } from './use-error-handler';
import useMfaErrorHandler, { import useMfaErrorHandler, {
@ -20,7 +20,7 @@ const usePreSignInErrorHandler = ({ replace, linkSocial }: Options = {}): ErrorH
return useMemo( return useMemo(
() => ({ () => ({
...requiredProfileErrorHandler, ...requiredProfileErrorHandler,
...conditional(isDevelopmentFeaturesEnabled && mfaErrorHandler), ...conditional(isDevFeaturesEnabled && mfaErrorHandler),
}), }),
[mfaErrorHandler, requiredProfileErrorHandler] [mfaErrorHandler, requiredProfileErrorHandler]
); );

View file

@ -7,6 +7,8 @@ export default class GlobalValues {
public readonly isProduction = getEnv('NODE_ENV') === 'production'; public readonly isProduction = getEnv('NODE_ENV') === 'production';
public readonly isIntegrationTest = yes(getEnv('INTEGRATION_TEST')); public readonly isIntegrationTest = yes(getEnv('INTEGRATION_TEST'));
public readonly isUnitTest = getEnv('NODE_ENV') === 'test'; public readonly isUnitTest = getEnv('NODE_ENV') === 'test';
public readonly isDevFeaturesEnabled =
!this.isProduction || yes(getEnv('DEV_FEATURES_ENABLED')) || this.isIntegrationTest;
public readonly httpsCert = process.env.HTTPS_CERT_PATH; public readonly httpsCert = process.env.HTTPS_CERT_PATH;
public readonly httpsKey = process.env.HTTPS_KEY_PATH; public readonly httpsKey = process.env.HTTPS_KEY_PATH;