arkenv 0.8.3 → 0.9.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 +3 -3
- package/dist/arktype/index.cjs +1 -0
- package/dist/arktype/index.d.cts +109 -0
- package/dist/arktype/index.d.cts.map +1 -0
- package/dist/arktype/index.d.ts +109 -0
- package/dist/arktype/index.d.ts.map +1 -0
- package/dist/arktype/index.js +2 -0
- package/dist/arktype/index.js.map +1 -0
- package/dist/create-env-BPsNJfxy.d.cts +285 -0
- package/dist/create-env-BPsNJfxy.d.cts.map +1 -0
- package/dist/create-env-CFw1N3G1.d.ts +285 -0
- package/dist/create-env-CFw1N3G1.d.ts.map +1 -0
- package/dist/errors-DM9X9ICI.cjs +5 -0
- package/dist/errors-D_Q1KGgZ.js +6 -0
- package/dist/errors-D_Q1KGgZ.js.map +1 -0
- package/dist/index.cjs +1 -4
- package/dist/index.d.cts +29 -246
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +29 -246
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/package.json +24 -12
package/dist/index.d.cts
CHANGED
|
@@ -1,261 +1,44 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ArkErrors
|
|
3
|
-
import * as arktype_internal_keywords_string_ts0 from "arktype/internal/keywords/string.ts";
|
|
4
|
-
import * as arktype_internal_attributes_ts0 from "arktype/internal/attributes.ts";
|
|
5
|
-
import * as arktype_internal_variants_object_ts0 from "arktype/internal/variants/object.ts";
|
|
6
|
-
import * as arktype_internal_type_ts0 from "arktype/internal/type.ts";
|
|
1
|
+
import { n as EnvSchema, r as createEnv, t as ArkEnvConfig } from "./create-env-BPsNJfxy.cjs";
|
|
2
|
+
import { ArkErrors } from "arktype";
|
|
7
3
|
|
|
8
|
-
//#region
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* The root scope for the ArkEnv library,
|
|
13
|
-
* containing extensions to the ArkType scopes with ArkEnv-specific types
|
|
14
|
-
* like `string.host` and `number.port`.
|
|
15
|
-
*/
|
|
16
|
-
declare const $: arktype0.Scope<{
|
|
17
|
-
string: arktype0.Submodule<{
|
|
18
|
-
trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
|
|
19
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
20
|
-
}>;
|
|
21
|
-
normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
|
|
22
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
23
|
-
}>;
|
|
24
|
-
root: string;
|
|
25
|
-
alpha: string;
|
|
26
|
-
alphanumeric: string;
|
|
27
|
-
hex: string;
|
|
28
|
-
base64: arktype0.Submodule<{
|
|
29
|
-
root: string;
|
|
30
|
-
url: string;
|
|
31
|
-
} & {
|
|
32
|
-
" arkInferred": string;
|
|
33
|
-
}>;
|
|
34
|
-
capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
|
|
35
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
36
|
-
}>;
|
|
37
|
-
creditCard: string;
|
|
38
|
-
date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
|
|
39
|
-
" arkInferred": string;
|
|
40
|
-
}>;
|
|
41
|
-
digits: string;
|
|
42
|
-
email: string;
|
|
43
|
-
integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
|
|
44
|
-
" arkInferred": string;
|
|
45
|
-
}>;
|
|
46
|
-
ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
|
|
47
|
-
" arkInferred": string;
|
|
48
|
-
}>;
|
|
49
|
-
json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
|
|
50
|
-
" arkInferred": string;
|
|
51
|
-
}>;
|
|
52
|
-
lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
|
|
53
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
54
|
-
}>;
|
|
55
|
-
numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
|
|
56
|
-
" arkInferred": string;
|
|
57
|
-
}>;
|
|
58
|
-
regex: string;
|
|
59
|
-
semver: string;
|
|
60
|
-
upper: arktype0.Submodule<{
|
|
61
|
-
root: (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
62
|
-
preformatted: string;
|
|
63
|
-
} & {
|
|
64
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
65
|
-
}>;
|
|
66
|
-
url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
|
|
67
|
-
" arkInferred": string;
|
|
68
|
-
}>;
|
|
69
|
-
uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
|
|
70
|
-
" arkInferred": string;
|
|
71
|
-
}>;
|
|
72
|
-
" arkInferred": string;
|
|
73
|
-
host: string;
|
|
74
|
-
}>;
|
|
75
|
-
number: arktype0.Submodule<{
|
|
76
|
-
NaN: number;
|
|
77
|
-
Infinity: number;
|
|
78
|
-
root: number;
|
|
79
|
-
integer: number;
|
|
80
|
-
" arkInferred": number;
|
|
81
|
-
epoch: number;
|
|
82
|
-
safe: number;
|
|
83
|
-
NegativeInfinity: number;
|
|
84
|
-
port: number;
|
|
85
|
-
}>;
|
|
86
|
-
}>;
|
|
87
|
-
type $ = (typeof $)["t"];
|
|
88
|
-
//#endregion
|
|
89
|
-
//#endregion
|
|
90
|
-
//#region ../internal/types/dist/infer-type.d.ts
|
|
91
|
-
/**
|
|
92
|
-
* Extract the inferred type from an ArkType type definition by checking its call signature.
|
|
93
|
-
* When a type definition is called, it returns either the validated value or type.errors.
|
|
94
|
-
*
|
|
95
|
-
* @template T - The ArkType type definition to infer from
|
|
96
|
-
*/
|
|
97
|
-
type InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type$1.errors ? never : R : T extends type$1.Any<infer U, infer _Scope> ? U : never;
|
|
98
|
-
//#endregion
|
|
99
|
-
//#region ../internal/types/dist/schema.d.ts
|
|
100
|
-
declare const SchemaShape: arktype_internal_variants_object_ts0.ObjectType<{
|
|
101
|
-
[x: string]: unknown;
|
|
102
|
-
}, {}>;
|
|
103
|
-
type SchemaShape = typeof SchemaShape.infer;
|
|
104
|
-
type EnvSchemaWithType = Type<SchemaShape, $>;
|
|
105
|
-
//#endregion
|
|
106
|
-
//#region src/utils/coerce.d.ts
|
|
107
|
-
/**
|
|
108
|
-
* Options for coercion behavior.
|
|
109
|
-
*/
|
|
110
|
-
type CoerceOptions = {
|
|
111
|
-
/**
|
|
112
|
-
* format to use for array parsing
|
|
113
|
-
* @default "comma"
|
|
114
|
-
*/
|
|
115
|
-
arrayFormat?: "comma" | "json";
|
|
116
|
-
};
|
|
117
|
-
//#endregion
|
|
118
|
-
//#region src/create-env.d.ts
|
|
119
|
-
type EnvSchema<def$1> = type$1.validate<def$1, $>;
|
|
120
|
-
type RuntimeEnvironment = Record<string, string | undefined>;
|
|
121
|
-
/**
|
|
122
|
-
* Configuration options for `createEnv`
|
|
123
|
-
*/
|
|
124
|
-
type ArkEnvConfig = {
|
|
125
|
-
/**
|
|
126
|
-
* The environment variables to validate. Defaults to `process.env`
|
|
127
|
-
*/
|
|
128
|
-
env?: RuntimeEnvironment;
|
|
129
|
-
/**
|
|
130
|
-
* Whether to coerce environment variables to their defined types. Defaults to `true`
|
|
131
|
-
*/
|
|
132
|
-
coerce?: boolean;
|
|
133
|
-
/**
|
|
134
|
-
* Control how ArkEnv handles environment variables that are not defined in your schema.
|
|
135
|
-
*
|
|
136
|
-
* Defaults to `'delete'` to ensure your output object only contains
|
|
137
|
-
* keys you've explicitly declared. This differs from ArkType's standard behavior, which
|
|
138
|
-
* mirrors TypeScript by defaulting to `'ignore'`.
|
|
139
|
-
*
|
|
140
|
-
* - `delete` (ArkEnv default): Undeclared keys are allowed on input but stripped from the output.
|
|
141
|
-
* - `ignore` (ArkType default): Undeclared keys are allowed and preserved in the output.
|
|
142
|
-
* - `reject`: Undeclared keys will cause validation to fail.
|
|
143
|
-
*
|
|
144
|
-
* @default "delete"
|
|
145
|
-
* @see https://arktype.io/docs/configuration#onundeclaredkey
|
|
146
|
-
*/
|
|
147
|
-
onUndeclaredKey?: "ignore" | "delete" | "reject";
|
|
148
|
-
/**
|
|
149
|
-
* The format to use for array parsing when coercion is enabled.
|
|
150
|
-
*
|
|
151
|
-
* - `comma` (default): Strings are split by comma and trimmed.
|
|
152
|
-
* - `json`: Strings are parsed as JSON.
|
|
153
|
-
*
|
|
154
|
-
* @default "comma"
|
|
155
|
-
*/
|
|
156
|
-
arrayFormat?: CoerceOptions["arrayFormat"];
|
|
4
|
+
//#region src/errors.d.ts
|
|
5
|
+
type InternalValidationError = {
|
|
6
|
+
path: string;
|
|
7
|
+
message: string;
|
|
157
8
|
};
|
|
158
9
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
10
|
+
* Error thrown when environment variable validation fails.
|
|
11
|
+
*
|
|
12
|
+
* This error extends the native `Error` class and provides formatted error messages
|
|
13
|
+
* that clearly indicate which environment variables are invalid and why.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { createEnv, ArkEnvError } from 'arkenv';
|
|
18
|
+
*
|
|
19
|
+
* try {
|
|
20
|
+
* const env = createEnv({
|
|
21
|
+
* PORT: 'number.port',
|
|
22
|
+
* HOST: 'string.host',
|
|
23
|
+
* });
|
|
24
|
+
* } catch (error) {
|
|
25
|
+
* if (error instanceof ArkEnvError) {
|
|
26
|
+
* console.error('Environment validation failed:', error.message);
|
|
27
|
+
* }
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
169
30
|
*/
|
|
170
|
-
declare function createEnv<const T extends SchemaShape>(def: EnvSchema<T>, config?: ArkEnvConfig): distill.Out<type$1.infer<T, $>>;
|
|
171
|
-
declare function createEnv<T extends EnvSchemaWithType>(def: T, config?: ArkEnvConfig): InferType<T>;
|
|
172
|
-
declare function createEnv<const T extends SchemaShape>(def: EnvSchema<T> | EnvSchemaWithType, config?: ArkEnvConfig): distill.Out<type$1.infer<T, $>> | InferType<typeof def>;
|
|
173
|
-
//#endregion
|
|
174
|
-
//#region src/type.d.ts
|
|
175
|
-
declare const type: arktype_internal_type_ts0.TypeParser<{
|
|
176
|
-
string: arktype0.Submodule<{
|
|
177
|
-
trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
|
|
178
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
179
|
-
}>;
|
|
180
|
-
normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
|
|
181
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
182
|
-
}>;
|
|
183
|
-
root: string;
|
|
184
|
-
alpha: string;
|
|
185
|
-
alphanumeric: string;
|
|
186
|
-
hex: string;
|
|
187
|
-
base64: arktype0.Submodule<{
|
|
188
|
-
root: string;
|
|
189
|
-
url: string;
|
|
190
|
-
} & {
|
|
191
|
-
" arkInferred": string;
|
|
192
|
-
}>;
|
|
193
|
-
capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
|
|
194
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
195
|
-
}>;
|
|
196
|
-
creditCard: string;
|
|
197
|
-
date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
|
|
198
|
-
" arkInferred": string;
|
|
199
|
-
}>;
|
|
200
|
-
digits: string;
|
|
201
|
-
email: string;
|
|
202
|
-
integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
|
|
203
|
-
" arkInferred": string;
|
|
204
|
-
}>;
|
|
205
|
-
ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
|
|
206
|
-
" arkInferred": string;
|
|
207
|
-
}>;
|
|
208
|
-
json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
|
|
209
|
-
" arkInferred": string;
|
|
210
|
-
}>;
|
|
211
|
-
lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
|
|
212
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
213
|
-
}>;
|
|
214
|
-
numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
|
|
215
|
-
" arkInferred": string;
|
|
216
|
-
}>;
|
|
217
|
-
regex: string;
|
|
218
|
-
semver: string;
|
|
219
|
-
upper: arktype0.Submodule<{
|
|
220
|
-
root: (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
221
|
-
preformatted: string;
|
|
222
|
-
} & {
|
|
223
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
224
|
-
}>;
|
|
225
|
-
url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
|
|
226
|
-
" arkInferred": string;
|
|
227
|
-
}>;
|
|
228
|
-
uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
|
|
229
|
-
" arkInferred": string;
|
|
230
|
-
}>;
|
|
231
|
-
" arkInferred": string;
|
|
232
|
-
host: string;
|
|
233
|
-
}>;
|
|
234
|
-
number: arktype0.Submodule<{
|
|
235
|
-
NaN: number;
|
|
236
|
-
Infinity: number;
|
|
237
|
-
root: number;
|
|
238
|
-
integer: number;
|
|
239
|
-
" arkInferred": number;
|
|
240
|
-
epoch: number;
|
|
241
|
-
safe: number;
|
|
242
|
-
NegativeInfinity: number;
|
|
243
|
-
port: number;
|
|
244
|
-
}>;
|
|
245
|
-
}>;
|
|
246
|
-
//#endregion
|
|
247
|
-
//#region src/errors.d.ts
|
|
248
31
|
declare class ArkEnvError extends Error {
|
|
249
|
-
constructor(errors: ArkErrors, message?: string);
|
|
32
|
+
constructor(errors: ArkErrors | InternalValidationError[], message?: string);
|
|
250
33
|
}
|
|
251
34
|
//#endregion
|
|
252
35
|
//#region src/index.d.ts
|
|
253
36
|
/**
|
|
254
|
-
*
|
|
37
|
+
* ArkEnv's main export, an alias for {@link createEnv}
|
|
255
38
|
*
|
|
256
39
|
* {@link https://arkenv.js.org | ArkEnv} is a typesafe environment variables validator from editor to runtime.
|
|
257
40
|
*/
|
|
258
41
|
declare const arkenv: typeof createEnv;
|
|
259
42
|
//#endregion
|
|
260
|
-
export { ArkEnvError, type EnvSchema, createEnv, arkenv as default
|
|
43
|
+
export { type ArkEnvConfig, ArkEnvError, type EnvSchema, createEnv, arkenv as default };
|
|
261
44
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;KAIY,uBAAA;;;AAAZ,CAAA;;ACA0C;;;;;;;;;;;;;;;;;;;;;cDyF7B,WAAA,SAAoB,KAAA;sBAEvB,YAAY;;;;AA3FtB;AAyFA;;;;cClFM,MDkFgC,EAAA,OClF1B,SDkF0B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,261 +1,44 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ArkErrors
|
|
3
|
-
import * as arktype_internal_keywords_string_ts0 from "arktype/internal/keywords/string.ts";
|
|
4
|
-
import * as arktype_internal_attributes_ts0 from "arktype/internal/attributes.ts";
|
|
5
|
-
import * as arktype_internal_variants_object_ts0 from "arktype/internal/variants/object.ts";
|
|
6
|
-
import * as arktype_internal_type_ts0 from "arktype/internal/type.ts";
|
|
1
|
+
import { n as EnvSchema, r as createEnv, t as ArkEnvConfig } from "./create-env-CFw1N3G1.js";
|
|
2
|
+
import { ArkErrors } from "arktype";
|
|
7
3
|
|
|
8
|
-
//#region
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* The root scope for the ArkEnv library,
|
|
13
|
-
* containing extensions to the ArkType scopes with ArkEnv-specific types
|
|
14
|
-
* like `string.host` and `number.port`.
|
|
15
|
-
*/
|
|
16
|
-
declare const $: arktype0.Scope<{
|
|
17
|
-
string: arktype0.Submodule<{
|
|
18
|
-
trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
|
|
19
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
20
|
-
}>;
|
|
21
|
-
normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
|
|
22
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
23
|
-
}>;
|
|
24
|
-
root: string;
|
|
25
|
-
alpha: string;
|
|
26
|
-
alphanumeric: string;
|
|
27
|
-
hex: string;
|
|
28
|
-
base64: arktype0.Submodule<{
|
|
29
|
-
root: string;
|
|
30
|
-
url: string;
|
|
31
|
-
} & {
|
|
32
|
-
" arkInferred": string;
|
|
33
|
-
}>;
|
|
34
|
-
capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
|
|
35
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
36
|
-
}>;
|
|
37
|
-
creditCard: string;
|
|
38
|
-
date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
|
|
39
|
-
" arkInferred": string;
|
|
40
|
-
}>;
|
|
41
|
-
digits: string;
|
|
42
|
-
email: string;
|
|
43
|
-
integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
|
|
44
|
-
" arkInferred": string;
|
|
45
|
-
}>;
|
|
46
|
-
ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
|
|
47
|
-
" arkInferred": string;
|
|
48
|
-
}>;
|
|
49
|
-
json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
|
|
50
|
-
" arkInferred": string;
|
|
51
|
-
}>;
|
|
52
|
-
lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
|
|
53
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
54
|
-
}>;
|
|
55
|
-
numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
|
|
56
|
-
" arkInferred": string;
|
|
57
|
-
}>;
|
|
58
|
-
regex: string;
|
|
59
|
-
semver: string;
|
|
60
|
-
upper: arktype0.Submodule<{
|
|
61
|
-
root: (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
62
|
-
preformatted: string;
|
|
63
|
-
} & {
|
|
64
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
65
|
-
}>;
|
|
66
|
-
url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
|
|
67
|
-
" arkInferred": string;
|
|
68
|
-
}>;
|
|
69
|
-
uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
|
|
70
|
-
" arkInferred": string;
|
|
71
|
-
}>;
|
|
72
|
-
" arkInferred": string;
|
|
73
|
-
host: string;
|
|
74
|
-
}>;
|
|
75
|
-
number: arktype0.Submodule<{
|
|
76
|
-
NaN: number;
|
|
77
|
-
Infinity: number;
|
|
78
|
-
root: number;
|
|
79
|
-
integer: number;
|
|
80
|
-
" arkInferred": number;
|
|
81
|
-
epoch: number;
|
|
82
|
-
safe: number;
|
|
83
|
-
NegativeInfinity: number;
|
|
84
|
-
port: number;
|
|
85
|
-
}>;
|
|
86
|
-
}>;
|
|
87
|
-
type $ = (typeof $)["t"];
|
|
88
|
-
//#endregion
|
|
89
|
-
//#endregion
|
|
90
|
-
//#region ../internal/types/dist/infer-type.d.ts
|
|
91
|
-
/**
|
|
92
|
-
* Extract the inferred type from an ArkType type definition by checking its call signature.
|
|
93
|
-
* When a type definition is called, it returns either the validated value or type.errors.
|
|
94
|
-
*
|
|
95
|
-
* @template T - The ArkType type definition to infer from
|
|
96
|
-
*/
|
|
97
|
-
type InferType<T> = T extends ((value: Record<string, string | undefined>) => infer R) ? R extends type$1.errors ? never : R : T extends type$1.Any<infer U, infer _Scope> ? U : never;
|
|
98
|
-
//#endregion
|
|
99
|
-
//#region ../internal/types/dist/schema.d.ts
|
|
100
|
-
declare const SchemaShape: arktype_internal_variants_object_ts0.ObjectType<{
|
|
101
|
-
[x: string]: unknown;
|
|
102
|
-
}, {}>;
|
|
103
|
-
type SchemaShape = typeof SchemaShape.infer;
|
|
104
|
-
type EnvSchemaWithType = Type<SchemaShape, $>;
|
|
105
|
-
//#endregion
|
|
106
|
-
//#region src/utils/coerce.d.ts
|
|
107
|
-
/**
|
|
108
|
-
* Options for coercion behavior.
|
|
109
|
-
*/
|
|
110
|
-
type CoerceOptions = {
|
|
111
|
-
/**
|
|
112
|
-
* format to use for array parsing
|
|
113
|
-
* @default "comma"
|
|
114
|
-
*/
|
|
115
|
-
arrayFormat?: "comma" | "json";
|
|
116
|
-
};
|
|
117
|
-
//#endregion
|
|
118
|
-
//#region src/create-env.d.ts
|
|
119
|
-
type EnvSchema<def$1> = type$1.validate<def$1, $>;
|
|
120
|
-
type RuntimeEnvironment = Record<string, string | undefined>;
|
|
121
|
-
/**
|
|
122
|
-
* Configuration options for `createEnv`
|
|
123
|
-
*/
|
|
124
|
-
type ArkEnvConfig = {
|
|
125
|
-
/**
|
|
126
|
-
* The environment variables to validate. Defaults to `process.env`
|
|
127
|
-
*/
|
|
128
|
-
env?: RuntimeEnvironment;
|
|
129
|
-
/**
|
|
130
|
-
* Whether to coerce environment variables to their defined types. Defaults to `true`
|
|
131
|
-
*/
|
|
132
|
-
coerce?: boolean;
|
|
133
|
-
/**
|
|
134
|
-
* Control how ArkEnv handles environment variables that are not defined in your schema.
|
|
135
|
-
*
|
|
136
|
-
* Defaults to `'delete'` to ensure your output object only contains
|
|
137
|
-
* keys you've explicitly declared. This differs from ArkType's standard behavior, which
|
|
138
|
-
* mirrors TypeScript by defaulting to `'ignore'`.
|
|
139
|
-
*
|
|
140
|
-
* - `delete` (ArkEnv default): Undeclared keys are allowed on input but stripped from the output.
|
|
141
|
-
* - `ignore` (ArkType default): Undeclared keys are allowed and preserved in the output.
|
|
142
|
-
* - `reject`: Undeclared keys will cause validation to fail.
|
|
143
|
-
*
|
|
144
|
-
* @default "delete"
|
|
145
|
-
* @see https://arktype.io/docs/configuration#onundeclaredkey
|
|
146
|
-
*/
|
|
147
|
-
onUndeclaredKey?: "ignore" | "delete" | "reject";
|
|
148
|
-
/**
|
|
149
|
-
* The format to use for array parsing when coercion is enabled.
|
|
150
|
-
*
|
|
151
|
-
* - `comma` (default): Strings are split by comma and trimmed.
|
|
152
|
-
* - `json`: Strings are parsed as JSON.
|
|
153
|
-
*
|
|
154
|
-
* @default "comma"
|
|
155
|
-
*/
|
|
156
|
-
arrayFormat?: CoerceOptions["arrayFormat"];
|
|
4
|
+
//#region src/errors.d.ts
|
|
5
|
+
type InternalValidationError = {
|
|
6
|
+
path: string;
|
|
7
|
+
message: string;
|
|
157
8
|
};
|
|
158
9
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
10
|
+
* Error thrown when environment variable validation fails.
|
|
11
|
+
*
|
|
12
|
+
* This error extends the native `Error` class and provides formatted error messages
|
|
13
|
+
* that clearly indicate which environment variables are invalid and why.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { createEnv, ArkEnvError } from 'arkenv';
|
|
18
|
+
*
|
|
19
|
+
* try {
|
|
20
|
+
* const env = createEnv({
|
|
21
|
+
* PORT: 'number.port',
|
|
22
|
+
* HOST: 'string.host',
|
|
23
|
+
* });
|
|
24
|
+
* } catch (error) {
|
|
25
|
+
* if (error instanceof ArkEnvError) {
|
|
26
|
+
* console.error('Environment validation failed:', error.message);
|
|
27
|
+
* }
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
169
30
|
*/
|
|
170
|
-
declare function createEnv<const T extends SchemaShape>(def: EnvSchema<T>, config?: ArkEnvConfig): distill.Out<type$1.infer<T, $>>;
|
|
171
|
-
declare function createEnv<T extends EnvSchemaWithType>(def: T, config?: ArkEnvConfig): InferType<T>;
|
|
172
|
-
declare function createEnv<const T extends SchemaShape>(def: EnvSchema<T> | EnvSchemaWithType, config?: ArkEnvConfig): distill.Out<type$1.infer<T, $>> | InferType<typeof def>;
|
|
173
|
-
//#endregion
|
|
174
|
-
//#region src/type.d.ts
|
|
175
|
-
declare const type: arktype_internal_type_ts0.TypeParser<{
|
|
176
|
-
string: arktype0.Submodule<{
|
|
177
|
-
trim: arktype0.Submodule<arktype_internal_keywords_string_ts0.trim.$ & {
|
|
178
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
179
|
-
}>;
|
|
180
|
-
normalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.normalize.$ & {
|
|
181
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
182
|
-
}>;
|
|
183
|
-
root: string;
|
|
184
|
-
alpha: string;
|
|
185
|
-
alphanumeric: string;
|
|
186
|
-
hex: string;
|
|
187
|
-
base64: arktype0.Submodule<{
|
|
188
|
-
root: string;
|
|
189
|
-
url: string;
|
|
190
|
-
} & {
|
|
191
|
-
" arkInferred": string;
|
|
192
|
-
}>;
|
|
193
|
-
capitalize: arktype0.Submodule<arktype_internal_keywords_string_ts0.capitalize.$ & {
|
|
194
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
195
|
-
}>;
|
|
196
|
-
creditCard: string;
|
|
197
|
-
date: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringDate.$ & {
|
|
198
|
-
" arkInferred": string;
|
|
199
|
-
}>;
|
|
200
|
-
digits: string;
|
|
201
|
-
email: string;
|
|
202
|
-
integer: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringInteger.$ & {
|
|
203
|
-
" arkInferred": string;
|
|
204
|
-
}>;
|
|
205
|
-
ip: arktype0.Submodule<arktype_internal_keywords_string_ts0.ip.$ & {
|
|
206
|
-
" arkInferred": string;
|
|
207
|
-
}>;
|
|
208
|
-
json: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringJson.$ & {
|
|
209
|
-
" arkInferred": string;
|
|
210
|
-
}>;
|
|
211
|
-
lower: arktype0.Submodule<arktype_internal_keywords_string_ts0.lower.$ & {
|
|
212
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
213
|
-
}>;
|
|
214
|
-
numeric: arktype0.Submodule<arktype_internal_keywords_string_ts0.stringNumeric.$ & {
|
|
215
|
-
" arkInferred": string;
|
|
216
|
-
}>;
|
|
217
|
-
regex: string;
|
|
218
|
-
semver: string;
|
|
219
|
-
upper: arktype0.Submodule<{
|
|
220
|
-
root: (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
221
|
-
preformatted: string;
|
|
222
|
-
} & {
|
|
223
|
-
" arkInferred": (In: string) => arktype_internal_attributes_ts0.To<string>;
|
|
224
|
-
}>;
|
|
225
|
-
url: arktype0.Submodule<arktype_internal_keywords_string_ts0.url.$ & {
|
|
226
|
-
" arkInferred": string;
|
|
227
|
-
}>;
|
|
228
|
-
uuid: arktype0.Submodule<arktype_internal_keywords_string_ts0.uuid.$ & {
|
|
229
|
-
" arkInferred": string;
|
|
230
|
-
}>;
|
|
231
|
-
" arkInferred": string;
|
|
232
|
-
host: string;
|
|
233
|
-
}>;
|
|
234
|
-
number: arktype0.Submodule<{
|
|
235
|
-
NaN: number;
|
|
236
|
-
Infinity: number;
|
|
237
|
-
root: number;
|
|
238
|
-
integer: number;
|
|
239
|
-
" arkInferred": number;
|
|
240
|
-
epoch: number;
|
|
241
|
-
safe: number;
|
|
242
|
-
NegativeInfinity: number;
|
|
243
|
-
port: number;
|
|
244
|
-
}>;
|
|
245
|
-
}>;
|
|
246
|
-
//#endregion
|
|
247
|
-
//#region src/errors.d.ts
|
|
248
31
|
declare class ArkEnvError extends Error {
|
|
249
|
-
constructor(errors: ArkErrors, message?: string);
|
|
32
|
+
constructor(errors: ArkErrors | InternalValidationError[], message?: string);
|
|
250
33
|
}
|
|
251
34
|
//#endregion
|
|
252
35
|
//#region src/index.d.ts
|
|
253
36
|
/**
|
|
254
|
-
*
|
|
37
|
+
* ArkEnv's main export, an alias for {@link createEnv}
|
|
255
38
|
*
|
|
256
39
|
* {@link https://arkenv.js.org | ArkEnv} is a typesafe environment variables validator from editor to runtime.
|
|
257
40
|
*/
|
|
258
41
|
declare const arkenv: typeof createEnv;
|
|
259
42
|
//#endregion
|
|
260
|
-
export { ArkEnvError, type EnvSchema, createEnv, arkenv as default
|
|
43
|
+
export { type ArkEnvConfig, ArkEnvError, type EnvSchema, createEnv, arkenv as default };
|
|
261
44
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;KAIY,uBAAA;;;AAAZ,CAAA;;ACA0C;;;;;;;;;;;;;;;;;;;;;cDyF7B,WAAA,SAAoB,KAAA;sBAEvB,YAAY;;;;AA3FtB;AAyFA;;;;cClFM,MDkFgC,EAAA,OClF1B,SDkF0B"}
|