UNPKG

zod-config

Version:

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

2 lines (1 loc) 1.48 kB
"use strict";var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var w=(r,t)=>{for(var e in t)i(r,e,{get:t[e],enumerable:!0})},x=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of l(t))!d.call(r,o)&&o!==e&&i(r,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return r};var g=r=>x(i({},"__esModule",{value:!0}),r);var j={};w(j,{dotEnvAdapter:()=>E});module.exports=g(j);var u=require("dotenv"),p=require("fs/promises");var b=(r,t)=>{if(r==null)return{};if(!f(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),{})},y=(r,t)=>{if(r==null)return{};if(!f(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 f(r){return!r||typeof r!="object"?!1:Object.getPrototypeOf(r)===Object.prototype||Object.getPrototypeOf(r)===null}function s(r,t){let{regex:e,prefixKey:n}=t;return e?y(r,e):n?b(r,n):r}var P="dotenv adapter",E=({path:r,prefixKey:t,regex:e,silent:n})=>({name:P,read:async()=>{try{let o=await(0,p.readFile)(r,"utf-8"),c=(0,u.parse)(o)||{};return s(c,{prefixKey:t,regex:e})}catch(o){throw new Error(`Failed to parse / read .env file at ${r}: ${o instanceof Error?o.message:o}`)}},silent:n});0&&(module.exports={dotEnvAdapter});