@lenne.tech/nest-server 10.7.1 → 10.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -109,6 +109,46 @@ Project use following scripts (via `package.json`):
109
109
  - `npm run link:nest-server` (for `yalc add @lenne.tech/nest-server && yalc link @lenne.tech/nest-server && npm install`)
110
110
  - `npm run unlink:nest-server` (for `yalc remove @lenne.tech/nest-server && npm install`)
111
111
 
112
+ ## Configuration
113
+
114
+ The configuration of the server is done via the `src/config.env.ts` file. This file is a TypeScript file that exports
115
+ an object with the configuration values. It is automatically integrated into the `ConfigService`
116
+ (see src/core/common/services/config.service.ts).
117
+
118
+ ### Environment variables
119
+
120
+ To protect sensitive data and to avoid committing them to the repository the `.env` file can be used.
121
+ An example `.env` file is provided in the `.env.example` file.
122
+
123
+ There are multiple ways to manipulate or extend the configuration via environment variables:
124
+ 1. Via "normal" integration of the environment variables into the `src/config.env.ts`
125
+ 2. Via JSON in the `NEST_SERVER_CONFIG` environment variable
126
+ 3. Via single environment variables with the prefix `NSC__` (Nest Server Config)
127
+
128
+ #### Normal environment variables
129
+ Using `dotenv` (see https://www.dotenv.org/) environment variables can directly integrated into the
130
+ `src/config.env.ts` via `process.env`. E.g.:
131
+ ```typescript
132
+ export const config = {
133
+ development: {
134
+ port: process.env.PORT || 3000,
135
+ },
136
+ };
137
+ ```
138
+
139
+ #### JSON
140
+ The `NEST_SERVER_CONFIG` is the environment variable for the server configuration.
141
+ The value of `NEST_SERVER_CONFIG` must be a (multiline) JSON string that will be parsed by the server
142
+ (see config.env.ts). The keys will override the other configuration values via deep merge
143
+ (see https://lodash.com/docs/4.17.15#merge, without array merging).
144
+
145
+ #### Single config variables
146
+ The prefix `NSC__` (**N**est **S**erver **C**onfig) can be used to set single configuration values via environment
147
+ variables. The key is the name of the configuration value in uppercase and with double underscores (`__`) instead of
148
+ dots. Single underscores are used to separate compound terms like `DEFAULT_SENDER` for `defaultSender`.
149
+ For example, the configuration value `email.defaultSender.name` can be set via the environment variable
150
+ `NSC__EMAIL_DEFAULT_SENDER_NAME`.
151
+
112
152
  ## Documentation
113
153
  The API and developer documentation can automatically be generated.
114
154
 
@@ -1,3 +1,2 @@
1
- import { IServerOptions } from './core/common/interfaces/server-options.interface';
2
- declare const envConfig: IServerOptions;
3
- export default envConfig;
1
+ declare const _default: any;
2
+ export default _default;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const schedule_1 = require("@nestjs/schedule");
4
+ const dotenv = require("dotenv");
4
5
  const path_1 = require("path");
5
6
  const config_helper_1 = require("./core/common/helpers/config.helper");
7
+ dotenv.config();
6
8
  const config = {
7
9
  development: {
8
10
  automaticObjectIdFiltering: true,
@@ -289,35 +291,5 @@ const config = {
289
291
  },
290
292
  },
291
293
  };
292
- const env = process.env['NODE' + '_ENV'] || 'local';
293
- const envConfig = config[env] || config.local;
294
- console.info(`Configured for: ${envConfig.env}${env !== envConfig.env ? ` (requested: ${env})` : ''}`);
295
- if (envConfig.loadLocalConfig) {
296
- let localConfig;
297
- if (typeof envConfig.loadLocalConfig === 'string') {
298
- Promise.resolve(`${envConfig.loadLocalConfig}`).then(s => require(s)).then((loadedConfig) => {
299
- localConfig = loadedConfig.default || loadedConfig;
300
- (0, config_helper_1.merge)(envConfig, localConfig);
301
- })
302
- .catch(() => {
303
- console.info(`Configuration ${envConfig.loadLocalConfig} not found!`);
304
- });
305
- }
306
- else {
307
- Promise.resolve(`${(0, path_1.join)(__dirname, 'config.json')}`).then(s => require(s)).then((loadedConfig) => {
308
- localConfig = loadedConfig.default || loadedConfig;
309
- (0, config_helper_1.merge)(envConfig, localConfig);
310
- })
311
- .catch(() => {
312
- Promise.resolve(`${(0, path_1.join)(__dirname, '..', 'config.json')}`).then(s => require(s)).then((loadedConfig) => {
313
- localConfig = loadedConfig.default || loadedConfig;
314
- (0, config_helper_1.merge)(envConfig, localConfig);
315
- })
316
- .catch(() => {
317
- console.info('No local config.json found!');
318
- });
319
- });
320
- }
321
- }
322
- exports.default = envConfig;
294
+ exports.default = (0, config_helper_1.getEnvironmentConfig)({ config });
323
295
  //# sourceMappingURL=config.env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,12 @@ export default class Config {
2
2
  static merge(obj: Record<string, any>, ...sources: any[]): any;
3
3
  }
4
4
  export declare function merge(obj: Record<string, any>, ...sources: any[]): any;
5
+ export declare function getEnvironmentConfig(options: {
6
+ config?: Record<string, any>;
7
+ defaultEnv?: string;
8
+ envPath?: string;
9
+ }): any;
10
+ export declare function getEnvironmentObject(options?: {
11
+ prefix?: string;
12
+ processEnv?: Record<string, boolean | number | string>;
13
+ }): {};
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.merge = merge;
4
+ exports.getEnvironmentConfig = getEnvironmentConfig;
5
+ exports.getEnvironmentObject = getEnvironmentObject;
6
+ const dotenv = require("dotenv");
7
+ const process = require("node:process");
8
+ const path_1 = require("path");
4
9
  const _ = require("lodash");
5
10
  class Config {
6
11
  static merge(obj, ...sources) {
@@ -15,4 +20,104 @@ function merge(obj, ...sources) {
15
20
  }
16
21
  });
17
22
  }
