UNPKG

@qlover/env-loader

Version:

A package for managing environment variables

2 lines (1 loc) 1.77 kB
"use strict";var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var L=(i,e)=>{for(var t in e)p(i,t,{get:e[t],enumerable:!0})},P=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of m(e))!b.call(i,r)&&r!==t&&p(i,r,{get:()=>e[r],enumerable:!(n=v(e,r))||n.enumerable});return i};var y=i=>P(p({},"__esModule",{value:!0}),i);var w={};L(w,{Env:()=>f});module.exports=y(w);var u=require("dotenv"),g=require("fs"),s=require("path"),f=class i{constructor(e){this.options=e}get rootPath(){return this.options.rootPath}get logger(){return this.options.logger}static searchEnv({cwd:e=process.cwd(),preloadList:t=[".env.local",".env"],logger:n,maxDepth:r=5}={}){r=Math.min(r,8);let c=new i({rootPath:e,logger:n}),o=e,a="",l=!1,d=0;for(;o!==a;){if(l=t.some(h=>(0,g.existsSync)((0,s.resolve)(o,h))),l){c.load({preloadList:t,rootPath:o});break}if(d++,d>=r){n?.warn(`Search depth exceeded ${r} levels, stopping search at ${o}`);break}if(a=o,o=(0,s.dirname)(o),o===a){n?.warn("Reached root directory, stopping search");break}}return!l&&n&&n.warn(`No environment files (${t.join(", ")}) found in directory tree from ${e} to ${o}`),c}load(e={preloadList:[]}){let{preloadList:t,rootPath:n}=e;if(!t.length){this.logger?.warn?.("Env load preloadList is empty!");return}let r=n||this.rootPath||(0,s.resolve)("./");for(let c of t){let o=(0,s.resolve)(r,c);if((0,g.existsSync)(o)){(0,u.config)({path:o}),this.logger?.debug?.(`Loaded \`${o}\` file`);return}}this.logger?.warn?.("No .env file found")}remove(e){process.env[e]&&delete process.env[e]}get(e){return process.env[e]}set(e,t){process.env[e]=t}getDestroy(e){let t=process.env[e];return this.remove(e),t}};0&&(module.exports={Env});