@tmrp/env 0.1.0-alpha.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/LICENSE +21 -0
- package/README.md +517 -0
- package/dist/create-env.d.ts +31 -0
- package/dist/create-env.d.ts.map +1 -0
- package/dist/create-env.js +35 -0
- package/dist/create-env.js.map +1 -0
- package/dist/effects/create-env-effect.d.ts +4 -0
- package/dist/effects/create-env-effect.d.ts.map +1 -0
- package/dist/effects/create-env-effect.js +8 -0
- package/dist/effects/create-env-effect.js.map +1 -0
- package/dist/effects/env-parse-value-effect.d.ts +4 -0
- package/dist/effects/env-parse-value-effect.d.ts.map +1 -0
- package/dist/effects/env-parse-value-effect.js +8 -0
- package/dist/effects/env-parse-value-effect.js.map +1 -0
- package/dist/effects/env-read-value-effect.d.ts +6 -0
- package/dist/effects/env-read-value-effect.d.ts.map +1 -0
- package/dist/effects/env-read-value-effect.js +3 -0
- package/dist/effects/env-read-value-effect.js.map +1 -0
- package/dist/effects/get-runtime-global-scope-effect.d.ts +26 -0
- package/dist/effects/get-runtime-global-scope-effect.d.ts.map +1 -0
- package/dist/effects/get-runtime-global-scope-effect.js +13 -0
- package/dist/effects/get-runtime-global-scope-effect.js.map +1 -0
- package/dist/effects/read-env-effect.d.ts +5 -0
- package/dist/effects/read-env-effect.d.ts.map +1 -0
- package/dist/effects/read-env-effect.js +42 -0
- package/dist/effects/read-env-effect.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/read-env.d.ts +18 -0
- package/dist/lib/read-env.d.ts.map +1 -0
- package/dist/lib/read-env.js +65 -0
- package/dist/lib/read-env.js.map +1 -0
- package/dist/lib/schema.d.ts +26 -0
- package/dist/lib/schema.d.ts.map +1 -0
- package/dist/lib/schema.js +22 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/types.d.ts +7 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/runtime/browser/create-browser-env.d.ts +26 -0
- package/dist/runtime/browser/create-browser-env.d.ts.map +1 -0
- package/dist/runtime/browser/create-browser-env.js +28 -0
- package/dist/runtime/browser/create-browser-env.js.map +1 -0
- package/dist/runtime/browser/lib/read-browser-env.d.ts +2 -0
- package/dist/runtime/browser/lib/read-browser-env.d.ts.map +1 -0
- package/dist/runtime/browser/lib/read-browser-env.js +15 -0
- package/dist/runtime/browser/lib/read-browser-env.js.map +1 -0
- package/dist/runtime/browser/lib/schema.d.ts +6 -0
- package/dist/runtime/browser/lib/schema.d.ts.map +1 -0
- package/dist/runtime/browser/lib/schema.js +7 -0
- package/dist/runtime/browser/lib/schema.js.map +1 -0
- package/dist/runtime/bun/create-bun-env.d.ts +24 -0
- package/dist/runtime/bun/create-bun-env.d.ts.map +1 -0
- package/dist/runtime/bun/create-bun-env.js +28 -0
- package/dist/runtime/bun/create-bun-env.js.map +1 -0
- package/dist/runtime/bun/lib/read-bun-env.d.ts +2 -0
- package/dist/runtime/bun/lib/read-bun-env.d.ts.map +1 -0
- package/dist/runtime/bun/lib/read-bun-env.js +14 -0
- package/dist/runtime/bun/lib/read-bun-env.js.map +1 -0
- package/dist/runtime/bun/lib/schema.d.ts +7 -0
- package/dist/runtime/bun/lib/schema.d.ts.map +1 -0
- package/dist/runtime/bun/lib/schema.js +9 -0
- package/dist/runtime/bun/lib/schema.js.map +1 -0
- package/dist/runtime/cloudflare/create-cloudflare-env.d.ts +32 -0
- package/dist/runtime/cloudflare/create-cloudflare-env.d.ts.map +1 -0
- package/dist/runtime/cloudflare/create-cloudflare-env.js +34 -0
- package/dist/runtime/cloudflare/create-cloudflare-env.js.map +1 -0
- package/dist/runtime/cloudflare/lib/read-cloudflare-env.d.ts +2 -0
- package/dist/runtime/cloudflare/lib/read-cloudflare-env.d.ts.map +1 -0
- package/dist/runtime/cloudflare/lib/read-cloudflare-env.js +14 -0
- package/dist/runtime/cloudflare/lib/read-cloudflare-env.js.map +1 -0
- package/dist/runtime/cloudflare/lib/schema.d.ts +5 -0
- package/dist/runtime/cloudflare/lib/schema.d.ts.map +1 -0
- package/dist/runtime/cloudflare/lib/schema.js +6 -0
- package/dist/runtime/cloudflare/lib/schema.js.map +1 -0
- package/dist/runtime/deno/create-deno-env.d.ts +23 -0
- package/dist/runtime/deno/create-deno-env.d.ts.map +1 -0
- package/dist/runtime/deno/create-deno-env.js +27 -0
- package/dist/runtime/deno/create-deno-env.js.map +1 -0
- package/dist/runtime/deno/lib/read-deno-env.d.ts +2 -0
- package/dist/runtime/deno/lib/read-deno-env.d.ts.map +1 -0
- package/dist/runtime/deno/lib/read-deno-env.js +13 -0
- package/dist/runtime/deno/lib/read-deno-env.js.map +1 -0
- package/dist/runtime/deno/lib/schema.d.ts +9 -0
- package/dist/runtime/deno/lib/schema.d.ts.map +1 -0
- package/dist/runtime/deno/lib/schema.js +14 -0
- package/dist/runtime/deno/lib/schema.js.map +1 -0
- package/dist/runtime/import-meta/create-import-meta-env.d.ts +28 -0
- package/dist/runtime/import-meta/create-import-meta-env.d.ts.map +1 -0
- package/dist/runtime/import-meta/create-import-meta-env.js +30 -0
- package/dist/runtime/import-meta/create-import-meta-env.js.map +1 -0
- package/dist/runtime/import-meta/lib/read-import-meta-env.d.ts +2 -0
- package/dist/runtime/import-meta/lib/read-import-meta-env.d.ts.map +1 -0
- package/dist/runtime/import-meta/lib/read-import-meta-env.js +14 -0
- package/dist/runtime/import-meta/lib/read-import-meta-env.js.map +1 -0
- package/dist/runtime/import-meta/lib/schema.d.ts +5 -0
- package/dist/runtime/import-meta/lib/schema.d.ts.map +1 -0
- package/dist/runtime/import-meta/lib/schema.js +6 -0
- package/dist/runtime/import-meta/lib/schema.js.map +1 -0
- package/dist/runtime/netlify/create-netlify-env.d.ts +25 -0
- package/dist/runtime/netlify/create-netlify-env.d.ts.map +1 -0
- package/dist/runtime/netlify/create-netlify-env.js +27 -0
- package/dist/runtime/netlify/create-netlify-env.js.map +1 -0
- package/dist/runtime/netlify/lib/read-netlify-env.d.ts +2 -0
- package/dist/runtime/netlify/lib/read-netlify-env.d.ts.map +1 -0
- package/dist/runtime/netlify/lib/read-netlify-env.js +14 -0
- package/dist/runtime/netlify/lib/read-netlify-env.js.map +1 -0
- package/dist/runtime/netlify/lib/schema.d.ts +9 -0
- package/dist/runtime/netlify/lib/schema.d.ts.map +1 -0
- package/dist/runtime/netlify/lib/schema.js +13 -0
- package/dist/runtime/netlify/lib/schema.js.map +1 -0
- package/dist/runtime/node/create-node-env.d.ts +27 -0
- package/dist/runtime/node/create-node-env.d.ts.map +1 -0
- package/dist/runtime/node/create-node-env.js +31 -0
- package/dist/runtime/node/create-node-env.js.map +1 -0
- package/dist/runtime/node/lib/read-node-env.d.ts +2 -0
- package/dist/runtime/node/lib/read-node-env.d.ts.map +1 -0
- package/dist/runtime/node/lib/read-node-env.js +13 -0
- package/dist/runtime/node/lib/read-node-env.js.map +1 -0
- package/dist/runtime/node/lib/schema.d.ts +7 -0
- package/dist/runtime/node/lib/schema.d.ts.map +1 -0
- package/dist/runtime/node/lib/schema.js +9 -0
- package/dist/runtime/node/lib/schema.js.map +1 -0
- package/dist/runtime/record/create-record-env.d.ts +29 -0
- package/dist/runtime/record/create-record-env.d.ts.map +1 -0
- package/dist/runtime/record/create-record-env.js +35 -0
- package/dist/runtime/record/create-record-env.js.map +1 -0
- package/dist/runtime/record/lib/read-record-env.d.ts +3 -0
- package/dist/runtime/record/lib/read-record-env.d.ts.map +1 -0
- package/dist/runtime/record/lib/read-record-env.js +8 -0
- package/dist/runtime/record/lib/read-record-env.js.map +1 -0
- package/dist/runtime/record/lib/schema.d.ts +3 -0
- package/dist/runtime/record/lib/schema.d.ts.map +1 -0
- package/dist/runtime/record/lib/schema.js +3 -0
- package/dist/runtime/record/lib/schema.js.map +1 -0
- package/dist/runtime/vercel/create-vercel-edge-env.d.ts +26 -0
- package/dist/runtime/vercel/create-vercel-edge-env.d.ts.map +1 -0
- package/dist/runtime/vercel/create-vercel-edge-env.js +28 -0
- package/dist/runtime/vercel/create-vercel-edge-env.js.map +1 -0
- package/dist/runtime/vercel/lib/read-vercel-edge-env.d.ts +2 -0
- package/dist/runtime/vercel/lib/read-vercel-edge-env.d.ts.map +1 -0
- package/dist/runtime/vercel/lib/read-vercel-edge-env.js +14 -0
- package/dist/runtime/vercel/lib/read-vercel-edge-env.js.map +1 -0
- package/dist/runtime/vercel/lib/schema.d.ts +5 -0
- package/dist/runtime/vercel/lib/schema.d.ts.map +1 -0
- package/dist/runtime/vercel/lib/schema.js +5 -0
- package/dist/runtime/vercel/lib/schema.js.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { readRecordEnv } from "../../record/lib/read-record-env.js";
|
|
2
|
+
import { CloudflareRuntimeGlobalsSchema } from "./schema.js";
|
|
3
|
+
export const readCloudflareEnv = (env) => {
|
|
4
|
+
const cloudflareGlobalScope = CloudflareRuntimeGlobalsSchema.safeParse(globalThis);
|
|
5
|
+
if (!cloudflareGlobalScope.success) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const cloudflareRuntimeGlobals = cloudflareGlobalScope.data;
|
|
9
|
+
if (!cloudflareRuntimeGlobals.__CLOUDFLARE_ENV__) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return readRecordEnv(env, cloudflareRuntimeGlobals.__CLOUDFLARE_ENV__);
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=read-cloudflare-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-cloudflare-env.js","sourceRoot":"","sources":["../../../../src/runtime/cloudflare/lib/read-cloudflare-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC/C,MAAM,qBAAqB,GACzB,8BAA8B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEvD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IAE5D,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;AACzE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/runtime/cloudflare/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAIpB,eAAO,MAAM,8BAA8B;;mBAEzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/runtime/cloudflare/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,kBAAkB,EAAE,eAAe,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EnvKeys } from "../../lib/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a typed environment object from Deno's `Deno.env.get`.
|
|
4
|
+
*
|
|
5
|
+
* Use this entry point when your application is expected to run in Deno. Deno
|
|
6
|
+
* requires env access permission, such as `--allow-env`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createDenoEnv } from "@tmrp/env/deno";
|
|
11
|
+
* import z from "zod";
|
|
12
|
+
*
|
|
13
|
+
* const env = createDenoEnv({
|
|
14
|
+
* API_TOKEN: z.string().min(1),
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
19
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
20
|
+
* @throws When a configured variable is missing or fails validation.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createDenoEnv<const TEnvKeys extends EnvKeys>(envKeys: TEnvKeys): import("../../lib/types.js").Env<TEnvKeys>;
|
|
23
|
+
//# sourceMappingURL=create-deno-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-deno-env.d.ts","sourceRoot":"","sources":["../../../src/runtime/deno/create-deno-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMlD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,EAC1D,OAAO,EAAE,QAAQ,8CAGlB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createEnvEffect } from "../../effects/create-env-effect.js";
|
|
2
|
+
import { readEnvEffect } from "../../effects/read-env-effect.js";
|
|
3
|
+
import { DenoRuntimeGlobalsSchema } from "./lib/schema.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a typed environment object from Deno's `Deno.env.get`.
|
|
6
|
+
*
|
|
7
|
+
* Use this entry point when your application is expected to run in Deno. Deno
|
|
8
|
+
* requires env access permission, such as `--allow-env`.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { createDenoEnv } from "@tmrp/env/deno";
|
|
13
|
+
* import z from "zod";
|
|
14
|
+
*
|
|
15
|
+
* const env = createDenoEnv({
|
|
16
|
+
* API_TOKEN: z.string().min(1),
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
21
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
22
|
+
* @throws When a configured variable is missing or fails validation.
|
|
23
|
+
*/
|
|
24
|
+
export function createDenoEnv(envKeys) {
|
|
25
|
+
return createEnvEffect(envKeys, DenoRuntimeGlobalsSchema, readEnvEffect);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=create-deno-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-deno-env.js","sourceRoot":"","sources":["../../../src/runtime/deno/create-deno-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAiB;IAEjB,OAAO,eAAe,CAAC,OAAO,EAAE,wBAAwB,EAAE,aAAa,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-deno-env.d.ts","sourceRoot":"","sources":["../../../../src/runtime/deno/lib/read-deno-env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,uBActC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DenoRuntimeGlobalsSchema } from "./schema.js";
|
|
2
|
+
export const readDenoEnv = (env) => {
|
|
3
|
+
const denoGlobalScope = DenoRuntimeGlobalsSchema.safeParse(globalThis);
|
|
4
|
+
if (!denoGlobalScope.success) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
const denoRuntimeGlobals = denoGlobalScope.data;
|
|
8
|
+
if (!denoRuntimeGlobals?.Deno) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return denoRuntimeGlobals.Deno.env?.get?.(env)?.trim() ?? undefined;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=read-deno-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-deno-env.js","sourceRoot":"","sources":["../../../../src/runtime/deno/lib/read-deno-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,eAAe,GAAG,wBAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEvE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,kBAAkB,GAAG,eAAe,CAAC,IAAI,CAAC;IAEhD,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACtE,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
export declare const DenoRuntimeGlobalsSchema: z.ZodObject<{
|
|
3
|
+
Deno: z.ZodOptional<z.ZodObject<{
|
|
4
|
+
env: z.ZodObject<{
|
|
5
|
+
get: z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodOptional<z.ZodString>>;
|
|
6
|
+
}, z.z.core.$strip>;
|
|
7
|
+
}, z.z.core.$strip>>;
|
|
8
|
+
}, z.z.core.$strip>;
|
|
9
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/runtime/deno/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;;;mBAWnC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
export const DenoRuntimeGlobalsSchema = z.object({
|
|
3
|
+
Deno: z
|
|
4
|
+
.object({
|
|
5
|
+
env: z.object({
|
|
6
|
+
get: z.function({
|
|
7
|
+
input: [z.string()],
|
|
8
|
+
output: z.string().optional(),
|
|
9
|
+
}),
|
|
10
|
+
}),
|
|
11
|
+
})
|
|
12
|
+
.optional(),
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/runtime/deno/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;YACZ,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC;gBACd,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC9B,CAAC;SACH,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { EnvKeys, EnvRecord } from "../../lib/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a typed environment object from an `import.meta.env`-style object.
|
|
4
|
+
*
|
|
5
|
+
* Use this for Vite, Astro, SvelteKit, Nuxt, or any other toolchain that
|
|
6
|
+
* exposes build-time environment values through `import.meta.env`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createImportMetaEnv } from "@tmrp/env/import-meta";
|
|
11
|
+
* import z from "zod";
|
|
12
|
+
*
|
|
13
|
+
* const env = createImportMetaEnv(
|
|
14
|
+
* {
|
|
15
|
+
* DEV: z.boolean(),
|
|
16
|
+
* VITE_API_URL: z.url(),
|
|
17
|
+
* },
|
|
18
|
+
* import.meta.env
|
|
19
|
+
* );
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
23
|
+
* @param importMetaEnv The `import.meta.env` object, or a compatible object.
|
|
24
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
25
|
+
* @throws When a configured value is missing or fails validation.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createImportMetaEnv<const TEnvKeys extends EnvKeys>(envKeys: TEnvKeys, importMetaEnv: EnvRecord): import("../../lib/types.js").Env<TEnvKeys>;
|
|
28
|
+
//# sourceMappingURL=create-import-meta-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-import-meta-env.d.ts","sourceRoot":"","sources":["../../../src/runtime/import-meta/create-import-meta-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,EAChE,OAAO,EAAE,QAAQ,EACjB,aAAa,EAAE,SAAS,8CAGzB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRecordEnv } from "../record/create-record-env.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a typed environment object from an `import.meta.env`-style object.
|
|
4
|
+
*
|
|
5
|
+
* Use this for Vite, Astro, SvelteKit, Nuxt, or any other toolchain that
|
|
6
|
+
* exposes build-time environment values through `import.meta.env`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createImportMetaEnv } from "@tmrp/env/import-meta";
|
|
11
|
+
* import z from "zod";
|
|
12
|
+
*
|
|
13
|
+
* const env = createImportMetaEnv(
|
|
14
|
+
* {
|
|
15
|
+
* DEV: z.boolean(),
|
|
16
|
+
* VITE_API_URL: z.url(),
|
|
17
|
+
* },
|
|
18
|
+
* import.meta.env
|
|
19
|
+
* );
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
23
|
+
* @param importMetaEnv The `import.meta.env` object, or a compatible object.
|
|
24
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
25
|
+
* @throws When a configured value is missing or fails validation.
|
|
26
|
+
*/
|
|
27
|
+
export function createImportMetaEnv(envKeys, importMetaEnv) {
|
|
28
|
+
return createRecordEnv(envKeys, importMetaEnv);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=create-import-meta-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-import-meta-env.js","sourceRoot":"","sources":["../../../src/runtime/import-meta/create-import-meta-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAiB,EACjB,aAAwB;IAExB,OAAO,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-import-meta-env.d.ts","sourceRoot":"","sources":["../../../../src/runtime/import-meta/lib/read-import-meta-env.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,mBAe5C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { readRecordEnv } from "../../record/lib/read-record-env.js";
|
|
2
|
+
import { ImportMetaRuntimeGlobalsSchema } from "./schema.js";
|
|
3
|
+
export const readImportMetaEnv = (env) => {
|
|
4
|
+
const importMetaGlobalScope = ImportMetaRuntimeGlobalsSchema.safeParse(globalThis);
|
|
5
|
+
if (!importMetaGlobalScope.success) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const importMetaRuntimeGlobals = importMetaGlobalScope.data;
|
|
9
|
+
if (!importMetaRuntimeGlobals.__IMPORT_META_ENV__) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return readRecordEnv(env, importMetaRuntimeGlobals.__IMPORT_META_ENV__);
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=read-import-meta-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-import-meta-env.js","sourceRoot":"","sources":["../../../../src/runtime/import-meta/lib/read-import-meta-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC/C,MAAM,qBAAqB,GACzB,8BAA8B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEvD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IAE5D,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;AAC1E,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/runtime/import-meta/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAIpB,eAAO,MAAM,8BAA8B;;mBAEzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/runtime/import-meta/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,mBAAmB,EAAE,eAAe,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { EnvKeys, EnvRecord } from "../../lib/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a typed environment object from a Netlify env-like object.
|
|
4
|
+
*
|
|
5
|
+
* Use this for Netlify Functions or Edge Functions when you want to validate an
|
|
6
|
+
* explicit env object, such as `process.env` or a platform-provided context.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createNetlifyEnv } from "@tmrp/env/netlify";
|
|
11
|
+
* import z from "zod";
|
|
12
|
+
*
|
|
13
|
+
* const env = createNetlifyEnv(
|
|
14
|
+
* { API_URL: z.url() },
|
|
15
|
+
* process.env
|
|
16
|
+
* );
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
20
|
+
* @param env Netlify env object to read values from.
|
|
21
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
22
|
+
* @throws When a configured value is missing or fails validation.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createNetlifyEnv<const TEnvKeys extends EnvKeys>(envKeys: TEnvKeys, env: EnvRecord): import("../../lib/types.js").Env<TEnvKeys>;
|
|
25
|
+
//# sourceMappingURL=create-netlify-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-netlify-env.d.ts","sourceRoot":"","sources":["../../../src/runtime/netlify/create-netlify-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI7D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,EAC7D,OAAO,EAAE,QAAQ,EACjB,GAAG,EAAE,SAAS,8CAGf"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createRecordEnv } from "../record/create-record-env.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a typed environment object from a Netlify env-like object.
|
|
4
|
+
*
|
|
5
|
+
* Use this for Netlify Functions or Edge Functions when you want to validate an
|
|
6
|
+
* explicit env object, such as `process.env` or a platform-provided context.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createNetlifyEnv } from "@tmrp/env/netlify";
|
|
11
|
+
* import z from "zod";
|
|
12
|
+
*
|
|
13
|
+
* const env = createNetlifyEnv(
|
|
14
|
+
* { API_URL: z.url() },
|
|
15
|
+
* process.env
|
|
16
|
+
* );
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
20
|
+
* @param env Netlify env object to read values from.
|
|
21
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
22
|
+
* @throws When a configured value is missing or fails validation.
|
|
23
|
+
*/
|
|
24
|
+
export function createNetlifyEnv(envKeys, env) {
|
|
25
|
+
return createRecordEnv(envKeys, env);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=create-netlify-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-netlify-env.js","sourceRoot":"","sources":["../../../src/runtime/netlify/create-netlify-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAiB,EACjB,GAAc;IAEd,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-netlify-env.d.ts","sourceRoot":"","sources":["../../../../src/runtime/netlify/lib/read-netlify-env.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,uBAczC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { readNodeEnv } from "../../node/lib/read-node-env.js";
|
|
2
|
+
import { NetlifyRuntimeGlobalsSchema } from "./schema.js";
|
|
3
|
+
export const readNetlifyEnv = (env) => {
|
|
4
|
+
const netlifyGlobalScope = NetlifyRuntimeGlobalsSchema.safeParse(globalThis);
|
|
5
|
+
if (!netlifyGlobalScope.success) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const netlifyRuntimeGlobals = netlifyGlobalScope.data;
|
|
9
|
+
if (!netlifyRuntimeGlobals.process?.env.NETLIFY) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return readNodeEnv(env);
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=read-netlify-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-netlify-env.js","sourceRoot":"","sources":["../../../../src/runtime/netlify/lib/read-netlify-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IAC5C,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE7E,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAEtD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
export declare const NetlifyRuntimeGlobalsSchema: z.ZodObject<{
|
|
3
|
+
process: z.ZodOptional<z.ZodObject<{
|
|
4
|
+
env: z.ZodObject<{
|
|
5
|
+
NETLIFY: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, z.z.core.$loose>;
|
|
7
|
+
}, z.z.core.$strip>>;
|
|
8
|
+
}, z.z.core.$strip>;
|
|
9
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/runtime/netlify/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,2BAA2B;;;;;;mBAUtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/runtime/netlify/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,GAAG,EAAE,CAAC;aACH,MAAM,CAAC;YACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;aACD,WAAW,EAAE;KACjB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { EnvKeys } from "../../lib/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a typed environment object from Node.js `process.env`.
|
|
4
|
+
*
|
|
5
|
+
* Use this entry point when your application is expected to run in Node. If you
|
|
6
|
+
* load environment variables from a `.env` file, import your dotenv loader before
|
|
7
|
+
* calling this function.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import "dotenv/config";
|
|
12
|
+
*
|
|
13
|
+
* import { createNodeEnv } from "@tmrp/env/node";
|
|
14
|
+
* import z from "zod";
|
|
15
|
+
*
|
|
16
|
+
* const env = createNodeEnv({
|
|
17
|
+
* DATABASE_URL: z.url(),
|
|
18
|
+
* PORT: z.coerce.number().int().positive(),
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
23
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
24
|
+
* @throws When a configured variable is missing or fails validation.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createNodeEnv<const TEnvKeys extends EnvKeys>(envKeys: TEnvKeys): import("../../lib/types.js").Env<TEnvKeys>;
|
|
27
|
+
//# sourceMappingURL=create-node-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-node-env.d.ts","sourceRoot":"","sources":["../../../src/runtime/node/create-node-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMlD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,EAC1D,OAAO,EAAE,QAAQ,8CAGlB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createEnvEffect } from "../../effects/create-env-effect.js";
|
|
2
|
+
import { readEnvEffect } from "../../effects/read-env-effect.js";
|
|
3
|
+
import { NodeRuntimeGlobalsSchema } from "./lib/schema.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a typed environment object from Node.js `process.env`.
|
|
6
|
+
*
|
|
7
|
+
* Use this entry point when your application is expected to run in Node. If you
|
|
8
|
+
* load environment variables from a `.env` file, import your dotenv loader before
|
|
9
|
+
* calling this function.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import "dotenv/config";
|
|
14
|
+
*
|
|
15
|
+
* import { createNodeEnv } from "@tmrp/env/node";
|
|
16
|
+
* import z from "zod";
|
|
17
|
+
*
|
|
18
|
+
* const env = createNodeEnv({
|
|
19
|
+
* DATABASE_URL: z.url(),
|
|
20
|
+
* PORT: z.coerce.number().int().positive(),
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
25
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
26
|
+
* @throws When a configured variable is missing or fails validation.
|
|
27
|
+
*/
|
|
28
|
+
export function createNodeEnv(envKeys) {
|
|
29
|
+
return createEnvEffect(envKeys, NodeRuntimeGlobalsSchema, readEnvEffect);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=create-node-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-node-env.js","sourceRoot":"","sources":["../../../src/runtime/node/create-node-env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAiB;IAEjB,OAAO,eAAe,CAAC,OAAO,EAAE,wBAAwB,EAAE,aAAa,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-node-env.d.ts","sourceRoot":"","sources":["../../../../src/runtime/node/lib/read-node-env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,uBActC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { NodeRuntimeGlobalsSchema } from "./schema.js";
|
|
2
|
+
export const readNodeEnv = (env) => {
|
|
3
|
+
const nodeGlobalScope = NodeRuntimeGlobalsSchema.safeParse(globalThis);
|
|
4
|
+
if (!nodeGlobalScope.success) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
const nodeRuntimeGlobals = nodeGlobalScope.data;
|
|
8
|
+
if (!nodeRuntimeGlobals.process) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return nodeRuntimeGlobals.process.env?.[env]?.trim() ?? undefined;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=read-node-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-node-env.js","sourceRoot":"","sources":["../../../../src/runtime/node/lib/read-node-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,eAAe,GAAG,wBAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEvE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,kBAAkB,GAAG,eAAe,CAAC,IAAI,CAAC;IAEhD,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACpE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/runtime/node/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,wBAAwB;;;;mBAQnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/runtime/node/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,CACX,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CACvD;KACF,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Env, EnvKeys, EnvRecord } from "../../lib/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a typed environment object from any explicit object.
|
|
4
|
+
*
|
|
5
|
+
* Use this when environment values are passed to your code rather than exposed
|
|
6
|
+
* through a runtime global. String values are trimmed before validation;
|
|
7
|
+
* non-string values are passed directly to Zod.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { createRecordEnv } from "@tmrp/env/record";
|
|
12
|
+
* import z from "zod";
|
|
13
|
+
*
|
|
14
|
+
* const env = createRecordEnv(
|
|
15
|
+
* {
|
|
16
|
+
* API_URL: z.url(),
|
|
17
|
+
* FEATURE_ENABLED: z.coerce.boolean(),
|
|
18
|
+
* },
|
|
19
|
+
* runtimeEnv
|
|
20
|
+
* );
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
24
|
+
* @param record Object to read values from.
|
|
25
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
26
|
+
* @throws When a configured value is missing or fails validation.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createRecordEnv<const TEnvKeys extends EnvKeys>(envKeys: TEnvKeys, record: EnvRecord): Env<TEnvKeys>;
|
|
29
|
+
//# sourceMappingURL=create-record-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-record-env.d.ts","sourceRoot":"","sources":["../../../src/runtime/record/create-record-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMlE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,EAC5D,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,SAAS,GAWH,GAAG,CAAC,QAAQ,CAAC,CAC5B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { envParseValueEffect } from "../../effects/env-parse-value-effect.js";
|
|
3
|
+
import { envReadValueEffect } from "../../effects/env-read-value-effect.js";
|
|
4
|
+
import { readRecordEnv } from "./lib/read-record-env.js";
|
|
5
|
+
/**
|
|
6
|
+
* Creates a typed environment object from any explicit object.
|
|
7
|
+
*
|
|
8
|
+
* Use this when environment values are passed to your code rather than exposed
|
|
9
|
+
* through a runtime global. String values are trimmed before validation;
|
|
10
|
+
* non-string values are passed directly to Zod.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { createRecordEnv } from "@tmrp/env/record";
|
|
15
|
+
* import z from "zod";
|
|
16
|
+
*
|
|
17
|
+
* const env = createRecordEnv(
|
|
18
|
+
* {
|
|
19
|
+
* API_URL: z.url(),
|
|
20
|
+
* FEATURE_ENABLED: z.coerce.boolean(),
|
|
21
|
+
* },
|
|
22
|
+
* runtimeEnv
|
|
23
|
+
* );
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @param envKeys Environment variable names mapped to Zod schemas.
|
|
27
|
+
* @param record Object to read values from.
|
|
28
|
+
* @returns A strongly typed object inferred from `envKeys`.
|
|
29
|
+
* @throws When a configured value is missing or fails validation.
|
|
30
|
+
*/
|
|
31
|
+
export function createRecordEnv(envKeys, record) {
|
|
32
|
+
const env = Effect.runSync(Effect.forEach(Object.entries(envKeys), ([key, schema]) => envReadValueEffect(key, (env) => readRecordEnv(env, record)).pipe(Effect.flatMap((value) => envParseValueEffect(key, schema, value)), Effect.map((value) => [key, value]))).pipe(Effect.map((entries) => Object.fromEntries(entries))));
|
|
33
|
+
return env;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=create-record-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-record-env.js","sourceRoot":"","sources":["../../../src/runtime/record/create-record-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAiB,EACjB,MAAiB;IAEjB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CACxD,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAClE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAU,CAAC,CAC7C,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAC7D,CAAC;IAEF,OAAO,GAAoB,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-record-env.d.ts","sourceRoot":"","sources":["../../../../src/runtime/record/lib/read-record-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,QAAQ,SAAS,mBAQ3D,CAAC"}
|