zod-config
Version:
Load configuration variables from multiple sources with flexible adapters, ensuring type safety with Zod.
2 lines (1 loc) • 1.56 kB
JavaScript
;var b=Object.create;var i=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var O=(e,n)=>{for(var r in n)i(e,r,{get:n[r],enumerable:!0})},p=(e,n,r,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of g(n))!j.call(e,o)&&o!==r&&i(e,o,{get:()=>n[o],enumerable:!(t=y(n,o))||t.enumerable});return e};var m=(e,n,r)=>(r=e!=null?b(l(e)):{},p(n||!e||!e.__esModule?i(r,"default",{value:e,enumerable:!0}):r,e)),w=e=>p(i({},"__esModule",{value:!0}),e);var h={};O(h,{dotEnvAdapter:()=>P});module.exports=w(h);var s=require("dotenv"),a=require("fs/promises");function f(e){return!e||typeof e!="object"?!1:Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null}function u(e,n){let{regex:r}=n;return r?Z(e,r):e}var Z=(e,n)=>{if(e==null)return{};if(!f(e))throw new TypeError(`Cannot filter ${e} by regex as it is not a record-like object`);return Object.keys(e).filter(r=>n.test(r)).reduce((r,t)=>(r[t]=e[t],r),{})};var z=require("zod/v3"),c=m(require("zod/v4/core"));var _={strict:d(e=>e),lenient:d(x)};function x(e){return e.replace(/[^a-z0-9]/gi,"").toLowerCase()}function d(e){return(n,r)=>e(n)===e(r)}var T="dotenv adapter",P=({path:e,regex:n,silent:r})=>({name:T,read:async()=>{try{let t=await(0,a.readFile)(e,"utf-8"),o=(0,s.parse)(t)||{};return u(o,{regex:n})}catch(t){throw new Error(`Failed to parse / read .env file at ${e}: ${t instanceof Error?t.message:t}`)}},silent:r});0&&(module.exports={dotEnvAdapter});