@t3-oss/env-core
Advanced tools
Comparing version 0.1.0-alpha.0 to 0.1.0
import z, { ZodType, ZodObject } from 'zod'; | ||
type ErrorMessage<T extends string> = T; | ||
type CreateEnvOptions<TPrefix extends string, TServer extends Record<string, ZodType>, TClient extends Record<string, ZodType>> = { | ||
interface BaseOptions<TPrefix extends string, TServer extends Record<string, ZodType>, TClient extends Record<string, ZodType>> { | ||
clientPrefix: TPrefix; | ||
server: TServer; | ||
client?: { | ||
client: { | ||
[TKey in keyof TClient]: TKey extends `${TPrefix}${string}` ? TClient[TKey] : ErrorMessage<`${TKey extends string ? TKey : never} is not prefixed with ${TPrefix}.`>; | ||
}; | ||
strictProcessEnv?: Record<keyof TServer | keyof TClient, string | undefined>; | ||
looseProcessEnv?: Record<string, string | undefined>; | ||
isServer?: boolean; | ||
skipValidation?: boolean; | ||
}; | ||
declare function createEnv<TPrefix extends string, TServer extends Record<string, ZodType>, TClient extends Record<string, ZodType>>(opts: CreateEnvOptions<TPrefix, TServer, TClient>): z.infer<ZodObject<TServer>> & z.infer<ZodObject<TClient>>; | ||
} | ||
interface LooseOptions<TPrefix extends string, TServer extends Record<string, ZodType>, TClient extends Record<string, ZodType>> extends BaseOptions<TPrefix, TServer, TClient> { | ||
runtimeEnvStrict?: never; | ||
runtimeEnv: Record<string, string | undefined>; | ||
} | ||
interface StrictOptions<TPrefix extends string, TServer extends Record<string, ZodType>, TClient extends Record<string, ZodType>> extends BaseOptions<TPrefix, TServer, TClient> { | ||
runtimeEnvStrict: Record<{ | ||
[TKey in keyof TClient]: TKey extends `${TPrefix}${string}` ? TKey : never; | ||
}[keyof TClient] | keyof TServer, string | undefined>; | ||
runtimeEnv?: never; | ||
} | ||
declare function createEnv<TPrefix extends string, TServer extends Record<string, ZodType>, TClient extends Record<string, ZodType>>(opts: LooseOptions<TPrefix, TServer, TClient> | StrictOptions<TPrefix, TServer, TClient>): z.infer<ZodObject<TServer>> & z.infer<ZodObject<TClient>>; | ||
export { CreateEnvOptions, ErrorMessage, createEnv }; | ||
export { BaseOptions, ErrorMessage, LooseOptions, StrictOptions, createEnv }; |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);function g(e){let c=typeof e.client=="object"?e.client:{},s=_zod2.default.object(c),d=_zod2.default.object(e.server),r=_nullishCoalesce(_nullishCoalesce(e.strictProcessEnv, () => (e.looseProcessEnv)), () => (process.env)),i=_nullishCoalesce(e.isServer, () => (typeof window>"u"));if(_nullishCoalesce(e.skipValidation, () => ((!!process.env.SKIP_ENV_VALIDATION&&process.env.SKIP_ENV_VALIDATION!=="false"&&process.env.SKIP_ENV_VALIDATION!=="0"))))return r;let a=d.merge(s),n=i?a.safeParse(r):s.safeParse(r);if(n.success===!1)throw console.error("\u274C Invalid environment variables:",n.error.flatten().fieldErrors),new Error("Invalid environment variables");return new Proxy(n.data,{get(v,t){if(typeof t=="string"){if(!i&&!t.startsWith(e.clientPrefix))throw new Error("\u274C Attempted to access a server-side environment variable on the client");return v[t]}}})}exports.createEnv = g; | ||
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);function p(e){let d=typeof e.client=="object"?e.client:{},i=_zod2.default.object(d),T=_zod2.default.object(e.server),r=_nullishCoalesce(_nullishCoalesce(e.runtimeEnvStrict, () => (e.runtimeEnv)), () => (process.env)),s=_nullishCoalesce(e.isServer, () => (typeof window>"u"));if(_nullishCoalesce(e.skipValidation, () => ((!!process.env.SKIP_ENV_VALIDATION&&process.env.SKIP_ENV_VALIDATION!=="false"&&process.env.SKIP_ENV_VALIDATION!=="0"))))return r;let c=T.merge(i),n=s?c.safeParse(r):i.safeParse(r);if(n.success===!1)throw console.error("\u274C Invalid environment variables:",n.error.flatten().fieldErrors),new Error("Invalid environment variables");return new Proxy(n.data,{get(f,t){if(typeof t=="string"){if(!s&&!t.startsWith(e.clientPrefix))throw new Error("\u274C Attempted to access a server-side environment variable on the client");return f[t]}}})}exports.createEnv = p; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@t3-oss/env-core", | ||
"version": "0.1.0-alpha.0", | ||
"version": "0.1.0", | ||
"keywords": [ | ||
@@ -32,8 +32,2 @@ "create-t3-app", | ||
], | ||
"scripts": { | ||
"build": "tsup", | ||
"dev": "tsup --watch", | ||
"lint": "eslint . --ext .ts", | ||
"type-check": "tsc --noEmit" | ||
}, | ||
"peerDependencies": { | ||
@@ -47,3 +41,9 @@ "zod": "^3.0.0" | ||
"zod": "^3.20.2" | ||
}, | ||
"scripts": { | ||
"build": "tsup", | ||
"dev": "tsup --watch", | ||
"lint": "eslint . --ext .ts", | ||
"type-check": "tsc --noEmit" | ||
} | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
16442
7
32