@autometa/config 0.1.27 → 1.0.0-rc.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/README.md +34 -2
- package/dist/builder-types.d.ts +27 -0
- package/dist/config.d.ts +12 -0
- package/dist/environment-selector.d.ts +10 -0
- package/dist/index.cjs +809 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +4 -117
- package/dist/index.js +760 -142
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +584 -0
- package/dist/types.d.ts +47 -0
- package/package.json +24 -22
- package/.eslintignore +0 -3
- package/.eslintrc.cjs +0 -4
- package/.turbo/turbo-coverage.log +0 -27
- package/.turbo/turbo-lint$colon$fix.log +0 -4
- package/.turbo/turbo-prettify.log +0 -5
- package/.turbo/turbo-test.log +0 -16
- package/CHANGELOG.md +0 -220
- package/dist/esm/index.js +0 -151
- package/dist/esm/index.js.map +0 -1
- package/dist/index.d.cts +0 -117
- package/tsup.config.ts +0 -14
package/package.json
CHANGED
|
@@ -1,51 +1,53 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autometa/config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-rc.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "dist/index.
|
|
7
|
-
"module": "dist/
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
9
12
|
"exports": {
|
|
10
|
-
"import": "./dist/
|
|
11
|
-
"require": "./dist/index.
|
|
12
|
-
"default": "./dist/
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"require": "./dist/index.cjs",
|
|
15
|
+
"default": "./dist/index.js",
|
|
13
16
|
"types": "./dist/index.d.ts"
|
|
14
17
|
},
|
|
15
18
|
"license": "MIT",
|
|
16
19
|
"devDependencies": {
|
|
17
20
|
"@types/node": "^18.11.18",
|
|
18
|
-
"@types/uuid": "^9.0.5",
|
|
19
21
|
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
|
20
22
|
"@typescript-eslint/parser": "^5.54.1",
|
|
21
|
-
"@vitest/coverage-istanbul": "^1.4.0",
|
|
22
|
-
"@vitest/coverage-v8": "^1.4.0",
|
|
23
23
|
"eslint": "^8.37.0",
|
|
24
24
|
"eslint-config-prettier": "^8.3.0",
|
|
25
|
-
"istanbul": "^0.4.5",
|
|
26
25
|
"rimraf": "^4.1.2",
|
|
27
26
|
"tsup": "^7.2.0",
|
|
28
27
|
"typescript": "^4.9.5",
|
|
29
28
|
"vitest": "1.4.0",
|
|
29
|
+
"eslint-config-custom": "0.6.0",
|
|
30
30
|
"tsconfig": "0.7.0",
|
|
31
|
-
"
|
|
31
|
+
"tsup-config": "0.1.0"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"@autometa/asserters": "^0.1.8",
|
|
37
|
-
"@autometa/app": "^0.4.2",
|
|
38
|
-
"@autometa/types": "^0.4.1",
|
|
39
|
-
"@autometa/errors": "^0.2.2"
|
|
34
|
+
"zod": "^3.25.76",
|
|
35
|
+
"@autometa/errors": "1.0.0-rc.0"
|
|
40
36
|
},
|
|
41
37
|
"scripts": {
|
|
38
|
+
"type-check": "tsc --noEmit -p tsconfig.dev.json",
|
|
39
|
+
"type-check:watch": "tsc --noEmit --watch -p tsconfig.dev.json",
|
|
40
|
+
"build": "tsup && pnpm run build:types",
|
|
41
|
+
"build:types": "rimraf tsconfig.types.tsbuildinfo && tsc --build tsconfig.types.json",
|
|
42
|
+
"build:watch": "tsup --watch",
|
|
43
|
+
"dev": "tsup --watch",
|
|
42
44
|
"test": "vitest run --passWithNoTests",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
+
"test:watch": "vitest --passWithNoTests",
|
|
46
|
+
"test:ui": "vitest --ui --passWithNoTests",
|
|
47
|
+
"coverage": "vitest run --coverage --passWithNoTests",
|
|
45
48
|
"lint": "eslint . --max-warnings 0",
|
|
46
49
|
"lint:fix": "eslint . --fix",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"build:watch": "tsup --watch"
|
|
50
|
+
"prettify": "prettier --config .prettierrc 'src/**/*.ts' --write",
|
|
51
|
+
"clean": "rimraf dist"
|
|
50
52
|
}
|
|
51
53
|
}
|
package/.eslintignore
DELETED
package/.eslintrc.cjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @autometa/config@0.1.1 coverage /Users/ben.aherne/Documents/GitHub/autometa/packages/config
|
|
3
|
-
> vitest run --coverage
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
RUN v0.29.8 /Users/ben.aherne/Documents/GitHub/autometa/packages/config
|
|
7
|
-
Coverage enabled with istanbul
|
|
8
|
-
|
|
9
|
-
✓ src/envrionment-reader.spec.ts (7 tests) 19ms
|
|
10
|
-
✓ src/config.schema.spec.ts (13 tests) 89ms
|
|
11
|
-
✓ src/define-config.spec.ts (7 tests) 3ms
|
|
12
|
-
|
|
13
|
-
Test Files 3 passed (3)
|
|
14
|
-
Tests 27 passed (27)
|
|
15
|
-
Start at 16:39:00
|
|
16
|
-
Duration 2.11s (transform 617ms, setup 0ms, collect 1.60s, tests 111ms)
|
|
17
|
-
|
|
18
|
-
% Coverage report from istanbul
|
|
19
|
-
-------------------|---------|----------|---------|---------|-------------------
|
|
20
|
-
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
|
|
21
|
-
-------------------|---------|----------|---------|---------|-------------------
|
|
22
|
-
All files | 89.47 | 69.44 | 88.88 | 89.47 |
|
|
23
|
-
config-object.ts | 72.72 | 62.5 | 66.66 | 72.72 | 11,18,27
|
|
24
|
-
config.schema.ts | 100 | 100 | 100 | 100 |
|
|
25
|
-
define-config.ts | 85 | 61.11 | 100 | 85 | 25-26,31
|
|
26
|
-
...ment-reader.ts | 100 | 87.5 | 100 | 100 | 20
|
|
27
|
-
-------------------|---------|----------|---------|---------|-------------------
|
package/.turbo/turbo-test.log
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @autometa/config@0.1.24 test /Users/ben.aherne/Documents/GitHub/autometa/packages/config
|
|
3
|
-
> vitest run --passWithNoTests
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
RUN v1.4.0 /Users/ben.aherne/Documents/GitHub/autometa/packages/config
|
|
7
|
-
|
|
8
|
-
✓ src/envrionment-reader.spec.ts (7 tests) 3ms
|
|
9
|
-
✓ src/define-config.spec.ts (7 tests) 4ms
|
|
10
|
-
✓ src/config.schema.spec.ts (13 tests) 34ms
|
|
11
|
-
|
|
12
|
-
Test Files 3 passed (3)
|
|
13
|
-
Tests 27 passed (27)
|
|
14
|
-
Start at 13:47:45
|
|
15
|
-
Duration 1.40s (transform 193ms, setup 0ms, collect 731ms, tests 41ms, environment 0ms, prepare 561ms)
|
|
16
|
-
|
package/CHANGELOG.md
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
# @autometa/config
|
|
2
|
-
|
|
3
|
-
## 0.1.27
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- @autometa/app@0.4.2
|
|
8
|
-
|
|
9
|
-
## 0.1.26
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- Updated dependencies [da669a3]
|
|
14
|
-
- @autometa/app@0.4.1
|
|
15
|
-
|
|
16
|
-
## 0.1.25
|
|
17
|
-
|
|
18
|
-
### Patch Changes
|
|
19
|
-
|
|
20
|
-
- Updated dependencies [7440e9f]
|
|
21
|
-
- @autometa/app@0.4.0
|
|
22
|
-
|
|
23
|
-
## 0.1.24
|
|
24
|
-
|
|
25
|
-
### Patch Changes
|
|
26
|
-
|
|
27
|
-
- Updated dependencies [1d3f84e]
|
|
28
|
-
- @autometa/app@0.3.5
|
|
29
|
-
|
|
30
|
-
## 0.1.23
|
|
31
|
-
|
|
32
|
-
### Patch Changes
|
|
33
|
-
|
|
34
|
-
- @autometa/app@0.3.4
|
|
35
|
-
|
|
36
|
-
## 0.1.22
|
|
37
|
-
|
|
38
|
-
### Patch Changes
|
|
39
|
-
|
|
40
|
-
- Updated dependencies [536004e]
|
|
41
|
-
- Updated dependencies [bac2661]
|
|
42
|
-
- @autometa/app@0.3.3
|
|
43
|
-
|
|
44
|
-
## 0.1.21
|
|
45
|
-
|
|
46
|
-
### Patch Changes
|
|
47
|
-
|
|
48
|
-
- @autometa/app@0.3.2
|
|
49
|
-
|
|
50
|
-
## 0.1.20
|
|
51
|
-
|
|
52
|
-
### Patch Changes
|
|
53
|
-
|
|
54
|
-
- Updated dependencies [6c4bb8d]
|
|
55
|
-
- @autometa/app@0.3.1
|
|
56
|
-
|
|
57
|
-
## 0.1.19
|
|
58
|
-
|
|
59
|
-
### Patch Changes
|
|
60
|
-
|
|
61
|
-
- Updated dependencies [98d911f]
|
|
62
|
-
- @autometa/app@0.3.0
|
|
63
|
-
|
|
64
|
-
## 0.1.18
|
|
65
|
-
|
|
66
|
-
### Patch Changes
|
|
67
|
-
|
|
68
|
-
- Updated dependencies [3fe2ad4]
|
|
69
|
-
- @autometa/errors@0.2.2
|
|
70
|
-
- @autometa/app@0.2.4
|
|
71
|
-
- @autometa/asserters@0.1.8
|
|
72
|
-
|
|
73
|
-
## 0.1.17
|
|
74
|
-
|
|
75
|
-
### Patch Changes
|
|
76
|
-
|
|
77
|
-
- Updated dependencies [3493bb6]
|
|
78
|
-
- @autometa/errors@0.2.1
|
|
79
|
-
- @autometa/app@0.2.3
|
|
80
|
-
- @autometa/asserters@0.1.7
|
|
81
|
-
|
|
82
|
-
## 0.1.16
|
|
83
|
-
|
|
84
|
-
### Patch Changes
|
|
85
|
-
|
|
86
|
-
- Updated dependencies [8ec0cdc]
|
|
87
|
-
- @autometa/app@0.2.2
|
|
88
|
-
|
|
89
|
-
## 0.1.15
|
|
90
|
-
|
|
91
|
-
### Patch Changes
|
|
92
|
-
|
|
93
|
-
- Updated dependencies [0c070cb]
|
|
94
|
-
- @autometa/asserters@0.1.6
|
|
95
|
-
- @autometa/app@0.2.1
|
|
96
|
-
|
|
97
|
-
## 0.1.14
|
|
98
|
-
|
|
99
|
-
### Patch Changes
|
|
100
|
-
|
|
101
|
-
- Updated dependencies [b5ce008]
|
|
102
|
-
- Updated dependencies [8f116d9]
|
|
103
|
-
- @autometa/errors@0.2.0
|
|
104
|
-
- @autometa/app@0.2.0
|
|
105
|
-
- @autometa/asserters@0.1.5
|
|
106
|
-
|
|
107
|
-
## 0.1.13
|
|
108
|
-
|
|
109
|
-
### Patch Changes
|
|
110
|
-
|
|
111
|
-
- 04ed85d: feat: added HTP client based on axios
|
|
112
|
-
- Updated dependencies [04ed85d]
|
|
113
|
-
- @autometa/asserters@0.1.4
|
|
114
|
-
- @autometa/errors@0.1.4
|
|
115
|
-
- @autometa/app@0.1.13
|
|
116
|
-
|
|
117
|
-
## 0.1.12
|
|
118
|
-
|
|
119
|
-
### Patch Changes
|
|
120
|
-
|
|
121
|
-
- Updated dependencies [4ee4e99]
|
|
122
|
-
- @autometa/app@0.1.12
|
|
123
|
-
|
|
124
|
-
## 0.1.11
|
|
125
|
-
|
|
126
|
-
### Patch Changes
|
|
127
|
-
|
|
128
|
-
- Release Bump
|
|
129
|
-
- Updated dependencies
|
|
130
|
-
- @autometa/app@0.1.11
|
|
131
|
-
|
|
132
|
-
## 0.1.10
|
|
133
|
-
|
|
134
|
-
### Patch Changes
|
|
135
|
-
|
|
136
|
-
- @autometa/app@0.1.10
|
|
137
|
-
|
|
138
|
-
## 0.1.9
|
|
139
|
-
|
|
140
|
-
### Patch Changes
|
|
141
|
-
|
|
142
|
-
- Updated dependencies [ddbdb401]
|
|
143
|
-
- @autometa/app@0.1.9
|
|
144
|
-
|
|
145
|
-
## 0.1.8
|
|
146
|
-
|
|
147
|
-
### Patch Changes
|
|
148
|
-
|
|
149
|
-
- 53f958e1: Fix: steps not executing onStepEnded event when an error was thrown
|
|
150
|
-
- Updated dependencies [53f958e1]
|
|
151
|
-
- @autometa/app@0.1.8
|
|
152
|
-
- @autometa/asserters@0.1.3
|
|
153
|
-
- @autometa/errors@0.1.3
|
|
154
|
-
- @autometa/types@0.4.1
|
|
155
|
-
|
|
156
|
-
## 0.1.7
|
|
157
|
-
|
|
158
|
-
### Patch Changes
|
|
159
|
-
|
|
160
|
-
- Fix: bad dist published
|
|
161
|
-
- Updated dependencies
|
|
162
|
-
- @autometa/app@0.1.7
|
|
163
|
-
|
|
164
|
-
## 0.1.6
|
|
165
|
-
|
|
166
|
-
### Patch Changes
|
|
167
|
-
|
|
168
|
-
- Updated dependencies [f167963f]
|
|
169
|
-
- @autometa/app@0.1.6
|
|
170
|
-
|
|
171
|
-
## 0.1.5
|
|
172
|
-
|
|
173
|
-
### Patch Changes
|
|
174
|
-
|
|
175
|
-
- Updated dependencies [12bd4b1e]
|
|
176
|
-
- @autometa/errors@0.1.2
|
|
177
|
-
- @autometa/app@0.1.5
|
|
178
|
-
- @autometa/asserters@0.1.2
|
|
179
|
-
|
|
180
|
-
## 0.1.4
|
|
181
|
-
|
|
182
|
-
### Patch Changes
|
|
183
|
-
|
|
184
|
-
- Updated dependencies [4a16497d]
|
|
185
|
-
- @autometa/app@0.1.4
|
|
186
|
-
|
|
187
|
-
## 0.1.3
|
|
188
|
-
|
|
189
|
-
### Patch Changes
|
|
190
|
-
|
|
191
|
-
- @autometa/app@0.1.3
|
|
192
|
-
|
|
193
|
-
## 0.1.2
|
|
194
|
-
|
|
195
|
-
### Patch Changes
|
|
196
|
-
|
|
197
|
-
- Updated dependencies [e8f02f3a]
|
|
198
|
-
- @autometa/errors@0.1.1
|
|
199
|
-
- @autometa/app@0.1.2
|
|
200
|
-
- @autometa/asserters@0.1.1
|
|
201
|
-
|
|
202
|
-
## 0.1.1
|
|
203
|
-
|
|
204
|
-
### Patch Changes
|
|
205
|
-
|
|
206
|
-
- @autometa/app@0.1.1
|
|
207
|
-
|
|
208
|
-
## 0.1.0
|
|
209
|
-
|
|
210
|
-
### Minor Changes
|
|
211
|
-
|
|
212
|
-
- 554b77e: Releasing packages
|
|
213
|
-
|
|
214
|
-
### Patch Changes
|
|
215
|
-
|
|
216
|
-
- Updated dependencies [554b77e]
|
|
217
|
-
- @autometa/app@0.1.0
|
|
218
|
-
- @autometa/asserters@0.1.0
|
|
219
|
-
- @autometa/errors@0.1.0
|
|
220
|
-
- @autometa/types@0.4.0
|
package/dist/esm/index.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined")
|
|
5
|
-
return require.apply(this, arguments);
|
|
6
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
7
|
-
});
|
|
8
|
-
var __accessCheck = (obj, member, msg) => {
|
|
9
|
-
if (!member.has(obj))
|
|
10
|
-
throw TypeError("Cannot " + msg);
|
|
11
|
-
};
|
|
12
|
-
var __privateGet = (obj, member, getter) => {
|
|
13
|
-
__accessCheck(obj, member, "read from private field");
|
|
14
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
15
|
-
};
|
|
16
|
-
var __privateAdd = (obj, member, value) => {
|
|
17
|
-
if (member.has(obj))
|
|
18
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
19
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
20
|
-
};
|
|
21
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
22
|
-
__accessCheck(obj, member, "write to private field");
|
|
23
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
24
|
-
return value;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
// src/config-object.ts
|
|
28
|
-
import { AutomationError, raise } from "@autometa/errors";
|
|
29
|
-
|
|
30
|
-
// src/environment-reader.ts
|
|
31
|
-
var _envVar, _factory, _literal;
|
|
32
|
-
var EnvironmentReader = class {
|
|
33
|
-
constructor() {
|
|
34
|
-
__privateAdd(this, _envVar, void 0);
|
|
35
|
-
__privateAdd(this, _factory, void 0);
|
|
36
|
-
__privateAdd(this, _literal, void 0);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Returns the configuration object for the selected
|
|
40
|
-
* environment by weighting.
|
|
41
|
-
*
|
|
42
|
-
* By priority the environment is selected by:
|
|
43
|
-
* 1. Literal
|
|
44
|
-
* 2. Environment Variable
|
|
45
|
-
* 3. Factory
|
|
46
|
-
*/
|
|
47
|
-
get value() {
|
|
48
|
-
if (__privateGet(this, _literal)) {
|
|
49
|
-
return __privateGet(this, _literal);
|
|
50
|
-
}
|
|
51
|
-
if (__privateGet(this, _envVar)) {
|
|
52
|
-
const value = process.env[__privateGet(this, _envVar)];
|
|
53
|
-
if (value) {
|
|
54
|
-
return value;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (__privateGet(this, _factory)) {
|
|
58
|
-
return __privateGet(this, _factory).call(this);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
byEnvironmentVariable(envVar) {
|
|
62
|
-
__privateSet(this, _envVar, envVar);
|
|
63
|
-
return this;
|
|
64
|
-
}
|
|
65
|
-
byFactory(factory) {
|
|
66
|
-
__privateSet(this, _factory, factory);
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
69
|
-
byLiteral(literal) {
|
|
70
|
-
__privateSet(this, _literal, literal);
|
|
71
|
-
return this;
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
_envVar = new WeakMap();
|
|
75
|
-
_factory = new WeakMap();
|
|
76
|
-
_literal = new WeakMap();
|
|
77
|
-
|
|
78
|
-
// src/config-object.ts
|
|
79
|
-
var Config = class {
|
|
80
|
-
constructor(envMap) {
|
|
81
|
-
this.envMap = envMap;
|
|
82
|
-
this.environments = new EnvironmentReader();
|
|
83
|
-
}
|
|
84
|
-
get current() {
|
|
85
|
-
const key = this.environments.value;
|
|
86
|
-
if (!key) {
|
|
87
|
-
if (!this.envMap.has("default")) {
|
|
88
|
-
throw new AutomationError(
|
|
89
|
-
`No environment is defined. Define an environment with 'env.byLiteral("my-environment")' or 'env.byEnvironmentVariable("MY_ENVIRONMENT")' or 'env.byFactory(() => "my-environment")' or 'env.byLiteral("default")'`
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
return this.envMap.get("default");
|
|
93
|
-
}
|
|
94
|
-
if (!this.envMap.has(key)) {
|
|
95
|
-
throw new AutomationError(
|
|
96
|
-
`Environment ${key} is not defined. Options are:
|
|
97
|
-
${Object.keys(
|
|
98
|
-
this.envMap
|
|
99
|
-
).join("\n")}`
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
return this.envMap.get(key) ?? raise(`Environment ${key} is not defined`);
|
|
103
|
-
}
|
|
104
|
-
get currentEnvironment() {
|
|
105
|
-
return this.environments.value;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// src/define-config.ts
|
|
110
|
-
import { AutomationError as AutomationError2 } from "@autometa/errors";
|
|
111
|
-
function defineConfig(config, ...configs) {
|
|
112
|
-
const envs = [];
|
|
113
|
-
const envMap = config.envMap;
|
|
114
|
-
for (const config2 of configs) {
|
|
115
|
-
if (config2.environment) {
|
|
116
|
-
if (envs.includes(config2.environment)) {
|
|
117
|
-
throw new AutomationError2(
|
|
118
|
-
`Environment ${config2.environment} is defined more than once`
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
envMap.set(config2.environment, config2);
|
|
122
|
-
envs.push(config2.environment);
|
|
123
|
-
} else if (!config2.environment && envs.includes("default")) {
|
|
124
|
-
throw new AutomationError2(`Only one default environment can be defined`);
|
|
125
|
-
} else {
|
|
126
|
-
envMap.set("default", config2);
|
|
127
|
-
envs.push("default");
|
|
128
|
-
config2.environment = "default";
|
|
129
|
-
}
|
|
130
|
-
if (config2.shim) {
|
|
131
|
-
if ("error-cause" in config2.shim && config2.shim["error-cause"] === true) {
|
|
132
|
-
__require("error-cause/auto");
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
if (envs.length > 1 && !envs.includes("default")) {
|
|
137
|
-
throw new AutomationError2(
|
|
138
|
-
`A default environment must be defined first. At one config must not have an environment defined or define a default environment explicitly with 'environement="default"`
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
const setters = config.environments;
|
|
142
|
-
return {
|
|
143
|
-
env: setters
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
export {
|
|
147
|
-
Config,
|
|
148
|
-
EnvironmentReader,
|
|
149
|
-
defineConfig
|
|
150
|
-
};
|
|
151
|
-
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config-object.ts","../../src/environment-reader.ts","../../src/define-config.ts"],"sourcesContent":["import { AutomationError, raise } from \"@autometa/errors\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nexport class Config {\n readonly environments: EnvironmentReader = new EnvironmentReader();\n constructor(public envMap: Map<string, TestExecutorConfig>) {}\n get current(): TestExecutorConfig {\n const key = this.environments.value;\n if (!key) {\n if (!this.envMap.has(\"default\")) {\n throw new AutomationError(\n `No environment is defined. Define an environment with 'env.byLiteral(\"my-environment\")' or 'env.byEnvironmentVariable(\"MY_ENVIRONMENT\")' or 'env.byFactory(() => \"my-environment\")' or 'env.byLiteral(\"default\")'`\n );\n }\n return this.envMap.get(\"default\") as TestExecutorConfig;\n }\n if (!this.envMap.has(key)) {\n throw new AutomationError(\n `Environment ${key} is not defined. Options are: \\n ${Object.keys(\n this.envMap\n ).join(\"\\n\")}`\n );\n }\n return this.envMap.get(key) ?? raise(`Environment ${key} is not defined`);\n }\n get currentEnvironment() {\n return this.environments.value;\n }\n}\n","export class EnvironmentReader {\n #envVar?: string;\n #factory?: () => string;\n #literal?: string;\n /**\n * Returns the configuration object for the selected\n * environment by weighting.\n *\n * By priority the environment is selected by:\n * 1. Literal\n * 2. Environment Variable\n * 3. Factory\n */\n get value() {\n if (this.#literal) {\n return this.#literal;\n }\n if (this.#envVar) {\n const value = process.env[this.#envVar];\n if (value) {\n return value;\n }\n }\n if (this.#factory) {\n return this.#factory();\n }\n }\n\n byEnvironmentVariable(envVar: string) {\n this.#envVar = envVar;\n return this;\n }\n byFactory(factory: () => string) {\n this.#factory = factory;\n return this;\n }\n byLiteral(literal: string) {\n this.#literal = literal;\n return this;\n }\n}\n","import { Config } from \"./config-object\";\nimport { EnvironmentReader } from \"./environment-reader\";\nimport { TestExecutorConfig } from \"./types\";\nimport { AutomationError } from \"@autometa/errors\";\nexport function defineConfig(config: Config, ...configs: TestExecutorConfig[]) {\n const envs: string[] = [];\n const envMap = config.envMap;\n for (const config of configs) {\n if (config.environment) {\n if (envs.includes(config.environment)) {\n throw new AutomationError(\n `Environment ${config.environment} is defined more than once`\n );\n }\n envMap.set(config.environment, config);\n envs.push(config.environment);\n } else if (!config.environment && envs.includes(\"default\")) {\n throw new AutomationError(`Only one default environment can be defined`);\n } else {\n envMap.set(\"default\", config);\n envs.push(\"default\");\n config.environment = \"default\";\n }\n if (config.shim) {\n if (\"error-cause\" in config.shim && config.shim[\"error-cause\"] === true) {\n require(\"error-cause/auto\");\n }\n }\n }\n if (envs.length > 1 && !envs.includes(\"default\")) {\n throw new AutomationError(\n `A default environment must be defined first. At one config must not have an environment defined or define a default environment explicitly with 'environement=\"default\"`\n );\n }\n const setters = config.environments as {\n byLiteral: (literal: string) => EnvironmentReader;\n byEnvironmentVariable: (name: string) => EnvironmentReader;\n byFactory: (action: () => string) => EnvironmentReader;\n };\n return {\n env: setters,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,iBAAiB,aAAa;;;ACAvC;AAAO,IAAM,oBAAN,MAAwB;AAAA,EAAxB;AACL;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,QAAQ;AACV,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK;AAAA,IACd;AACA,QAAI,mBAAK,UAAS;AAChB,YAAM,QAAQ,QAAQ,IAAI,mBAAK,QAAO;AACtC,UAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,mBAAK,WAAU;AACjB,aAAO,mBAAK,UAAL;AAAA,IACT;AAAA,EACF;AAAA,EAEA,sBAAsB,QAAgB;AACpC,uBAAK,SAAU;AACf,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAuB;AAC/B,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU,SAAiB;AACzB,uBAAK,UAAW;AAChB,WAAO;AAAA,EACT;AACF;AAvCE;AACA;AACA;;;ADAK,IAAM,SAAN,MAAa;AAAA,EAElB,YAAmB,QAAyC;AAAzC;AADnB,SAAS,eAAkC,IAAI,kBAAkB;AAAA,EACJ;AAAA,EAC7D,IAAI,UAA8B;AAChC,UAAM,MAAM,KAAK,aAAa;AAC9B,QAAI,CAAC,KAAK;AACR,UAAI,CAAC,KAAK,OAAO,IAAI,SAAS,GAAG;AAC/B,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,aAAO,KAAK,OAAO,IAAI,SAAS;AAAA,IAClC;AACA,QAAI,CAAC,KAAK,OAAO,IAAI,GAAG,GAAG;AACzB,YAAM,IAAI;AAAA,QACR,eAAe,GAAG;AAAA,GAAoC,OAAO;AAAA,UAC3D,KAAK;AAAA,QACP,EAAE,KAAK,IAAI,CAAC;AAAA,MACd;AAAA,IACF;AACA,WAAO,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,eAAe,GAAG,iBAAiB;AAAA,EAC1E;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAO,KAAK,aAAa;AAAA,EAC3B;AACF;;;AEzBA,SAAS,mBAAAA,wBAAuB;AACzB,SAAS,aAAa,WAAmB,SAA+B;AAC7E,QAAM,OAAiB,CAAC;AACxB,QAAM,SAAS,OAAO;AACtB,aAAWC,WAAU,SAAS;AAC5B,QAAIA,QAAO,aAAa;AACtB,UAAI,KAAK,SAASA,QAAO,WAAW,GAAG;AACrC,cAAM,IAAID;AAAA,UACR,eAAeC,QAAO,WAAW;AAAA,QACnC;AAAA,MACF;AACA,aAAO,IAAIA,QAAO,aAAaA,OAAM;AACrC,WAAK,KAAKA,QAAO,WAAW;AAAA,IAC9B,WAAW,CAACA,QAAO,eAAe,KAAK,SAAS,SAAS,GAAG;AAC1D,YAAM,IAAID,iBAAgB,6CAA6C;AAAA,IACzE,OAAO;AACL,aAAO,IAAI,WAAWC,OAAM;AAC5B,WAAK,KAAK,SAAS;AACnB,MAAAA,QAAO,cAAc;AAAA,IACvB;AACA,QAAIA,QAAO,MAAM;AACf,UAAI,iBAAiBA,QAAO,QAAQA,QAAO,KAAK,aAAa,MAAM,MAAM;AACvE,kBAAQ,kBAAkB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACA,MAAI,KAAK,SAAS,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG;AAChD,UAAM,IAAID;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,OAAO;AAKvB,SAAO;AAAA,IACL,KAAK;AAAA,EACP;AACF;","names":["AutomationError","config"]}
|
package/dist/index.d.cts
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import * as zod from 'zod';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
|
|
4
|
-
declare class EnvironmentReader {
|
|
5
|
-
#private;
|
|
6
|
-
/**
|
|
7
|
-
* Returns the configuration object for the selected
|
|
8
|
-
* environment by weighting.
|
|
9
|
-
*
|
|
10
|
-
* By priority the environment is selected by:
|
|
11
|
-
* 1. Literal
|
|
12
|
-
* 2. Environment Variable
|
|
13
|
-
* 3. Factory
|
|
14
|
-
*/
|
|
15
|
-
get value(): string | undefined;
|
|
16
|
-
byEnvironmentVariable(envVar: string): this;
|
|
17
|
-
byFactory(factory: () => string): this;
|
|
18
|
-
byLiteral(literal: string): this;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
declare const TestExecutorConfigSchema: zod.ZodObject<{
|
|
22
|
-
runner: zod.ZodUnion<[zod.ZodLiteral<"jest">, zod.ZodLiteral<"vitest">]>;
|
|
23
|
-
environment: zod.ZodOptional<zod.ZodString>;
|
|
24
|
-
test: zod.ZodOptional<zod.ZodObject<{
|
|
25
|
-
timeout: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodTuple<[zod.ZodNumber, zod.ZodUnion<[zod.ZodUnion<[zod.ZodUnion<[zod.ZodLiteral<"ms">, zod.ZodLiteral<"s">]>, zod.ZodLiteral<"m">]>, zod.ZodLiteral<"h">]>], null>]>>;
|
|
26
|
-
tagFilter: zod.ZodOptional<zod.ZodEffects<zod.ZodString, string, string>>;
|
|
27
|
-
groupLogging: zod.ZodOptional<zod.ZodBoolean>;
|
|
28
|
-
}, "strip", zod.ZodTypeAny, {
|
|
29
|
-
timeout?: number | [number, "ms" | "s" | "m" | "h"] | undefined;
|
|
30
|
-
tagFilter?: string | undefined;
|
|
31
|
-
groupLogging?: boolean | undefined;
|
|
32
|
-
}, {
|
|
33
|
-
timeout?: number | [number, "ms" | "s" | "m" | "h"] | undefined;
|
|
34
|
-
tagFilter?: string | undefined;
|
|
35
|
-
groupLogging?: boolean | undefined;
|
|
36
|
-
}>>;
|
|
37
|
-
roots: zod.ZodObject<{
|
|
38
|
-
features: zod.ZodArray<zod.ZodString, "many">;
|
|
39
|
-
steps: zod.ZodArray<zod.ZodString, "many">;
|
|
40
|
-
app: zod.ZodArray<zod.ZodString, "many">;
|
|
41
|
-
parameterTypes: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
|
|
42
|
-
}, "strip", zod.ZodTypeAny, {
|
|
43
|
-
features: string[];
|
|
44
|
-
steps: string[];
|
|
45
|
-
app: string[];
|
|
46
|
-
parameterTypes?: string[] | undefined;
|
|
47
|
-
}, {
|
|
48
|
-
features: string[];
|
|
49
|
-
steps: string[];
|
|
50
|
-
app: string[];
|
|
51
|
-
parameterTypes?: string[] | undefined;
|
|
52
|
-
}>;
|
|
53
|
-
shim: zod.ZodOptional<zod.ZodOptional<zod.ZodObject<{
|
|
54
|
-
errorCause: zod.ZodOptional<zod.ZodBoolean>;
|
|
55
|
-
}, "strip", zod.ZodTypeAny, {
|
|
56
|
-
errorCause?: boolean | undefined;
|
|
57
|
-
}, {
|
|
58
|
-
errorCause?: boolean | undefined;
|
|
59
|
-
}>>>;
|
|
60
|
-
events: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
|
|
61
|
-
}, "strip", zod.ZodTypeAny, {
|
|
62
|
-
runner: "jest" | "vitest";
|
|
63
|
-
roots: {
|
|
64
|
-
features: string[];
|
|
65
|
-
steps: string[];
|
|
66
|
-
app: string[];
|
|
67
|
-
parameterTypes?: string[] | undefined;
|
|
68
|
-
};
|
|
69
|
-
environment?: string | undefined;
|
|
70
|
-
test?: {
|
|
71
|
-
timeout?: number | [number, "ms" | "s" | "m" | "h"] | undefined;
|
|
72
|
-
tagFilter?: string | undefined;
|
|
73
|
-
groupLogging?: boolean | undefined;
|
|
74
|
-
} | undefined;
|
|
75
|
-
shim?: {
|
|
76
|
-
errorCause?: boolean | undefined;
|
|
77
|
-
} | undefined;
|
|
78
|
-
events?: string[] | undefined;
|
|
79
|
-
}, {
|
|
80
|
-
runner: "jest" | "vitest";
|
|
81
|
-
roots: {
|
|
82
|
-
features: string[];
|
|
83
|
-
steps: string[];
|
|
84
|
-
app: string[];
|
|
85
|
-
parameterTypes?: string[] | undefined;
|
|
86
|
-
};
|
|
87
|
-
environment?: string | undefined;
|
|
88
|
-
test?: {
|
|
89
|
-
timeout?: number | [number, "ms" | "s" | "m" | "h"] | undefined;
|
|
90
|
-
tagFilter?: string | undefined;
|
|
91
|
-
groupLogging?: boolean | undefined;
|
|
92
|
-
} | undefined;
|
|
93
|
-
shim?: {
|
|
94
|
-
errorCause?: boolean | undefined;
|
|
95
|
-
} | undefined;
|
|
96
|
-
events?: string[] | undefined;
|
|
97
|
-
}>;
|
|
98
|
-
|
|
99
|
-
type TestExecutorConfig = z.infer<typeof TestExecutorConfigSchema>;
|
|
100
|
-
|
|
101
|
-
declare class Config {
|
|
102
|
-
envMap: Map<string, TestExecutorConfig>;
|
|
103
|
-
readonly environments: EnvironmentReader;
|
|
104
|
-
constructor(envMap: Map<string, TestExecutorConfig>);
|
|
105
|
-
get current(): TestExecutorConfig;
|
|
106
|
-
get currentEnvironment(): string | undefined;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
declare function defineConfig(config: Config, ...configs: TestExecutorConfig[]): {
|
|
110
|
-
env: {
|
|
111
|
-
byLiteral: (literal: string) => EnvironmentReader;
|
|
112
|
-
byEnvironmentVariable: (name: string) => EnvironmentReader;
|
|
113
|
-
byFactory: (action: () => string) => EnvironmentReader;
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
export { Config, EnvironmentReader, TestExecutorConfig, defineConfig };
|
package/tsup.config.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "tsup";
|
|
2
|
-
|
|
3
|
-
export default defineConfig({
|
|
4
|
-
clean: true, // clean up the dist folder
|
|
5
|
-
format: ["cjs", "esm"], // generate cjs and esm files
|
|
6
|
-
dts: true,
|
|
7
|
-
sourcemap: true, // generate sourcemaps
|
|
8
|
-
skipNodeModulesBundle: true,
|
|
9
|
-
entryPoints: ["src/index.ts"],
|
|
10
|
-
target: "es2020",
|
|
11
|
-
outDir: "dist",
|
|
12
|
-
legacyOutput: true,
|
|
13
|
-
external: ["dist"],
|
|
14
|
-
});
|