@pitininja/envious-typebox 6.0.0-beta6 → 6.0.1
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 +2 -0
- package/dist/{resolvers/typebox/src/index.js → index.js} +15 -15
- package/dist/index.js.map +1 -0
- package/package.json +8 -6
- package/dist/common/error.d.ts +0 -21
- package/dist/common/error.js +0 -26
- package/dist/common/error.js.map +0 -1
- package/dist/resolvers/typebox/src/index.js.map +0 -1
- /package/dist/{resolvers/typebox/src/index.d.ts → index.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -16,6 +16,8 @@ npm i @pitininja/envious-typebox
|
|
|
16
16
|
|
|
17
17
|
## Usage
|
|
18
18
|
|
|
19
|
+
See the [official Typebox documentation](https://sinclairzx81.github.io/typebox/) for how to write the schema.
|
|
20
|
+
|
|
19
21
|
```typescript
|
|
20
22
|
import { envious } from '@pitininja/envious';
|
|
21
23
|
import { typeboxResolver } from '@pitininja/envious-typebox';
|
|
@@ -37,30 +37,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.typeboxResolver = void 0;
|
|
40
|
+
const envious_1 = require("@pitininja/envious");
|
|
40
41
|
const format_1 = __importDefault(require("typebox/format"));
|
|
41
42
|
const value_1 = __importStar(require("typebox/value"));
|
|
42
|
-
const error_1 = require("../../../common/error");
|
|
43
43
|
const setTypeboxFormats = (formats) => {
|
|
44
44
|
for (const [name, format] of Object.entries(formats)) {
|
|
45
45
|
format_1.default.Set(name, format instanceof RegExp ? (val) => format.test(val) : format);
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
const typeboxErrorsToEnviousErrors = (typeboxErrors) => {
|
|
49
|
-
return (0, error_1.resolverErrorsToEnviousErrors)({
|
|
50
|
-
resolverErrors: typeboxErrors,
|
|
51
|
-
transform: (typeboxError) => {
|
|
52
|
-
const { instancePath, message } = typeboxError;
|
|
53
|
-
return { name: instancePath.replace(/^\//, ''), message };
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
48
|
function checkIfObject(val) {
|
|
58
49
|
if (!val || typeof val !== 'object') {
|
|
59
|
-
throw new
|
|
50
|
+
throw new envious_1.EnviousError({
|
|
60
51
|
message: 'Could not parse environment variables'
|
|
61
52
|
});
|
|
62
53
|
}
|
|
63
54
|
}
|
|
55
|
+
const transformTypeboxError = (typeboxError) => {
|
|
56
|
+
const { instancePath, message } = typeboxError;
|
|
57
|
+
return {
|
|
58
|
+
name: instancePath.replace(/^\//, ''),
|
|
59
|
+
message
|
|
60
|
+
};
|
|
61
|
+
};
|
|
64
62
|
const typeboxResolver = ({ schema, formats }) => {
|
|
65
63
|
return (env) => {
|
|
66
64
|
try {
|
|
@@ -77,8 +75,9 @@ const typeboxResolver = ({ schema, formats }) => {
|
|
|
77
75
|
checkIfObject(converted);
|
|
78
76
|
const errors = value_1.default.Errors(schema, { ...converted });
|
|
79
77
|
if (errors.length) {
|
|
80
|
-
throw new
|
|
81
|
-
|
|
78
|
+
throw new envious_1.EnviousError({
|
|
79
|
+
resolverErrors: errors,
|
|
80
|
+
transform: transformTypeboxError
|
|
82
81
|
});
|
|
83
82
|
}
|
|
84
83
|
return value_1.default.Repair({
|
|
@@ -88,8 +87,9 @@ const typeboxResolver = ({ schema, formats }) => {
|
|
|
88
87
|
}
|
|
89
88
|
catch (err) {
|
|
90
89
|
if (err instanceof value_1.AssertError) {
|
|
91
|
-
throw new
|
|
92
|
-
|
|
90
|
+
throw new envious_1.EnviousError({
|
|
91
|
+
resolverErrors: err.cause.errors,
|
|
92
|
+
transform: transformTypeboxError
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
throw err;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAGlD,4DAAoC;AACpC,uDAAmD;AAenD,MAAM,iBAAiB,GAAG,CAAC,OAA8B,EAAE,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,gBAAM,CAAC,GAAG,CACN,IAAI,EACJ,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAChE,CAAC;IACN,CAAC;AAAA,CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,GAAY,EAAyB;IACxD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,sBAAY,CAAC;YACnB,OAAO,EAAE,uCAAuC;SACnD,CAAC,CAAC;IACP,CAAC;AAAA,CACJ;AAED,MAAM,qBAAqB,GAAG,CAAC,YAAuC,EAAE,EAAE,CAAC;IACvE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAC/C,OAAO;QACH,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACrC,OAAO;KACV,CAAC;AAAA,CACL,CAAC;AAEK,MAAM,eAAe,GAAG,CAAoB,EAC/C,MAAM,EACN,OAAO,EACwB,EAA6B,EAAE,CAAC;IAC/D,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACV,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,SAAS,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,yHAAyH;YACzH,MAAM,OAAO,GAAG,eAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC/C,aAAa,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,eAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YACxD,aAAa,CAAC,SAAS,CAAC,CAAC;YACzB,MAAM,SAAS,GAAG,eAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YAC1D,aAAa,CAAC,SAAS,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YACtD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,sBAAY,CAAC;oBACnB,cAAc,EAAE,MAAM;oBACtB,SAAS,EAAE,qBAAqB;iBACnC,CAAC,CAAC;YACP,CAAC;YACD,OAAO,eAAK,CAAC,MAAM,CACf;gBACI,GAAG,MAAM;gBACT,oBAAoB,EAAE,KAAK;aAC9B,EACD,SAAS,CACZ,CAAC;QACN,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,GAAG,YAAY,mBAAW,EAAE,CAAC;gBAC7B,MAAM,IAAI,sBAAY,CAAC;oBACnB,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;oBAChC,SAAS,EAAE,qBAAqB;iBACnC,CAAC,CAAC;YACP,CAAC;YACD,MAAM,GAAG,CAAC;QACd,CAAC;IAAA,CACJ,CAAC;AAAA,CACL,CAAC;AAzCW,QAAA,eAAe,GAAf,eAAe,CAyC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pitininja/envious-typebox",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"license": "AGPL-3.0-or-later",
|
|
5
5
|
"homepage": "https://codeberg.org/pitininja/envious",
|
|
6
6
|
"repository": {
|
|
@@ -12,14 +12,16 @@
|
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
14
|
"./dist",
|
|
15
|
-
"./package.json"
|
|
15
|
+
"./package.json",
|
|
16
|
+
"./README.md"
|
|
16
17
|
],
|
|
17
|
-
"main": "./dist/
|
|
18
|
-
"types": "./dist/
|
|
18
|
+
"main": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
19
20
|
"scripts": {
|
|
20
|
-
"build": "npx tsgo --build --clean tsconfig.json && npx tsgo -b ./tsconfig.json"
|
|
21
|
+
"build": "npx tsgo --build --clean ./tsconfig.build.json && npx tsgo -b ./tsconfig.build.json"
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"
|
|
24
|
+
"@pitininja/envious": "^6.0.0",
|
|
25
|
+
"typebox": "^1.0.0"
|
|
24
26
|
}
|
|
25
27
|
}
|
package/dist/common/error.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export type EnviousErrorVariable = {
|
|
2
|
-
name: string;
|
|
3
|
-
messages: string[];
|
|
4
|
-
};
|
|
5
|
-
type EnviousErrorOptions = {
|
|
6
|
-
message?: string;
|
|
7
|
-
variables?: EnviousErrorVariable[];
|
|
8
|
-
};
|
|
9
|
-
export declare class EnviousError extends Error {
|
|
10
|
-
variables: EnviousErrorVariable[];
|
|
11
|
-
constructor({ message, variables }: EnviousErrorOptions);
|
|
12
|
-
}
|
|
13
|
-
type ResolverErrorsToEnviousErrorsOptions<T> = {
|
|
14
|
-
transform: (resolverError: T) => {
|
|
15
|
-
name: string;
|
|
16
|
-
message: string;
|
|
17
|
-
};
|
|
18
|
-
resolverErrors: T[];
|
|
19
|
-
};
|
|
20
|
-
export declare const resolverErrorsToEnviousErrors: <T>({ transform, resolverErrors }: ResolverErrorsToEnviousErrorsOptions<T>) => EnviousErrorVariable[];
|
|
21
|
-
export {};
|
package/dist/common/error.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolverErrorsToEnviousErrors = exports.EnviousError = void 0;
|
|
4
|
-
class EnviousError extends Error {
|
|
5
|
-
variables;
|
|
6
|
-
constructor({ message = 'Invalid environment variables', variables = [] }) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.variables = variables;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.EnviousError = EnviousError;
|
|
12
|
-
const resolverErrorsToEnviousErrors = ({ transform, resolverErrors }) => {
|
|
13
|
-
const enviousErrors = [];
|
|
14
|
-
const validationErrorsMap = new Map();
|
|
15
|
-
for (const resolverError of resolverErrors) {
|
|
16
|
-
const { name, message } = transform(resolverError);
|
|
17
|
-
const errorMessages = validationErrorsMap.get(name);
|
|
18
|
-
validationErrorsMap.set(name, [...(errorMessages ?? []), message]);
|
|
19
|
-
}
|
|
20
|
-
for (const [name, messages] of validationErrorsMap.entries()) {
|
|
21
|
-
enviousErrors.push({ name, messages });
|
|
22
|
-
}
|
|
23
|
-
return enviousErrors;
|
|
24
|
-
};
|
|
25
|
-
exports.resolverErrorsToEnviousErrors = resolverErrorsToEnviousErrors;
|
|
26
|
-
//# sourceMappingURL=error.js.map
|
package/dist/common/error.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../common/error.ts"],"names":[],"mappings":";;;AAUA,kBAA0B,SAAQ,KAAK;IACnC,SAAS,CAAyB;IAClC,YAAY,EACR,OAAO,GAAG,+BAA+B,EACzC,SAAS,GAAG,EAAE,EACI,EAAE;QACpB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAAA,CAC9B;CACJ;;AAUM,MAAM,6BAA6B,GAAG,CAAI,EAC7C,SAAS,EACT,cAAc,EACwB,EAAE,EAAE,CAAC;IAC3C,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3D,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,aAAa,CAAC;AAAA,CACxB,CAAC;AAfW,QAAA,6BAA6B,GAA7B,6BAA6B,CAexC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|