zod-config
Version:
Load configuration variables from multiple sources with flexible adapters, ensuring type safety with Zod.
2 lines (1 loc) • 771 B
JavaScript
function o(e){return!e||typeof e!="object"?!1:Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null}function i(e,r){let{regex:n}=r;return n?u(e,n):e}var u=(e,r)=>{if(e==null)return{};if(!o(e))throw new TypeError(`Cannot filter ${e} by regex as it is not a record-like object`);return Object.keys(e).filter(n=>r.test(n)).reduce((n,t)=>(n[t]=e[t],n),{})};import{ZodObject as j}from"zod/v3";import*as p from"zod/v4/core";var Z={strict:f(e=>e),lenient:f(d)};function d(e){return e.replace(/[^a-z0-9]/gi,"").toLowerCase()}function f(e){return(r,n)=>e(r)===e(n)}var c="env adapter",A=({customEnv:e,regex:r,silent:n}={})=>({name:c,read:async()=>{let t=e||(typeof process<"u"?{...process.env}:{});return i(t,{regex:r})},silent:n});export{A as envAdapter};