Skip to content

Commit 5157972

Browse files
authored
Merge pull request #1 from codedeviate/2.3.1
2.3.1
2 parents 003dc1e + 698961d commit 5157972

3 files changed

Lines changed: 86 additions & 88 deletions

File tree

README.md

Lines changed: 78 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -243,19 +243,13 @@ After that priority is grouped by type and path.
243243

244244
*json* files have higher priority than *ini* files.
245245

246-
Files in a subdirectory with the same name as the base part of the entry file will have higher priority.
246+
First the module looks for a subdirectory called *config* at the same path where your *package.json* is located.
247247

248-
Files in a subdirectory with the name config will come next.
248+
If that is not found then it searches the parent directory for at directory called *config*.
249249

250-
Files in a sibling directory with the name config will come next.
250+
If that is not found then it searches for a subdirectory in the same location as the *package.json* with the same basename as the executed file.
251251

252-
After that configs in the same directory will be processed.
253-
254-
There is a fallback to a config file with the base name *default*. The priority here will be
255-
1. subdirectory with the same basename as the entry file
256-
2. subdirectory called config
257-
3. config file located in a sibling directory called config
258-
4. config file located in the same directory
252+
If that is not found then it searches in the same directory as your *package.json*
259253

260254

261255
### CONFIG_FILE and CONFIG_PATH
@@ -267,113 +261,112 @@ If the *CONFIG_FILE* is a relative path then the default path will be used. If t
267261

268262

269263
#### Examples ####
270-
So if we wish to load a development configuration from an entry file called server.js then the following order is processed
264+
So if we wish to load a development configuration from an entry file called server.js in a directory called serverapp then the following order is processed
271265
```bash
272266
node server.js
273267
```
274-
1. ./server/development.json
275-
2. ./config/development.json
276-
3. ../config/development.json
277-
4. ./development.json
278-
5. ./server/development.ini
279-
6. ./config/development.ini
280-
7. ../config/development.ini
281-
8. ./development.ini
282-
9. ./server/default.json
283-
10. ./config/default.json
284-
11. ../config/default.json
285-
12. ./default.json
286-
13. ./server/default.ini
287-
14. ./config/default.ini
288-
15. ../config/default.ini
289-
16. ./default.ini
268+
1. <path to apps>/serverapp/config/development.json',
269+
2. <path to apps>/config/development.json',
270+
3. <path to apps>/serverapp/server/development.json',
271+
4. <path to apps>/serverapp/development.json',
272+
5. <path to apps>/serverapp/config/development.ini',
273+
6. <path to apps>/config/development.ini',
274+
7. <path to apps>/serverapp/server/development.ini',
275+
8. <path to apps>/serverapp/development.ini',
276+
9. <path to apps>/serverapp/config/default.json',
277+
10. <path to apps>/config/default.json',
278+
11. <path to apps>/serverapp/server/default.json',
279+
12. <path to apps>/serverapp/default.json',
280+
13. <path to apps>/serverapp/config/default.ini',
281+
14. <path to apps>/config/default.ini',
282+
15. <path to apps>/serverapp/server/default.ini',
283+
16. <path to apps>/serverapp/default.ini'
290284

291285

292286
```bash
293287
CONFIG_FILE=test.json node server.js
294288
```
295-
1. ./test.json
296-
2. ./server/development.json
297-
3. ./config/development.json
298-
4. ../config/development.json
299-
5. ./development.json
300-
6. ./server/development.ini
301-
7. ./config/development.ini
302-
8. ../config/development.ini
303-
9. ./development.ini
304-
10. ./server/default.json
305-
11. ./config/default.json
306-
12. ../config/default.json
307-
13. ./default.json
308-
14. ./server/default.ini
309-
15. ./config/default.ini
310-
16. ../config/default.ini
311-
17. ./default.ini
289+
1. <path to apps>/serverapp/test.json
290+
2. <path to apps>/serverapp/config/development.json',
291+
3. <path to apps>/config/development.json',
292+
4. <path to apps>/serverapp/server/development.json',
293+
5. <path to apps>/serverapp/development.json',
294+
6. <path to apps>/serverapp/config/development.ini',
295+
7. <path to apps>/config/development.ini',
296+
8. <path to apps>/serverapp/server/development.ini',
297+
9. <path to apps>/serverapp/development.ini',
298+
10. <path to apps>/serverapp/config/default.json',
299+
11. <path to apps>/config/default.json',
300+
12. <path to apps>/serverapp/server/default.json',
301+
13. <path to apps>/serverapp/default.json',
302+
14. <path to apps>/serverapp/config/default.ini',
303+
15. <path to apps>/config/default.ini',
304+
16. <path to apps>/serverapp/server/default.ini',
305+
17. <path to apps>/serverapp/default.ini'
312306

313307

