Skip to content

Commit

Permalink
chore: remove compiler warnings from create-config (#6459)
Browse files Browse the repository at this point in the history
## About the changes
Some changes to fix compiler errors in create-config
  • Loading branch information
gastonfournier committed Mar 7, 2024
1 parent ec6c439 commit 2cd80d3
Showing 1 changed file with 40 additions and 37 deletions.
77 changes: 40 additions & 37 deletions src/lib/create-config.ts
Expand Up @@ -53,6 +53,8 @@ import { validateOrigins } from './util/validateOrigin';

const safeToUpper = (s?: string) => (s ? s.toUpperCase() : s);

type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;

export function authTypeFromString(
s?: string,
defaultType: IAuthType = IAuthType.OPEN_SOURCE,
Expand Down Expand Up @@ -179,35 +181,39 @@ const dateHandlingCallback = (connection, callback) => {
});
};

const defaultDbOptions: IDBOption = {
user: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
host: process.env.DATABASE_HOST,
port: parseEnvVarNumber(process.env.DATABASE_PORT, 5432),
database: process.env.DATABASE_NAME || 'unleash',
ssl:
process.env.DATABASE_SSL != null
? JSON.parse(process.env.DATABASE_SSL)
: { rejectUnauthorized: false },
driver: 'postgres',
version: process.env.DATABASE_VERSION,
acquireConnectionTimeout: secondsToMilliseconds(30),
pool: {
min: parseEnvVarNumber(process.env.DATABASE_POOL_MIN, 0),
max: parseEnvVarNumber(process.env.DATABASE_POOL_MAX, 4),
idleTimeoutMillis: parseEnvVarNumber(
process.env.DATABASE_POOL_IDLE_TIMEOUT_MS,
secondsToMilliseconds(30),
),
...(parseEnvVarBoolean(process.env.ALLOW_NON_STANDARD_DB_DATES, false)
? { afterCreate: dateHandlingCallback }
: {}),
propagateCreateError: false,
},
schema: process.env.DATABASE_SCHEMA || 'public',
disableMigration: false,
applicationName: process.env.DATABASE_APPLICATION_NAME || 'unleash',
};
const defaultDbOptions: WithOptional<IDBOption, 'user' | 'password' | 'host'> =
{
user: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
host: process.env.DATABASE_HOST,
port: parseEnvVarNumber(process.env.DATABASE_PORT, 5432),
database: process.env.DATABASE_NAME || 'unleash',
ssl:
process.env.DATABASE_SSL != null
? JSON.parse(process.env.DATABASE_SSL)
: { rejectUnauthorized: false },
driver: 'postgres',
version: process.env.DATABASE_VERSION,
acquireConnectionTimeout: secondsToMilliseconds(30),
pool: {
min: parseEnvVarNumber(process.env.DATABASE_POOL_MIN, 0),
max: parseEnvVarNumber(process.env.DATABASE_POOL_MAX, 4),
idleTimeoutMillis: parseEnvVarNumber(
process.env.DATABASE_POOL_IDLE_TIMEOUT_MS,
secondsToMilliseconds(30),
),
...(parseEnvVarBoolean(
process.env.ALLOW_NON_STANDARD_DB_DATES,
false,
)
? { afterCreate: dateHandlingCallback }
: {}),
propagateCreateError: false,
},
schema: process.env.DATABASE_SCHEMA || 'public',
disableMigration: false,
applicationName: process.env.DATABASE_APPLICATION_NAME || 'unleash',
};

const defaultSessionOption: ISessionOption = {
ttlHours: parseEnvVarNumber(process.env.SESSION_TTL_HOURS, 48),
Expand Down Expand Up @@ -271,7 +277,7 @@ const defaultAuthentication: IAuthOption = {
initApiTokens: [],
};

const defaultImport: IImportOption = {
const defaultImport: WithOptional<IImportOption, 'file'> = {
file: process.env.IMPORT_FILE,
dropBeforeImport: parseEnvVarBoolean(
process.env.IMPORT_DROP_BEFORE_IMPORT,
Expand All @@ -291,7 +297,6 @@ const defaultEmail: IEmailOption = {

const dbPort = (dbConfig: Partial<IDBOption>): Partial<IDBOption> => {
if (typeof dbConfig.port === 'string') {
// eslint-disable-next-line no-param-reassign
dbConfig.port = Number.parseInt(dbConfig.port, 10);
}
return dbConfig;
Expand All @@ -300,7 +305,6 @@ const dbPort = (dbConfig: Partial<IDBOption>): Partial<IDBOption> => {
const removeUndefinedKeys = (o: object): object =>
Object.keys(o).reduce((a, key) => {
if (o[key] !== undefined) {
// eslint-disable-next-line no-param-reassign
a[key] = o[key];
return a;
}
Expand All @@ -316,7 +320,6 @@ const formatServerOptions = (
};
}

/* eslint-disable-next-line */
return {
...serverOptions,
baseUriPath: formatBaseUri(
Expand Down Expand Up @@ -467,7 +470,7 @@ export function createConfig(options: IUnleashOptions): IUnleashConfig {
]);

const logLevel =
options.logLevel || LogLevel[process.env.LOG_LEVEL] || LogLevel.error;
options.logLevel || LogLevel[process.env.LOG_LEVEL ?? LogLevel.error];
const getLogger = options.getLogger || getDefaultLogProvider(logLevel);
validateLogProvider(getLogger);

Expand All @@ -488,9 +491,9 @@ export function createConfig(options: IUnleashOptions): IUnleashConfig {

const authentication: IAuthOption = mergeAll([
defaultAuthentication,
options.authentication
(options.authentication
? removeUndefinedKeys(options.authentication)
: options.authentication,
: options.authentication) || {},
{ initApiTokens: initApiTokens },
]);

Expand All @@ -512,7 +515,7 @@ export function createConfig(options: IUnleashOptions): IUnleashConfig {
if (server.pipe) {
listen = { path: server.pipe };
} else {
listen = { host: server.host || undefined, port: server.port };
listen = { host: server.host || undefined, port: server.port ?? 4242 };
}

const frontendApi = options.frontendApi || {
Expand Down

0 comments on commit 2cd80d3

Please sign in to comment.