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