314308
```bash
315309
CONFIG_PATH=/server/app node server.js
316310
```
317-
1. /server/app/test.json
318-
2. /server/app/server/development.json
319-
3. /server/app/config/development.json
320-
4. /server/config/development.json
321-
5. /server/app/development.json
322-
6. /server/app/server/development.ini
323-
7. /server/app/config/development.ini
324-
8. /server/config/development.ini
325-
9. /server/app/development.ini
326-
10. /server/app/server/default.json
327-
11. /server/app/config/default.json
328-
12. /server/config/default.json
329-
13. /server/app/default.json
330-
14. /server/app/server/default.ini
331-
15. /server/app/config/default.ini
332-
16. /server/config/default.ini
333-
17. /server/app/default.ini
311+
1. /server/app/config/development.json
312+
2. /server/config/development.json
313+
3. /server/app/server/development.json
314+
4. /server/app/development.json
315+
5. /server/app/config/development.ini
316+
6. /server/config/development.ini
317+
7. /server/app/server/development.ini
318+
8. /server/app/development.ini
319+
9. /server/app/config/default.json
320+
10. /server/config/default.json
321+
11. /server/app/server/default.json
322+
12. /server/app/default.json
323+
13. /server/app/config/default.ini
324+
14. /server/config/default.ini
325+
15. /server/app/server/default.ini
326+
16. /server/app/default.ini
334327

335328

336329
```bash
337330
CONFIG_PATH=/server/app CONFIG_FILE=test.json node server.js
338331
```
339332
1. /server/app/test.json
340-
2. /server/app/server/development.json
341-
3. /server/app/config/development.json
342-
4. /server/config/development.json
333+
2. /server/app/config/development.json
334+
3. /server/config/development.json
335+
4. /server/app/server/development.json
343336
5. /server/app/development.json
344-
6. /server/app/server/development.ini
345-
7. /server/app/config/development.ini
346-
8. /server/config/development.ini
337+
6. /server/app/config/development.ini
338+
7. /server/config/development.ini
339+
8. /server/app/server/development.ini
347340
9. /server/app/development.ini
348-
10. /server/app/server/default.json
349-
11. /server/app/config/default.json
350-
12. /server/config/default.json
341+
10. /server/app/config/default.json
342+
11. /server/config/default.json
343+
12. /server/app/server/default.json
351344
13. /server/app/default.json
352-
14. /server/app/server/default.ini
353-
15. /server/app/config/default.ini
354-
16. /server/config/default.ini
345+
14. /server/app/config/default.ini
346+
15. /server/config/default.ini
347+
16. /server/app/server/default.ini
355348
17. /server/app/default.ini
356349

357350

358351
```bash
359352
CONFIG_PATH=/server/app CONFIG_FILE=/config/absolute/test.json node server.js
360353
```
361354
1. /config/absolute/test.json
362-
2. /server/app/server/development.json
363-
3. /server/app/config/development.json
364-
4. /server/config/development.json
355+
2. /server/app/config/development.json
356+
3. /server/config/development.json
357+
4. /server/app/server/development.json
365358
5. /server/app/development.json
366-
6. /server/app/server/development.ini
367-
7. /server/app/config/development.ini
368-
8. /server/config/development.ini
359+
6. /server/app/config/development.ini
360+
7. /server/config/development.ini
361+
8. /server/app/server/development.ini
369362
9. /server/app/development.ini
370-
10. /server/app/server/default.json
371-
11. /server/app/config/default.json
372-
12. /server/config/default.json
363+
10. /server/app/config/default.json
364+
11. /server/config/default.json
365+
12. /server/app/server/default.json
373366
13. /server/app/default.json
374-
14. /server/app/server/default.ini
375-
15. /server/app/config/default.ini
376-
16. /server/config/default.ini
367+
14. /server/app/config/default.ini
368+
15. /server/config/default.ini
369+
16. /server/app/server/default.ini
377370
17. /server/app/default.ini
378371

379372

changelog.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1+
v2.3.1
2+
* Updated README to reflect changes in the priority of config paths
3+
* Fixed a bug in fuseAll to correctly add all subkeys
4+
15
v2.3.0 - Released 2022-11-25
26
This is the first official release of this package so everything is new.

index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,12 +286,13 @@ class DynamicConfig {
286286
obj = this.config;
287287
}
288288
Object.keys(obj).forEach((key) => {
289+
let subKey = key;
289290
if (baseKey !== '') {
290-
key = `${baseKey}${this.configSplit || this.config['__configSplit'] || '.'}${key}`;
291+
subKey = `${baseKey}${this.configSplit || this.config['__configSplit'] || '.'}${key}`;
291292
}
292-
this.addFuse(key);
293+
this.addFuse(subKey);
293294
if (obj[key] === Object(obj[key])) {
294-
this.fuseAll(obj[key], key)
295+
this.fuseAll(obj[key], subKey)
295296
}
296297
});
297298
}

0 commit comments

Comments
 (0)