Skip to content

Commit b6c781e

Browse files
authored
fix: should return default value when env is empty string (#759)
pick from #754
1 parent d095d3f commit b6c781e

File tree

6 files changed

+20
-56
lines changed

6 files changed

+20
-56
lines changed

app/common/EnvUtil.ts

-37
This file was deleted.

config/config.default.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import { join } from 'node:path';
44
import { EggAppConfig, PowerPartial, Context } from 'egg';
55
import OSSClient from 'oss-cnpm';
66
import S3Client from 's3-cnpmcore';
7+
import { env } from 'read-env-value';
78
import { patchAjv } from '../app/port/typebox';
89
import { ChangesStreamMode, NOT_IMPLEMENTED_PATH, SyncDeleteMode, SyncMode } from '../app/common/constants';
9-
import { env } from '../app/common/EnvUtil';
1010
import type { CnpmcoreConfig } from '../app/port/config';
1111
import { database } from './database';
1212

@@ -86,7 +86,7 @@ export default (appInfo: EggAppConfig): Config => {
8686
config.dataDir = env('CNPMCORE_DATA_DIR', 'string', join(appInfo.root, '.cnpmcore'));
8787
config.orm = {
8888
...database,
89-
database: database.name || 'cnpmcore',
89+
database: database.name ?? 'cnpmcore',
9090
charset: 'utf8mb4',
9191
logger: {
9292
// https://github.com/cyjake/leoric/blob/master/docs/zh/logging.md#logqueryerror

config/config.unittest.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default (appInfo: EggAppConfig) => {
1010
config.dataDir = join(appInfo.root, '.cnpmcore_unittest');
1111

1212
config.orm = {
13-
database: database.name || 'cnpmcore_unittest',
13+
database: database.name ?? 'cnpmcore_unittest',
1414
};
1515

1616
config.nfs = {

config/database.ts

+15-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { env } from '../app/common/EnvUtil';
1+
import { env } from 'read-env-value';
22

33
export enum DATABASE_TYPE {
44
MySQL = 'MySQL',
@@ -7,27 +7,27 @@ export enum DATABASE_TYPE {
77
}
88

99
const dbType = env('CNPMCORE_DATABASE_TYPE', 'string', DATABASE_TYPE.MySQL);
10-
let dbName = env('CNPMCORE_DATABASE_NAME', 'string', '');
11-
let dbHost = env('CNPMCORE_DATABASE_HOST', 'string', '');
12-
let dbPort = env('CNPMCORE_DATABASE_PORT', 'number', 0);
13-
let dbUser = env('CNPMCORE_DATABASE_USER', 'string', '');
14-
let dbPassword = env('CNPMCORE_DATABASE_PASSWORD', 'string', '');
10+
let dbName = env('CNPMCORE_DATABASE_NAME', 'string');
11+
let dbHost = env('CNPMCORE_DATABASE_HOST', 'string');
12+
let dbPort = env('CNPMCORE_DATABASE_PORT', 'number');
13+
let dbUser = env('CNPMCORE_DATABASE_USER', 'string');
14+
let dbPassword = env('CNPMCORE_DATABASE_PASSWORD', 'string');
1515
let dialect = 'mysql';
1616
let dbClient = 'mysql2';
1717
if (dbType === DATABASE_TYPE.MySQL) {
1818
// Compatible mysql configurations
19-
dbName = dbName || env('CNPMCORE_MYSQL_DATABASE', 'string', '') || env('MYSQL_DATABASE', 'string', '') || '';
20-
dbHost = dbHost || env('CNPMCORE_MYSQL_HOST', 'string', '') || env('MYSQL_HOST', 'string', '') || '127.0.0.1';
21-
dbPort = dbPort || env('CNPMCORE_MYSQL_PORT', 'number', 0) || env('MYSQL_PORT', 'number', 0) || 3306;
22-
dbUser = dbUser || env('CNPMCORE_MYSQL_USER', 'string', '') || env('MYSQL_USER', 'string', '') || 'root';
23-
dbPassword = dbPassword || env('CNPMCORE_MYSQL_PASSWORD', 'string', '') || env('MYSQL_PASSWORD', 'string', '');
19+
dbName = dbName ?? env('CNPMCORE_MYSQL_DATABASE', 'string') ?? env('MYSQL_DATABASE', 'string');
20+
dbHost = dbHost ?? env('CNPMCORE_MYSQL_HOST', 'string') ?? env('MYSQL_HOST', 'string') ?? '127.0.0.1';
21+
dbPort = dbPort ?? env('CNPMCORE_MYSQL_PORT', 'number') ?? env('MYSQL_PORT', 'number') ?? 3306;
22+
dbUser = dbUser ?? env('CNPMCORE_MYSQL_USER', 'string') ?? env('MYSQL_USER', 'string') ?? 'root';
23+
dbPassword = dbPassword ?? env('CNPMCORE_MYSQL_PASSWORD', 'string') ?? env('MYSQL_PASSWORD', 'string');
2424
} else if (dbType === DATABASE_TYPE.PostgreSQL) {
2525
dbClient = 'pg';
2626
dialect = 'postgres';
27-
dbHost = dbHost || env('CNPMCORE_POSTGRES_HOST', 'string', '') || env('POSTGRES_HOST', 'string', '') || '127.0.0.1';
28-
dbPort = dbPort || env('CNPMCORE_POSTGRES_PORT', 'number', 0) || env('POSTGRES_PORT', 'number', 0) || 5432;
29-
dbUser = dbUser || env('CNPMCORE_POSTGRES_USER', 'string', '') || env('POSTGRES_USER', 'string', '') || 'postgres';
30-
dbPassword = dbPassword || env('CNPMCORE_POSTGRES_PASSWORD', 'string', '') || env('POSTGRES_PASSWORD', 'string', '') || 'postgres';
27+
dbHost = dbHost ?? env('CNPMCORE_POSTGRES_HOST', 'string') ?? env('POSTGRES_HOST', 'string') ?? '127.0.0.1';
28+
dbPort = dbPort ?? env('CNPMCORE_POSTGRES_PORT', 'number') ?? env('POSTGRES_PORT', 'number') ?? 5432;
29+
dbUser = dbUser ?? env('CNPMCORE_POSTGRES_USER', 'string') ?? env('POSTGRES_USER', 'string') ?? 'postgres';
30+
dbPassword = dbPassword ?? env('CNPMCORE_POSTGRES_PASSWORD', 'string') ?? env('POSTGRES_PASSWORD', 'string') ?? 'postgres';
3131
} else if (dbType === DATABASE_TYPE.SQLite) {
3232
// TODO: Implement SQLite
3333
dbClient = 'sqlite';

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
"oss-cnpm": "^5.0.1",
123123
"p-map": "^4.0.0",
124124
"pg": "^8.13.1",
125+
"read-env-value": "^1.0.0",
125126
"s3-cnpmcore": "^1.1.2",
126127
"semver": "^7.3.5",
127128
"ssri": "^8.0.1",

test/TestUtil.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export class TestUtil {
4949
static getDatabaseConfig() {
5050
return {
5151
...database,
52-
database: database.name || 'cnpmcore_unittest',
52+
database: database.name ?? 'cnpmcore_unittest',
5353
multipleStatements: true,
5454
};
5555
}

0 commit comments

Comments
 (0)