zod-config
Version:
Load configuration variables from multiple sources with flexible adapters, ensuring type safety with Zod.
2 lines (1 loc) • 1.55 kB
JavaScript
;var l=Object.create;var i=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,m=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 y(n))!m.call(e,o)&&o!==r&&i(e,o,{get:()=>n[o],enumerable:!(t=b(n,o))||t.enumerable});return e};var j=(e,n,r)=>(r=e!=null?l(g(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,{tomlAdapter:()=>P});module.exports=w(h);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=j(require("zod/v4/core"));var _={strict:d(e=>e),lenient:d(T)};function T(e){return e.replace(/[^a-z0-9]/gi,"").toLowerCase()}function d(e){return(n,r)=>e(n)===e(r)}var s=require("fs/promises"),a=require("smol-toml"),x="toml adapter",P=({path:e,regex:n,silent:r})=>({name:x,read:async()=>{try{let t=await(0,s.readFile)(e,"utf-8"),o=(0,a.parse)(t)||{};return u(o,{regex:n})}catch(t){throw new Error(`Failed to parse / read TOML file at ${e}: ${t instanceof Error?t.message:t}`)}},silent:r});0&&(module.exports={tomlAdapter});