UNPKG

zod-config

Version:

Load configuration variables from multiple sources with flexible adapters, ensuring type safety with Zod.

2 lines (1 loc) 799 B
var f=(r,t)=>{if(r==null)return{};if(!o(r))throw new TypeError(`Cannot filter ${r} by prefix key as it is not a record-like object`);return Object.keys(r).filter(e=>e.startsWith(t)).reduce((e,n)=>(e[n]=r[n],e),{})},s=(r,t)=>{if(r==null)return{};if(!o(r))throw new TypeError(`Cannot filter ${r} by regex as it is not a record-like object`);return Object.keys(r).filter(e=>t.test(e)).reduce((e,n)=>(e[n]=r[n],e),{})};function o(r){return!r||typeof r!="object"?!1:Object.getPrototypeOf(r)===Object.prototype||Object.getPrototypeOf(r)===null}function i(r,t){let{regex:e,prefixKey:n}=t;return e?s(r,e):n?f(r,n):r}var p="env adapter",d=({customEnv:r,prefixKey:t,regex:e,silent:n}={})=>({name:p,read:async()=>{let u=r||process.env||{};return i(u,{prefixKey:t,regex:e})},silent:n});export{d as envAdapter};