Skip to content

Commit

Permalink
feat: update env declaration for undefined node env (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
OlegDO authored Mar 4, 2024
1 parent 36f580c commit 1c08c0c
Showing 1 changed file with 64 additions and 60 deletions.
124 changes: 64 additions & 60 deletions src/helpers/get-constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,66 +20,70 @@ const GetConstants = ({
withDb = false,
withAWS = false,
withFirebase = false,
}: ICustomEnv) => ({
IS_BUILD: isBuild,
VERSION: version,
PACKAGE_NAME: packageName,
ENV: process.env.NODE_ENV || 'development',
IS_PROD: process.env.NODE_ENV === 'production',
IS_DEV: process.env.NODE_ENV === 'development',
IS_TEST: process.env.NODE_ENV === 'tests',
ENVIRONMENT: process.env.ENVIRONMENT || 'prod',
SRC_FOLDER: isBuild ? 'lib' : 'src',
MS_NAME: process.env.MS_NAME || msNameDefault,
MS_CONFIG_NAME: process.env.MS_CONFIG_NAME || 'configuration',
MS_CONNECTION: process.env.MS_CONNECTION,
IS_CONNECTION_SRV: Boolean(process.env.MS_CONNECTION_SRV ?? false),
MS_WORKERS: Number(process.env.MS_WORKERS || 5),
IS_ENABLE_REMOTE_MIDDLEWARE: Boolean(Number(process.env.MS_ENABLE_REMOTE_MIDDLEWARE ?? 1)),
IS_REMOTE_CONFIG_ENABLE: Boolean(Number(process.env.MS_REMOTE_CONFIG_ENABLE || 1)),
IS_ENABLE_GRAFANA_LOG: Boolean(Number(process.env.MS_ENABLE_GRAFANA_LOG || 0)),
MS_GRAFANA_LOKI_CONFIG: JSON.parse(process.env.MS_GRAFANA_LOKI_CONFIG || 'null'),
IS_OPENTELEMETRY_ENABLE: Boolean(Number(process.env.MS_OPENTELEMETRY_ENABLE || 0)),
MS_OPENTELEMETRY_OTLP_URL: process.env.MS_OPENTELEMETRY_OTLP_URL,
IS_OPENTELEMETRY_OTLP_URL_SRV: Boolean(Number(process.env.MS_OPENTELEMETRY_OTLP_URL_SRV || 0)),
IS_OPENTELEMETRY_DEBUG: Boolean(Number(process.env.MS_OPENTELEMETRY_DEBUG || 0)),
MS_CONSOLE_LOG_LEVEL: process.env.MS_CONSOLE_LOG_LEVEL || 'info',
IS_ENABLE_EVENTS: Boolean(Number(process.env.ENABLE_EVENTS || 0)),
...(withDb
? {
DB: {
URL: process.env.DB_URL,
HOST: process.env.DB_HOST || '127.0.0.1',
PORT: Number(process.env.DB_PORT) || 5432,
USERNAME: process.env.DB_USERNAME || 'postgres',
PASSWORD: process.env.DB_PASSWORD || 'example',
DATABASE: process.env.DB_DATABASE || `ms-${process.env.MS_NAME || msNameDefault}`,
IS_REJECT_UNAUTHORIZED: Boolean(Number(process.env.DB_REJECT_UNAUTHORIZED ?? 0)),
IS_FROM_CONFIG_MS: Boolean(Number(process.env.DB_FROM_CONFIG_MS ?? 1)),
},
}
: {}),
...(withAWS
? {
AWS: {
ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID || '',
SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY || '',
REGION: process.env.AWS_REGION || '',
BUCKET_NAME: process.env.AWS_BUCKET_NAME || '',
BUCKET_ACL: process.env.AWS_BUCKET_ACL || '',
IS_FROM_CONFIG_MS: Boolean(Number(process.env.AWS_FROM_CONFIG_MS ?? 1)),
},
}
: {}),
...(withFirebase
? {
FIREBASE: {
CREDENTIAL: JSON.parse(process.env.FIREBASE_CREDENTIAL || '{}'),
IS_FROM_CONFIG_MS: Boolean(Number(process.env.FIREBASE_FROM_CONFIG_MS ?? 1)),
},
}
: {}),
});
}: ICustomEnv) => {
const environment = process.env.NODE_ENV || 'development';

return {
IS_BUILD: isBuild,
VERSION: version,
PACKAGE_NAME: packageName,
ENV: environment,
IS_PROD: environment === 'production',
IS_DEV: environment === 'development',
IS_TEST: environment === 'tests',
ENVIRONMENT: process.env.ENVIRONMENT || 'prod',
SRC_FOLDER: isBuild ? 'lib' : 'src',
MS_NAME: process.env.MS_NAME || msNameDefault,
MS_CONFIG_NAME: process.env.MS_CONFIG_NAME || 'configuration',
MS_CONNECTION: process.env.MS_CONNECTION,
IS_CONNECTION_SRV: Boolean(process.env.MS_CONNECTION_SRV ?? false),
MS_WORKERS: Number(process.env.MS_WORKERS || 5),
IS_ENABLE_REMOTE_MIDDLEWARE: Boolean(Number(process.env.MS_ENABLE_REMOTE_MIDDLEWARE ?? 1)),
IS_REMOTE_CONFIG_ENABLE: Boolean(Number(process.env.MS_REMOTE_CONFIG_ENABLE || 1)),
IS_ENABLE_GRAFANA_LOG: Boolean(Number(process.env.MS_ENABLE_GRAFANA_LOG || 0)),
MS_GRAFANA_LOKI_CONFIG: JSON.parse(process.env.MS_GRAFANA_LOKI_CONFIG || 'null'),
IS_OPENTELEMETRY_ENABLE: Boolean(Number(process.env.MS_OPENTELEMETRY_ENABLE || 0)),
MS_OPENTELEMETRY_OTLP_URL: process.env.MS_OPENTELEMETRY_OTLP_URL,
IS_OPENTELEMETRY_OTLP_URL_SRV: Boolean(Number(process.env.MS_OPENTELEMETRY_OTLP_URL_SRV || 0)),
IS_OPENTELEMETRY_DEBUG: Boolean(Number(process.env.MS_OPENTELEMETRY_DEBUG || 0)),
MS_CONSOLE_LOG_LEVEL: process.env.MS_CONSOLE_LOG_LEVEL || 'info',
IS_ENABLE_EVENTS: Boolean(Number(process.env.ENABLE_EVENTS || 0)),
...(withDb
? {
DB: {
URL: process.env.DB_URL,
HOST: process.env.DB_HOST || '127.0.0.1',
PORT: Number(process.env.DB_PORT) || 5432,
USERNAME: process.env.DB_USERNAME || 'postgres',
PASSWORD: process.env.DB_PASSWORD || 'example',
DATABASE: process.env.DB_DATABASE || `ms-${process.env.MS_NAME || msNameDefault}`,
IS_REJECT_UNAUTHORIZED: Boolean(Number(process.env.DB_REJECT_UNAUTHORIZED ?? 0)),
IS_FROM_CONFIG_MS: Boolean(Number(process.env.DB_FROM_CONFIG_MS ?? 1)),
},
}
: {}),
...(withAWS
? {
AWS: {
ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID || '',
SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY || '',
REGION: process.env.AWS_REGION || '',
BUCKET_NAME: process.env.AWS_BUCKET_NAME || '',
BUCKET_ACL: process.env.AWS_BUCKET_ACL || '',
IS_FROM_CONFIG_MS: Boolean(Number(process.env.AWS_FROM_CONFIG_MS ?? 1)),
},
}
: {}),
...(withFirebase
? {
FIREBASE: {
CREDENTIAL: JSON.parse(process.env.FIREBASE_CREDENTIAL || '{}'),
IS_FROM_CONFIG_MS: Boolean(Number(process.env.FIREBASE_FROM_CONFIG_MS ?? 1)),
},
}
: {}),
};
};

export type ICommonConstants = ReturnType<typeof GetConstants>;

Expand Down

0 comments on commit 1c08c0c

Please sign in to comment.