configuru 0.6.2 → 1.0.0
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/.eslintrc.js +9 -1
- package/.github/ISSUE_TEMPLATE/bug_report.yaml +47 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yaml +41 -0
- package/.github/pull_request_template.md +3 -23
- package/.github/workflows/lint.yml +3 -3
- package/.github/workflows/npm-publish.yml +1 -1
- package/.github/workflows/test.yml +1 -1
- package/README.md +2 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/helpers.js.map +1 -1
- package/dist/lib/loader.js +2 -2
- package/dist/lib/loader.js.map +1 -1
- package/dist/lib/polishers.d.ts +4 -4
- package/dist/lib/polishers.js +2 -2
- package/dist/lib/polishers.js.map +1 -1
- package/dist/lib/storage.js +2 -2
- package/dist/lib/storage.js.map +1 -1
- package/dist/test/storage.test.js +1 -0
- package/dist/test/storage.test.js.map +1 -1
- package/logo.png +0 -0
- package/package.json +10 -12
- package/src/index.ts +1 -1
- package/src/lib/loader.ts +2 -2
- package/src/lib/polishers.ts +1 -1
- package/src/lib/storage.ts +2 -2
- package/src/test/storage.test.ts +1 -0
- package/wiki/advanced-usage.md +10 -10
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -18
package/.eslintrc.js
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: 🐛 Bug Report
|
|
2
|
+
description: File a bug report.
|
|
3
|
+
title: "🐛 "
|
|
4
|
+
labels: ["bug"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
## 🐛 Bug
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: bug_description
|
|
12
|
+
attributes:
|
|
13
|
+
label: What happened?
|
|
14
|
+
description: Describe the bug what you encountered.
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
- type: textarea
|
|
18
|
+
id: reproduction
|
|
19
|
+
attributes:
|
|
20
|
+
label: Reproduction steps
|
|
21
|
+
description: Please provide the steps to reproduce the bug.
|
|
22
|
+
value: |
|
|
23
|
+
-
|
|
24
|
+
-
|
|
25
|
+
-
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
- type: markdown
|
|
29
|
+
attributes:
|
|
30
|
+
value: |
|
|
31
|
+
## 💡 Solution
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: solution_description
|
|
34
|
+
attributes:
|
|
35
|
+
label: What would you like to happen?
|
|
36
|
+
description: Describe the solution you'd like.
|
|
37
|
+
validations:
|
|
38
|
+
required: true
|
|
39
|
+
- type: markdown
|
|
40
|
+
attributes:
|
|
41
|
+
value: |
|
|
42
|
+
## 🔧 Environment
|
|
43
|
+
- type: textarea
|
|
44
|
+
id: context
|
|
45
|
+
attributes:
|
|
46
|
+
label: Additional context
|
|
47
|
+
description: Please provide any relevant information about your environment.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: ✨ Feature Request
|
|
2
|
+
description: Request a new feature.
|
|
3
|
+
title: "✨ "
|
|
4
|
+
labels: ["enhancement"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
## ⚠️ Problem
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: related_problem
|
|
12
|
+
attributes:
|
|
13
|
+
label: Is your feature request related to a problem?
|
|
14
|
+
description: Please describe the problem you are facing.
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
- type: markdown
|
|
18
|
+
attributes:
|
|
19
|
+
value: |
|
|
20
|
+
## 💡 Solution
|
|
21
|
+
- type: textarea
|
|
22
|
+
id: solution_description
|
|
23
|
+
attributes:
|
|
24
|
+
label: What feature would you like to see?
|
|
25
|
+
description: Describe the solution.
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
- type: textarea
|
|
29
|
+
id: alternative_solution
|
|
30
|
+
attributes:
|
|
31
|
+
label: What alternatives have you considered?
|
|
32
|
+
description: Describe any alternative features you've considered.
|
|
33
|
+
- type: markdown
|
|
34
|
+
attributes:
|
|
35
|
+
value: |
|
|
36
|
+
## 🔧 Environment
|
|
37
|
+
- type: textarea
|
|
38
|
+
id: context
|
|
39
|
+
attributes:
|
|
40
|
+
label: Additional context
|
|
41
|
+
description: "Please provide any relevant information about your environment."
|
|
@@ -1,25 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
### PR addresses:
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
-
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
> Leave one line, update issue reference
|
|
8
|
-
|
|
9
|
-
Fixes #?
|
|
10
|
-
Related #?
|
|
11
|
-
|
|
12
|
-
## Types of changes
|
|
13
|
-
|
|
14
|
-
> Tick all that applies or specify details
|
|
15
|
-
|
|
16
|
-
- [ ] 🐛 Bugfix
|
|
17
|
-
- [ ] ✨ New feature
|
|
18
|
-
- [ ] 💥 Breaking change
|
|
19
|
-
- [ ] 📝 Documentation
|
|
20
|
-
- [ ] ♻️ Refactor
|
|
21
|
-
- [ ] ✅ Tests
|
|
22
|
-
|
|
23
|
-
## Discussion
|
|
24
|
-
|
|
25
|
-
> Need help or want to discuss a proposal that is not related to inline code comment?
|
|
5
|
+
Fixes #
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
lint:
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
|
-
node-version: [
|
|
15
|
+
node-version: [18, 20]
|
|
16
16
|
runs-on: ubuntu-latest
|
|
17
17
|
steps:
|
|
18
18
|
- name: Check out code
|
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
run: npm i --ignore-scripts
|
|
28
28
|
|
|
29
29
|
- name: Run tests
|
|
30
|
-
run: npm run
|
|
30
|
+
run: npm run lint:check
|
|
31
31
|
|
|
32
32
|
- name: Run tests
|
|
33
|
-
run: npm run
|
|
33
|
+
run: npm run prettier:check
|
package/README.md
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
|
|
5
|
-
<h1>Configuru
|
|
6
|
-
|
|
7
|
-
[](https://travis-ci.com/AckeeCZ/configuru)
|
|
8
|
-
[](https://www.npmjs.com/package/configuru)
|
|
9
|
-
[](https://codecov.io/gh/AckeeCZ/configuru)
|
|
10
|
-
[](https://snyk.io/test/github/AckeeCZ/configuru?targetFile=package.json)
|
|
11
|
-
[](https://david-dm.org/AckeeCZ/configuru)
|
|
12
|
-
[](https://david-dm.org/AckeeCZ/configuru?type=dev)
|
|
5
|
+
<h1>Configuru</h1>
|
|
13
6
|
|
|
14
7
|
Manage the configuration of your Nodejs application with multiple environments and custom preferences, utilizing Configuru in CI and development as well!
|
|
15
8
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { createLoader } from './lib/loader';
|
|
2
|
-
export { values,
|
|
2
|
+
export { values, maskedValues } from './lib/polishers';
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.maskedValues = exports.values = exports.createLoader = void 0;
|
|
4
4
|
var loader_1 = require("./lib/loader");
|
|
5
5
|
Object.defineProperty(exports, "createLoader", { enumerable: true, get: function () { return loader_1.createLoader; } });
|
|
6
6
|
var polishers_1 = require("./lib/polishers");
|
|
7
7
|
Object.defineProperty(exports, "values", { enumerable: true, get: function () { return polishers_1.values; } });
|
|
8
|
-
Object.defineProperty(exports, "
|
|
8
|
+
Object.defineProperty(exports, "maskedValues", { enumerable: true, get: function () { return polishers_1.maskedValues; } });
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAAlC,sGAAA,YAAY,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAAlC,sGAAA,YAAY,OAAA;AACrB,6CAAsD;AAA7C,mGAAA,MAAM,OAAA;AAAE,yGAAA,YAAY,OAAA"}
|
package/dist/lib/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/lib/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAA0C;AAEnC,IAAM,SAAS,GAAG,UAAC,GAAQ,IAAK,OAAA,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAjC,CAAiC,CAAA;AAA3D,QAAA,SAAS,aAAkD;AAEjE,IAAM,SAAS,GAAG,UAAC,CAAM;IAC9B,OAAA,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAA/C,CAA+C,CAAA;AADpC,QAAA,SAAS,aAC2B;AAC1C,IAAM,QAAQ,GAAG,UAAI,CAAI,IAAK,OAAA,CAAC,EAAD,CAAC,CAAA;AAAzB,QAAA,QAAQ,YAAiB;AAE/B,IAAM,QAAQ,GAAG,UAAC,CAAM;IAC7B,OAAA,OAAO,CAAC,KAAK,QAAQ;QACrB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB;AADvD,CACuD,CAAA;AAF5C,QAAA,QAAQ,YAEoC;AAE5C,QAAA,KAAK,GAAG;IACnB,KAAK,EAAE,UAAC,IAAY;QAClB,IAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7C,IAAI,MAAM,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/lib/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAA0C;AAEnC,IAAM,SAAS,GAAG,UAAC,GAAQ,IAAK,OAAA,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAjC,CAAiC,CAAA;AAA3D,QAAA,SAAS,aAAkD;AAEjE,IAAM,SAAS,GAAG,UAAC,CAAM;IAC9B,OAAA,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAA/C,CAA+C,CAAA;AADpC,QAAA,SAAS,aAC2B;AAC1C,IAAM,QAAQ,GAAG,UAAI,CAAI,IAAK,OAAA,CAAC,EAAD,CAAC,CAAA;AAAzB,QAAA,QAAQ,YAAiB;AAE/B,IAAM,QAAQ,GAAG,UAAC,CAAM;IAC7B,OAAA,OAAO,CAAC,KAAK,QAAQ;QACrB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB;AADvD,CACuD,CAAA;AAF5C,QAAA,QAAQ,YAEoC;AAE5C,QAAA,KAAK,GAAG;IACnB,KAAK,EAAE,UAAC,IAAY;QAClB,IAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,WAAW,CACnB,UAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,0BAChD,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAChB,CACH,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA"}
|
package/dist/lib/loader.js
CHANGED
|
@@ -22,15 +22,15 @@ var defaultOpts = {
|
|
|
22
22
|
var createAtomLoaderFactory = function (storage) {
|
|
23
23
|
var load = function (transform, hidden, nullable) {
|
|
24
24
|
return function (key) {
|
|
25
|
+
var value = storage[key];
|
|
25
26
|
var safeTransform = function (x) {
|
|
26
27
|
try {
|
|
27
28
|
return transform(x);
|
|
28
29
|
}
|
|
29
|
-
catch (
|
|
30
|
+
catch (_error) {
|
|
30
31
|
throw new Error("Failed to transform value >".concat(String(value), "< from key >").concat(key, "<"));
|
|
31
32
|
}
|
|
32
33
|
};
|
|
33
|
-
var value = storage[key];
|
|
34
34
|
var missing = value === undefined || value === null;
|
|
35
35
|
if (!nullable && missing) {
|
|
36
36
|
throw new Error("Missing required value ".concat(key));
|
package/dist/lib/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/lib/loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,qCAA+C;AAQ/C,IAAM,WAAW,GAAwB;IACvC,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;IACzC,OAAO,EAAE,SAAS;CACnB,CAAA;AAcM,IAAM,uBAAuB,GAAG,UAAC,OAAyB;IAC/D,IAAM,IAAI,GACR,UACE,SAAwB,EACxB,MAAe,EACf,QAAiB;QAEnB,OAAA,UAAC,GAAW;YACV,IAAM,aAAa,GAAG,UAAC,CAAM;gBAC3B,IAAI;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/lib/loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,qCAA+C;AAQ/C,IAAM,WAAW,GAAwB;IACvC,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;IACzC,OAAO,EAAE,SAAS;CACnB,CAAA;AAcM,IAAM,uBAAuB,GAAG,UAAC,OAAyB;IAC/D,IAAM,IAAI,GACR,UACE,SAAwB,EACxB,MAAe,EACf,QAAiB;QAEnB,OAAA,UAAC,GAAW;YACV,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;YAC1B,IAAM,aAAa,GAAG,UAAC,CAAM;gBAC3B,IAAI,CAAC;oBACH,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA;gBACrB,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CACb,qCAA8B,MAAM,CAAC,KAAK,CAAC,yBAAe,GAAG,MAAG,CACjE,CAAA;gBACH,CAAC;YACH,CAAC,CAAA;YACD,IAAM,OAAO,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAA;YACrD,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,iCAA0B,GAAG,CAAE,CAAC,CAAA;YAClD,CAAC;YACD,OAAO;gBACL,MAAM,QAAA;gBACN,QAAQ,UAAA;gBACR,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,aAAa,CAAC,KAAK,CAAS;gBACrD,gBAAgB,EAAE,IAAI;aACvB,CAAA;QACH,CAAC;IAtBD,CAsBC,CAAA;IACH,OAAO,UAAI,SAAwB;QACjC,OAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAW,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;YACrD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAW,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;gBAC5D,QAAQ,EAAE,IAAI,CAAU,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;aAC/C,CAAC;YACF,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAU,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;gBAC7D,MAAM,EAAE,IAAI,CAAU,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;aAC7C,CAAC;SACH,CAAC;IAPF,CAOE,CAAA;AACN,CAAC,CAAA;AAvCY,QAAA,uBAAuB,2BAuCnC;AAEM,IAAM,YAAY,GAAG,UAAC,IAAuC;IAAvC,qBAAA,EAAA,kBAAuC;IAClE,IAAI,yBAAQ,WAAW,GAAK,IAAI,CAAE,CAAA;IAClC,IAAM,aAAa,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,CAAA;IAC/C,IAAM,UAAU,GAAG,IAAA,+BAAuB,EAAC,aAAa,CAAC,CAAA;IACzD,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;QAC1B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,UAAU,CAAC,mBAAS,CAAC;QAC3B,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,EAAE,UAAI,EAAiB,IAAK,OAAA,UAAU,CAAC,EAAE,CAAC,EAAd,CAAc;KACjD,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,YAAY,gBAWxB"}
|
package/dist/lib/polishers.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { LoadedValue } from './loader';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type LoadedToValue<X> = X extends LoadedValue<any, any> ? X['value'] extends Record<any, any> ? Values<X['value']> : X['value'] : X;
|
|
3
|
+
type Values<C> = C extends (...args: any[]) => any ? C : C extends Record<any, any> ? {
|
|
4
4
|
[K in keyof C]: C[K] extends LoadedValue<any, any> ? LoadedToValue<C[K]> : Values<C[K]>;
|
|
5
5
|
} : C;
|
|
6
|
-
|
|
6
|
+
type AnonymousValues<C> = C extends (...args: any[]) => any ? C : C extends Record<any, any> ? {
|
|
7
7
|
[K in keyof C]: C[K] extends LoadedValue<any, any> ? string : AnonymousValues<C[K]>;
|
|
8
8
|
} : C;
|
|
9
9
|
export declare const values: <T extends Record<any, any>>(config: T) => Values<T>;
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const maskedValues: <T extends Record<any, any>>(config: T) => AnonymousValues<T>;
|
|
11
11
|
export {};
|
package/dist/lib/polishers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.maskedValues = exports.values = void 0;
|
|
4
4
|
var helpers_1 = require("./helpers");
|
|
5
5
|
var isLoadedValue = function (x) {
|
|
6
6
|
return Object.keys(x || {}).includes('__CONFIGURU_LEAF');
|
|
@@ -23,7 +23,7 @@ var mapConfig = function (fn) {
|
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
25
|
exports.values = mapConfig(function (x) { return x.value; });
|
|
26
|
-
exports.
|
|
26
|
+
exports.maskedValues = mapConfig(function (x) {
|
|
27
27
|
return x.hidden ? (0, helpers_1.anonymize)(x.rawValue) : x.value;
|
|
28
28
|
});
|
|
29
29
|
//# sourceMappingURL=polishers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polishers.js","sourceRoot":"","sources":["../../src/lib/polishers.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AA6B/C,IAAM,aAAa,GAAG,UAAC,CAAM;IAC3B,OAAA,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAAjD,CAAiD,CAAA;AAEnD,IAAM,SAAS,GACb,UAAC,EAAqC;IACtC,OAAA,UAAC,GAAQ;QACP,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"polishers.js","sourceRoot":"","sources":["../../src/lib/polishers.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AA6B/C,IAAM,aAAa,GAAG,UAAC,CAAM;IAC3B,OAAA,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAAjD,CAAiD,CAAA;AAEnD,IAAM,SAAS,GACb,UAAC,EAAqC;IACtC,OAAA,UAAC,GAAQ;QACP,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,IAAA,kBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,GAAQ,EAAE,GAAG;gBAC3C,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;gBAClC,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;AAdD,CAcC,CAAA;AAEU,QAAA,MAAM,GAAG,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAE9B,CAAA;AACD,QAAA,YAAY,GAAG,SAAS,CAAC,UAAA,CAAC;IACrC,OAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,mBAAS,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAA1C,CAA0C,CACsB,CAAA"}
|
package/dist/lib/storage.js
CHANGED
|
@@ -28,7 +28,7 @@ var fileExistsSync = function (path) {
|
|
|
28
28
|
try {
|
|
29
29
|
return (0, fs_1.statSync)(path).isFile();
|
|
30
30
|
}
|
|
31
|
-
catch (
|
|
31
|
+
catch (_error) {
|
|
32
32
|
return false;
|
|
33
33
|
}
|
|
34
34
|
};
|
|
@@ -59,7 +59,7 @@ var loadFile = function (filePath) {
|
|
|
59
59
|
try {
|
|
60
60
|
return helpers_1.JSONC.parse((0, fs_1.readFileSync)(resolvedPath, 'utf-8'));
|
|
61
61
|
}
|
|
62
|
-
catch (
|
|
62
|
+
catch (_error) {
|
|
63
63
|
throw new Error("Invalid config file in ".concat((0, path_1.join)((0, path_1.resolve)('.'), resolvedPath)));
|
|
64
64
|
}
|
|
65
65
|
};
|
package/dist/lib/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/lib/storage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA2C;AAC3C,6BAAmD;AACnD,qCAAiC;AAGjC,IAAM,cAAc,GAAG,UAAC,IAAY;IAClC,IAAI;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/lib/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../src/test/storage.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../src/test/storage.test.ts"],"names":[],"mappings":"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"}
|
package/logo.png
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "configuru",
|
|
3
3
|
"description": "Manage the configuration of your Nodejs application with multiple environments and custom preferences, utilizing Configuru in CI and development as well!",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"author": "Jaroslav Šmolík <grissius@gmail.com>",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Jaroslav Šmolík <grissius@gmail.com>"
|
|
8
8
|
],
|
|
9
9
|
"main": "./dist/index.js",
|
|
10
10
|
"engines": {
|
|
11
|
-
"node": ">=
|
|
11
|
+
"node": ">=18"
|
|
12
12
|
},
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
@@ -37,29 +37,27 @@
|
|
|
37
37
|
"test": "jest",
|
|
38
38
|
"test:coverage": "npm run test -- --collectCoverage",
|
|
39
39
|
"test:codecov": "codecov",
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
40
|
+
"lint:check": "eslint --ignore-path .gitignore '**/*.ts' -f codeframe",
|
|
41
|
+
"lint:fix": "npm run lint:check -- --fix",
|
|
42
|
+
"prettier:check": "prettier --ignore-path .gitignore --check '**/*.{ts,js,json,md}'",
|
|
43
|
+
"prettier:fix": "npm run prettier:check -- --write '**/*.{ts,js,json,md}'",
|
|
44
44
|
"prepare": "husky install",
|
|
45
|
-
"docs": "typedoc --options typedoc.json src/lib/*.ts"
|
|
46
|
-
"check": "npm-check -i app -i errors -i config -i index & exit 0"
|
|
45
|
+
"docs": "typedoc --options typedoc.json src/lib/*.ts"
|
|
47
46
|
},
|
|
48
47
|
"dependencies": {
|
|
49
48
|
"jsonc-parser": "^3.1.0"
|
|
50
49
|
},
|
|
51
50
|
"devDependencies": {
|
|
52
|
-
"@ackee/styleguide-backend-config": "^0.
|
|
51
|
+
"@ackee/styleguide-backend-config": "^0.5.0",
|
|
53
52
|
"@types/jest": "^28.1.4",
|
|
54
53
|
"@types/node": "^18.0.3",
|
|
55
54
|
"codecov": "^3.8.2",
|
|
56
55
|
"husky": "^8.0.1",
|
|
57
56
|
"jest": "^28.1.2",
|
|
58
57
|
"lint-staged": "^13.0.3",
|
|
59
|
-
"npm-check": "^5.9.2",
|
|
60
58
|
"prettier": "^2.7.1",
|
|
61
59
|
"ts-jest": "^28.0.5",
|
|
62
|
-
"typedoc": "^0.
|
|
63
|
-
"typescript": "^4.
|
|
60
|
+
"typedoc": "^0.25.4",
|
|
61
|
+
"typescript": "^5.4.5"
|
|
64
62
|
}
|
|
65
63
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { createLoader } from './lib/loader'
|
|
2
|
-
export { values,
|
|
2
|
+
export { values, maskedValues } from './lib/polishers'
|
package/src/lib/loader.ts
CHANGED
|
@@ -33,16 +33,16 @@ export const createAtomLoaderFactory = (storage: Record<any, any>) => {
|
|
|
33
33
|
nullable: boolean
|
|
34
34
|
) =>
|
|
35
35
|
(key: string): LoadedValue<T, N> => {
|
|
36
|
+
const value = storage[key]
|
|
36
37
|
const safeTransform = (x: any) => {
|
|
37
38
|
try {
|
|
38
39
|
return transform(x)
|
|
39
|
-
} catch (
|
|
40
|
+
} catch (_error) {
|
|
40
41
|
throw new Error(
|
|
41
42
|
`Failed to transform value >${String(value)}< from key >${key}<`
|
|
42
43
|
)
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
|
-
const value = storage[key]
|
|
46
46
|
const missing = value === undefined || value === null
|
|
47
47
|
if (!nullable && missing) {
|
|
48
48
|
throw new Error(`Missing required value ${key}`)
|
package/src/lib/polishers.ts
CHANGED
|
@@ -51,6 +51,6 @@ const mapConfig =
|
|
|
51
51
|
export const values = mapConfig(x => x.value) as <T extends Record<any, any>>(
|
|
52
52
|
config: T
|
|
53
53
|
) => Values<T>
|
|
54
|
-
export const
|
|
54
|
+
export const maskedValues = mapConfig(x =>
|
|
55
55
|
x.hidden ? anonymize(x.rawValue) : x.value
|
|
56
56
|
) as <T extends Record<any, any>>(config: T) => AnonymousValues<T>
|
package/src/lib/storage.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { ConfigLoaderOptions } from './loader'
|
|
|
6
6
|
const fileExistsSync = (path: string) => {
|
|
7
7
|
try {
|
|
8
8
|
return statSync(path).isFile()
|
|
9
|
-
} catch (
|
|
9
|
+
} catch (_error) {
|
|
10
10
|
return false
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -33,7 +33,7 @@ const loadFile = (filePath?: string) => {
|
|
|
33
33
|
}
|
|
34
34
|
try {
|
|
35
35
|
return JSONC.parse(readFileSync(resolvedPath, 'utf-8'))
|
|
36
|
-
} catch (
|
|
36
|
+
} catch (_error) {
|
|
37
37
|
throw new Error(
|
|
38
38
|
`Invalid config file in ${join(resolve('.'), resolvedPath)}`
|
|
39
39
|
)
|
package/src/test/storage.test.ts
CHANGED
package/wiki/advanced-usage.md
CHANGED
|
@@ -18,7 +18,7 @@ const { configurable, static } = values(configSchema)
|
|
|
18
18
|
`config.ts`
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
import { createLoader, values,
|
|
21
|
+
import { createLoader, values, maskedValues } from 'configuru'
|
|
22
22
|
const loader = createLoader()
|
|
23
23
|
|
|
24
24
|
// create `buildConfig` function, we will use two loaders
|
|
@@ -28,30 +28,30 @@ const configSchema = {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export default values(configSchema)
|
|
31
|
-
export const
|
|
31
|
+
export const maskedConfig = maskedValues(configSchema)
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
`foo.ts`
|
|
35
35
|
|
|
36
36
|
```typescript
|
|
37
|
-
import config, {
|
|
37
|
+
import config, { maskedValues } from './config'
|
|
38
38
|
|
|
39
39
|
// use in your app, never log
|
|
40
40
|
config.apiKey // szvor4VYgS79z3QSBtmN0dJeyXbg1Xip
|
|
41
41
|
|
|
42
42
|
// don't use, is truncated (or hidden for shorter vars) but okay-ish to log
|
|
43
|
-
|
|
43
|
+
maskedConfig.apiKey // [redacted]
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
### Options
|
|
47
47
|
|
|
48
48
|
```typescript
|
|
49
|
-
import { createLoader } from 'configuru'
|
|
49
|
+
import { createLoader } from 'configuru'
|
|
50
50
|
const loader = createLoader({
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
})
|
|
51
|
+
defaultConfigPath: 'default-config', // defaults to ".env"
|
|
52
|
+
userConfigPath: process.env.USER_CONFIG, // defaults to process.env.CFG_JSON_PATH
|
|
53
|
+
envMode: 'all', // defaults to "default"
|
|
54
|
+
})
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
1. `defaultConfigPath`: Where to look for your default config JSON file (provide null to skip)
|
|
@@ -140,7 +140,7 @@ const schema = {
|
|
|
140
140
|
})('HOSTS'),
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
console.log(
|
|
143
|
+
console.log(maskedValues(schema))
|
|
144
144
|
// [
|
|
145
145
|
// {
|
|
146
146
|
// "host": "host1",
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Create a report to help us improve
|
|
4
|
-
title: ''
|
|
5
|
-
labels: bug
|
|
6
|
-
assignees: ''
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
**Describe the bug**
|
|
10
|
-
|
|
11
|
-
> A clear and concise description of what the bug is.
|
|
12
|
-
|
|
13
|
-
**To Reproduce**
|
|
14
|
-
|
|
15
|
-
> Add code snippets, or minimal working example with repo
|
|
16
|
-
|
|
17
|
-
**Expected behavior**
|
|
18
|
-
|
|
19
|
-
> A clear and concise description of what you expected to happen.
|
|
20
|
-
|
|
21
|
-
**Additional context**
|
|
22
|
-
|
|
23
|
-
Configuru version: `x.y.z`
|
|
24
|
-
Relevant environemnt variables / configuration files:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
CFG_JSON_PATH=~/.env/my-project.jsonc
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
```jsonc
|
|
31
|
-
{
|
|
32
|
-
// HTTP server
|
|
33
|
-
"SERVER_PORT": 3000 // port the server will be listening on
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
> ⚠️ BEWARE OF SHARING CONFIDENT INFORMATION, BE SURE TO SUGGEST JUST A STRUCTURE OR SAFE VALUES
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Feature request
|
|
3
|
-
about: Suggest an idea for this project
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: ''
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
**Is your feature request related to a problem? Please describe.**
|
|
10
|
-
|
|
11
|
-
> A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
-
|
|
13
|
-
**Describe the solution you'd like**
|
|
14
|
-
|
|
15
|
-
> A clear and concise description of what you want to happen.
|
|
16
|
-
|
|
17
|
-
**Additional context**
|
|
18
|
-
Add any other context, alternatives, related issues etc.
|