-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadd-env-defaults.mjs
More file actions
36 lines (31 loc) · 908 Bytes
/
add-env-defaults.mjs
File metadata and controls
36 lines (31 loc) · 908 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os from 'node:os';
import process from 'node:process';
import OPTIONS from './internal/options.mjs';
const tryGetUsername = () => {
try {
return os.userInfo().username;
} catch (err) {
if (err.code !== 'ERR_SYSTEM_ERROR') {
throw err;
}
}
return null;
};
// src/interfaces/libpq/fe-connect.c:5663: conninfo_add_defaults
const addEnvDefaults = result => {
for (const [name, {envName, fallbackDefault}] of OPTIONS) {
if (result[name] !== null) {
continue;
}
if (envName !== null && envName in process.env) {
result[name] = process.env[envName];
} else if (name === 'sslmode' && 'PGREQUIRESSL' in process.env && process.env.PGREQUIRESSL.startsWith('1')) {
result.sslmode = 'require';
} else if (fallbackDefault !== null) {
result[name] = fallbackDefault;
} else if (name === 'user') {
result.user = tryGetUsername();
}
}
};
export default addEnvDefaults;