23
+ function getEnvironmentConfig(options) {
24
+ const { config, defaultEnv, envPath } = {
25
+ config: {},
26
+ defaultEnv: 'local',
27
+ ...options,
28
+ };
29
+ if (envPath) {
30
+ dotenv.config({ path: envPath });
31
+ }
32
+ else {
33
+ dotenv.config();
34
+ }
35
+ const env = process.env['NODE' + '_ENV'] || defaultEnv;
36
+ const envConfig = config[env] || config.local || {};
37
+ if (envConfig.loadLocalConfig) {
38
+ let localConfig;
39
+ if (typeof envConfig.loadLocalConfig === 'string') {
40
+ Promise.resolve(`${envConfig.loadLocalConfig}`).then(s => require(s)).then((loadedConfig) => {
41
+ localConfig = loadedConfig.default || loadedConfig;
42
+ merge(envConfig, localConfig);
43
+ })
44
+ .catch(() => {
45
+ console.info(`Configuration ${envConfig.loadLocalConfig} not found!`);
46
+ });
47
+ }
48
+ else {
49
+ Promise.resolve(`${(0, path_1.join)(__dirname, 'config.json')}`).then(s => require(s)).then((loadedConfig) => {
50
+ localConfig = loadedConfig.default || loadedConfig;
51
+ merge(envConfig, localConfig);
52
+ })
53
+ .catch(() => {
54
+ Promise.resolve(`${(0, path_1.join)(__dirname, '..', 'config.json')}`).then(s => require(s)).then((loadedConfig) => {
55
+ localConfig = loadedConfig.default || loadedConfig;
56
+ merge(envConfig, localConfig);
57
+ })
58
+ .catch(() => {
59
+ console.info('No local config.json found!');
60
+ });
61
+ });
62
+ }
63
+ }
64
+ if (process.env['NEST_SERVER_CONFIG']) {
65
+ try {
66
+ const dotEnvConfig = JSON.parse(process.env['NEST_SERVER_CONFIG']);
67
+ if (dotEnvConfig && Object.keys(dotEnvConfig).length > 0) {
68
+ merge(envConfig, dotEnvConfig);
69
+ console.info('NEST_SERVER_CONFIG used from .env');
70
+ }
71
+ }
72
+ catch (e) {
73
+ console.error('Error parsing NEST_SERVER_CONFIG from .env: ', e);
74
+ console.error('Maybe the JSON is invalid? Please check the value of NEST_SERVER_CONFIG in .env file (e.g. via https://jsonlint.com/)');
75
+ }
76
+ }
77
+ const environmentObject = getEnvironmentObject();
78
+ const environmentObjectKeyCount = Object.keys(environmentObject).length;
79
+ if (environmentObjectKeyCount > 0) {
80
+ merge(envConfig, environmentObject);
81
+ console.info(`Environment object from the environment integrated into the configuration with ${environmentObjectKeyCount} keys`);
82
+ }
83
+ console.info(`Configured for: ${envConfig.env}${env !== envConfig.env ? ` (requested: ${env})` : ''}`);
84
+ return envConfig;
85
+ }
86
+ function getEnvironmentObject(options) {
87
+ const config = {
88
+ prefix: 'NSC__',
89
+ processEnv: process.env,
90
+ ...options,
91
+ };
92
+ const output = {};
93
+ Object.entries(config.processEnv)
94
+ .filter(([key]) => key.startsWith(config.prefix))
95
+ .forEach(([key, value]) => {
96
+ const adjustedKey = key.slice(config.prefix?.length || 0);
97
+ const path = adjustedKey.split('__').map(part => part
98
+ .split('_')
99
+ .map((s, i) => (i === 0 ? s.toLowerCase() : s[0].toUpperCase() + s.slice(1).toLowerCase()))
100
+ .join(''));
101
+ let current = output;
102
+ for (let i = 0; i < path.length; i++) {
103
+ const segment = path[i];
104
+ if (i === path.length - 1) {
105
+ if (value === 'true') {
106
+ value = true;
107
+ }
108
+ else if (value === 'false') {
109
+ value = false;
110
+ }
111
+ else if (!isNaN(Number(value))) {
112
+ value = Number(value);
113
+ }
114
+ current[segment] = value;
115
+ }
116
+ else {
117
+ current = current[segment] = current[segment] || {};
118
+ }
119
+ }
120
+ });
121
+ return output;
122
+ }
18
123
  //# sourceMappingURL=config.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/config.helper.ts"],"names":[],"mappings":";;AAyCA,sBAMC;AA/CD,4BAA6B;AAM7B,MAAqB,MAAM;IAelB,MAAM,CAAC,KAAK,CAAC,GAAwB,EAAE,GAAG,OAAc;QAC7D,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AAlBD,yBAkBC;AAiBD,SAAgB,KAAK,CAAC,GAAwB,EAAE,GAAG,OAAc;IAC/D,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,QAAa,EAAE,QAAa,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"config.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/config.helper.ts"],"names":[],"mappings":"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"}