zod-config
Version:
Load configuration variables from multiple sources with flexible adapters, ensuring type safety with Zod.
2 lines (1 loc) • 901 B
JavaScript
var f=()=>typeof process<"u"?{...process.env}:{};function o(e){return!e||typeof e!="object"?!1:Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null}function p(e,t){let{regex:n}=t;return n?a(e,n):e}var a=(e,t)=>{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=>t.test(n)).reduce((n,r)=>(n[r]=e[r],n),{})};import{ZodDefault as x,ZodObject as z,ZodOptional as T}from"zod/v3";import*as i from"zod/v4/core";var $={strict:u(e=>e),lenient:u(l)};function l(e){return e.replace(/[^a-z0-9]/gi,"").toLowerCase()}function u(e){return(t,n)=>e(t)===e(n)}var y="env adapter",q=({customEnv:e,regex:t,silent:n,keyMatching:r,transform:s,nestingSeparator:c}={})=>({name:y,read:()=>{let d=e||f();return p(d,{regex:t})},silent:n,keyMatching:r,transform:s,nestingSeparator:c});export{q as envAdapter};