UNPKG

zod-config

Version:

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

2 lines (1 loc) 2.58 kB
"use strict";var Z=Object.create;var p=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var S=(e,r)=>{for(var n in r)p(e,n,{get:r[n],enumerable:!0})},m=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of C(r))!R.call(e,o)&&o!==n&&p(e,o,{get:()=>r[o],enumerable:!(t=x(r,o))||t.enumerable});return e};var A=(e,r,n)=>(n=e!=null?Z(P(e)):{},m(r||!e||!e.__esModule?p(n,"default",{value:e,enumerable:!0}):n,e)),M=e=>m(p({},"__esModule",{value:!0}),e);var B={};S(B,{loadConfig:()=>O});module.exports=M(B);function c(e){return!e||typeof e!="object"?!1:Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null}function u(e,...r){if(!r.length)return e;let n=r.shift();return n===void 0?e:(c(e)&&c(n)&&Object.keys(n).forEach(t=>{if(n[t]===void 0)return;if(!c(n[t])){e[t]=n[t];return}let o=e[t];if(!c(o)){e[t]=u({},n[t]);return}u(o,n[t])}),u(e,...r))}var w=require("zod/v3"),d=A(require("zod/v4/core"));var $={strict:h(e=>e),lenient:h(k)},E=100;function g(e,r,n,t=0,o=E){if(t>=o||!e||!r||Object.keys(e).length===0||Object.keys(r).length===0)return e;let a=$[n];return Object.fromEntries(Object.entries(e).map(([i,s])=>{let f=Object.keys(r).find(z=>a(z,i))??i;if(!c(s))return[f,s];let T=r[f],b=l(T);return b?[f,g(s,b,n,t+1)]:[f,s]}))}function k(e){return e.replace(/[^a-z0-9]/gi,"").toLowerCase()}function y(e){return e instanceof d.$ZodObject}function K(e){return e instanceof w.ZodObject}function _(e){return e instanceof d.$ZodPipe&&y(e._zod.def.in)}function D(e){return e instanceof d.$ZodPipe&&y(e._zod.def.out)}function h(e){return(r,n)=>e(r)===e(n)}function I(e){if(y(e))return e._zod.def.shape;if(_(e))return e._zod.def.in._zod.def.shape;if(D(e))return e._zod.def.out._zod.def.shape}function L(e){if(K(e))return e.shape}var l=e=>{if(e)return"_zod"in e?I(e):L(e)};var j=require("zod/v4/core"),O=async e=>{let{schema:r,adapters:n,onError:t,onSuccess:o,keyMatching:a}=e,i=e.logger??console,s=await H(Array.isArray(n)?n:n?[n]:[],i,r,a??"strict"),f;if("_zod"in r?f=await(0,j.safeParseAsync)(r,s):f=await r.safeParseAsync(s),!f.success){if(t)return t(f.error),{};throw f.error}return o&&o(f.data),f.data},H=async(e,r,n,t)=>{if(!e||e.length===0)return process.env;let o=await Promise.all(e.map(async a=>{try{let i=await a.read();if(t==="strict")return i;let s=l(n);return s?g(i,s,t):i}catch(i){return a.silent||r.warn(`Cannot read data from ${a.name}: ${i instanceof Error?i.message:i}`),{}}}));return u({},...o)};0&&(module.exports={loadConfig});