@hairy/lnv
Version:
_description_
74 lines (71 loc) • 2.28 kB
JavaScript
import {createRequire as __createRequire} from 'module';var require=__createRequire(import.meta.url);
import {
authEnvironment,
executionScript,
loadEnvironment,
mergeParseEnvironment,
parseUserConfig,
readEnvironment
} from "./chunk-GE2TWEZE.js";
import {
context
} from "./chunk-4TCHCY3V.js";
import {
run
} from "./chunk-NC5LCYHV.js";
import {
write
} from "./chunk-PKGDPMDM.js";
// src/lnv.ts
import process from "node:process";
async function lnv(options) {
Object.assign(context, options);
await parseUserConfig();
context.entries.push("env");
context.entries.unshift("local");
await readEnvironment();
await authEnvironment();
await loadEnvironment();
await executionScript();
Object.assign(context.parsed, context.before);
Object.assign(context.parsed, context.env);
Object.assign(context.parsed, context.after);
mergeParseEnvironment();
const message = assembleMessage();
if (context.run) {
message && console.log(message);
console.log();
await run(context.run, context.parsed);
}
if (context.write) {
write(`${process.cwd()}/.env`, context.parsed);
console.log();
message && console.log(message);
}
}
function assembleMessage() {
const foundParsed = !Object.keys(context.parsed).length;
const foundManual = !Object.keys(context.env || {}).length;
const foundFiles = !context.parsedFiles.length;
if (foundParsed && foundFiles && foundManual)
console.log("No environment variables found");
let message = "";
if (foundFiles && !foundManual) {
message = context.run ? `Successfully loaded ${context.parsedFiles.join(",")} to runtime environment` : `Successfully loaded ${context.parsedFiles.join(",")} to .env`;
} else if (!foundFiles) {
message = context.run ? `Successfully loaded ${context.parsedFiles.join(",")} to runtime environment` : `Successfully wrote ${context.parsedFiles.join(",")} to .env`;
}
if (!foundFiles && !foundManual)
message += " and with variables:";
else if (!foundManual)
message = "Successfully manual loaded environment variables";
if (context.env) {
for (const [key, value] of Object.entries(context.env))
typeof value !== "undefined" && (message += `
${key}=${value}`);
}
return message;
}
export {
lnv
};