diff --git a/lib/cjs/loadConfig.d.ts b/lib/cjs/loadConfig.d.ts index f7434fa..7454dd6 100644 --- a/lib/cjs/loadConfig.d.ts +++ b/lib/cjs/loadConfig.d.ts @@ -1,4 +1,4 @@ -declare const _default: (opts: Partial, envKey: string, localDefaultFilePath?: string) => { +declare const _default: (opts: Partial, envKey: string, filePath?: string) => { [x: string]: any; }; export default _default; diff --git a/lib/cjs/loadConfig.d.ts.map b/lib/cjs/loadConfig.d.ts.map index 795eba3..109e608 100644 --- a/lib/cjs/loadConfig.d.ts.map +++ b/lib/cjs/loadConfig.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/loadConfig.ts"],"names":[],"mappings":"sDAUS,MAAM;;;AAFf,wBAyCE"} \ No newline at end of file +{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/loadConfig.ts"],"names":[],"mappings":"sDAI6C,MAAM;;;AAAnD,wBA+CE"} \ No newline at end of file diff --git a/lib/cjs/loadConfig.js b/lib/cjs/loadConfig.js index 7077409..4102e68 100644 --- a/lib/cjs/loadConfig.js +++ b/lib/cjs/loadConfig.js @@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const utils_1 = require("./utils"); -exports.default = (opts, envKey, localDefaultFilePath = "") => { - const { env } = process, { __dirname } = (0, utils_1.getDirname)(), def = (0, utils_1.readJsonIfExists)(path_1.default.join(__dirname, localDefaultFilePath || "./defaults.json5")), +exports.default = (opts, envKey, filePath = "") => { + const { env } = process, defPath = filePath || path_1.default.join(process.cwd() ?? ".", "defaults.json5"), def = (0, utils_1.readJsonIfExists)(defPath), // gets value from ENV || options || defaults (in that order) getVal = (envName) => { const snakeEnvName = `${envKey}_${(0, utils_1.convertCamelToUpperSnakeCase)(envName)}`; @@ -30,6 +30,17 @@ exports.default = (opts, envKey, localDefaultFilePath = "") => { return opts[optName]; return def[optName]; }; + console.log({ def }); + const retVal = { + ...Object.keys(def).reduce((acc, curr) => { + if (Array.isArray(def[curr])) + acc[curr] = getArray(curr); + else + acc[curr] = getVal(curr); + return acc; + }, {}), + }; + console.log({ retVal }); return { ...Object.keys(def).reduce((acc, curr) => { if (Array.isArray(def[curr])) @@ -40,4 +51,4 @@ exports.default = (opts, envKey, localDefaultFilePath = "") => { }, {}), }; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZENvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLG1DQUlpQjtBQUVqQixrQkFBZSxDQUNkLElBQWdCLEVBQ2hCLE1BQWMsRUFDZCxvQkFBb0IsR0FBRyxFQUFFLEVBQ3hCLEVBQUU7SUFDSCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN0QixFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsa0JBQVUsR0FBRSxFQUM1QixHQUFHLEdBQUcsSUFBQSx3QkFBZ0IsRUFDckIsY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLElBQUksa0JBQWtCLENBQUMsQ0FDaEU7SUFDRCw2REFBNkQ7SUFDN0QsTUFBTSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1FBQzdCLE1BQU0sWUFBWSxHQUFHLEdBQUcsTUFBTSxJQUFJLElBQUEsb0NBQTRCLEVBQzdELE9BQWlCLENBQ2pCLEVBQUUsQ0FBQztRQUNKLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsUUFBUSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxVQUF3QixFQUFFLEVBQUUsRUFBRTtRQUMzRCxJQUFJLFVBQVUsQ0FBQztRQUNmLElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDbEIsVUFBVSxHQUFHLElBQUEsb0NBQTRCLEVBQUMsT0FBaUIsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxVQUFVLEdBQUcsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBOEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFLLElBQUksQ0FBQyxPQUFPLENBQVEsQ0FBQyxNQUFNO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBZSxDQUFDLENBQUM7O2dCQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQge1xuXHRjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlLFxuXHRnZXREaXJuYW1lLFxuXHRyZWFkSnNvbklmRXhpc3RzLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZGVmYXVsdCA8VD4oXG5cdG9wdHM6IFBhcnRpYWw8VD4sXG5cdGVudktleTogc3RyaW5nLFxuXHRsb2NhbERlZmF1bHRGaWxlUGF0aCA9IFwiXCJcbikgPT4ge1xuXHRjb25zdCB7IGVudiB9ID0gcHJvY2Vzcyxcblx0XHR7IF9fZGlybmFtZSB9ID0gZ2V0RGlybmFtZSgpLFxuXHRcdGRlZiA9IHJlYWRKc29uSWZFeGlzdHMoXG5cdFx0XHRwYXRoLmpvaW4oX19kaXJuYW1lLCBsb2NhbERlZmF1bHRGaWxlUGF0aCB8fCBcIi4vZGVmYXVsdHMuanNvbjVcIilcblx0XHQpLFxuXHRcdC8vIGdldHMgdmFsdWUgZnJvbSBFTlYgfHwgb3B0aW9ucyB8fCBkZWZhdWx0cyAoaW4gdGhhdCBvcmRlcilcblx0XHRnZXRWYWwgPSAoZW52TmFtZToga2V5b2YgVCkgPT4ge1xuXHRcdFx0Y29uc3Qgc25ha2VFbnZOYW1lID0gYCR7ZW52S2V5fV8ke2NvbnZlcnRDYW1lbFRvVXBwZXJTbmFrZUNhc2UoXG5cdFx0XHRcdGVudk5hbWUgYXMgc3RyaW5nXG5cdFx0XHQpfWA7XG5cdFx0XHRpZiAoZW52W3NuYWtlRW52TmFtZV0pIHJldHVybiBlbnZbc25ha2VFbnZOYW1lXTtcblx0XHRcdGlmIChvcHRzW2Vudk5hbWVdKSByZXR1cm4gb3B0c1tlbnZOYW1lXTtcblx0XHRcdHJldHVybiBkZWZbZW52TmFtZV07XG5cdFx0fSxcblx0XHQvLyBnZXRzIGFycmF5IGZyb20gRU5WIHx8IG9wdGlvbnMgfHwgZGVmYXVsdHMgKGluIHRoYXQgb3JkZXIpXG5cdFx0Z2V0QXJyYXkgPSAoZW52TmFtZToga2V5b2YgVCwgb3B0TmFtZToga2V5b2YgVCB8IFwiXCIgPSBcIlwiKSA9PiB7XG5cdFx0XHRsZXQgbmV3RW52TmFtZTtcblx0XHRcdGlmIChvcHROYW1lID09PSBcIlwiKSB7XG5cdFx0XHRcdG9wdE5hbWUgPSBlbnZOYW1lO1xuXHRcdFx0XHRuZXdFbnZOYW1lID0gY29udmVydENhbWVsVG9VcHBlclNuYWtlQ2FzZShlbnZOYW1lIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0XHRuZXdFbnZOYW1lID0gYCR7ZW52S2V5fV8ke1N0cmluZyhlbnZOYW1lKX1gO1xuXHRcdFx0aWYgKGVudltuZXdFbnZOYW1lXSlcblx0XHRcdFx0cmV0dXJuIGVudj8uW25ld0Vudk5hbWUgYXMga2V5b2YgdHlwZW9mIGVudl0/LnNwbGl0KHBhdGguZGVsaW1pdGVyKTtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KG9wdHNbb3B0TmFtZV0pICYmIChvcHRzW29wdE5hbWVdIGFzIFtdKS5sZW5ndGgpXG5cdFx0XHRcdHJldHVybiBvcHRzW29wdE5hbWVdO1xuXHRcdFx0cmV0dXJuIGRlZltvcHROYW1lXTtcblx0XHR9O1xuXG5cdHJldHVybiB7XG5cdFx0Li4uT2JqZWN0LmtleXMoZGVmKS5yZWR1Y2UoKGFjYzogUGFydGlhbDx0eXBlb2YgZGVmPiwgY3VycikgPT4ge1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoZGVmW2N1cnJdKSkgYWNjW2N1cnJdID0gZ2V0QXJyYXkoY3VyciBhcyBrZXlvZiBUKTtcblx0XHRcdGVsc2UgYWNjW2N1cnJdID0gZ2V0VmFsKGN1cnIgYXMga2V5b2YgVCk7XG5cdFx0XHRyZXR1cm4gYWNjO1xuXHRcdH0sIHt9KSxcblx0fTtcbn07XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZENvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLG1DQUF5RTtBQUV6RSxrQkFBZSxDQUFJLElBQWdCLEVBQUUsTUFBYyxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUNyRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN0QixPQUFPLEdBQUcsUUFBUSxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUN2RSxHQUFHLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUM7SUFDL0IsNkRBQTZEO0lBQzdELE1BQU0sR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtRQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLE1BQU0sSUFBSSxJQUFBLG9DQUE0QixFQUM3RCxPQUFpQixDQUNqQixFQUFFLENBQUM7UUFDSixJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELFFBQVEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsVUFBd0IsRUFBRSxFQUFFLEVBQUU7UUFDM0QsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2xCLFVBQVUsR0FBRyxJQUFBLG9DQUE0QixFQUFDLE9BQWlCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsVUFBVSxHQUFHLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQThCLENBQUMsRUFBRSxLQUFLLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSyxJQUFJLENBQUMsT0FBTyxDQUFRLENBQUMsTUFBTTtZQUMvRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVyQixNQUFNLE1BQU0sR0FBRztRQUNkLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF3QixFQUFFLElBQUksRUFBRSxFQUFFO1lBQzdELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFlLENBQUMsQ0FBQzs7Z0JBQy9ELEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBZSxDQUFDLENBQUM7WUFDekMsT0FBTyxHQUFHLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQ04sQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRXhCLE9BQU87UUFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBZSxDQUFDLENBQUM7O2dCQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlLCByZWFkSnNvbklmRXhpc3RzIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgPFQ+KG9wdHM6IFBhcnRpYWw8VD4sIGVudktleTogc3RyaW5nLCBmaWxlUGF0aCA9IFwiXCIpID0+IHtcblx0Y29uc3QgeyBlbnYgfSA9IHByb2Nlc3MsXG5cdFx0ZGVmUGF0aCA9IGZpbGVQYXRoIHx8IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpID8/IFwiLlwiLCBcImRlZmF1bHRzLmpzb241XCIpLFxuXHRcdGRlZiA9IHJlYWRKc29uSWZFeGlzdHMoZGVmUGF0aCksXG5cdFx0Ly8gZ2V0cyB2YWx1ZSBmcm9tIEVOViB8fCBvcHRpb25zIHx8IGRlZmF1bHRzIChpbiB0aGF0IG9yZGVyKVxuXHRcdGdldFZhbCA9IChlbnZOYW1lOiBrZXlvZiBUKSA9PiB7XG5cdFx0XHRjb25zdCBzbmFrZUVudk5hbWUgPSBgJHtlbnZLZXl9XyR7Y29udmVydENhbWVsVG9VcHBlclNuYWtlQ2FzZShcblx0XHRcdFx0ZW52TmFtZSBhcyBzdHJpbmdcblx0XHRcdCl9YDtcblx0XHRcdGlmIChlbnZbc25ha2VFbnZOYW1lXSkgcmV0dXJuIGVudltzbmFrZUVudk5hbWVdO1xuXHRcdFx0aWYgKG9wdHNbZW52TmFtZV0pIHJldHVybiBvcHRzW2Vudk5hbWVdO1xuXHRcdFx0cmV0dXJuIGRlZltlbnZOYW1lXTtcblx0XHR9LFxuXHRcdC8vIGdldHMgYXJyYXkgZnJvbSBFTlYgfHwgb3B0aW9ucyB8fCBkZWZhdWx0cyAoaW4gdGhhdCBvcmRlcilcblx0XHRnZXRBcnJheSA9IChlbnZOYW1lOiBrZXlvZiBULCBvcHROYW1lOiBrZXlvZiBUIHwgXCJcIiA9IFwiXCIpID0+IHtcblx0XHRcdGxldCBuZXdFbnZOYW1lO1xuXHRcdFx0aWYgKG9wdE5hbWUgPT09IFwiXCIpIHtcblx0XHRcdFx0b3B0TmFtZSA9IGVudk5hbWU7XG5cdFx0XHRcdG5ld0Vudk5hbWUgPSBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlKGVudk5hbWUgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHRcdG5ld0Vudk5hbWUgPSBgJHtlbnZLZXl9XyR7U3RyaW5nKGVudk5hbWUpfWA7XG5cdFx0XHRpZiAoZW52W25ld0Vudk5hbWVdKVxuXHRcdFx0XHRyZXR1cm4gZW52Py5bbmV3RW52TmFtZSBhcyBrZXlvZiB0eXBlb2YgZW52XT8uc3BsaXQocGF0aC5kZWxpbWl0ZXIpO1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkob3B0c1tvcHROYW1lXSkgJiYgKG9wdHNbb3B0TmFtZV0gYXMgW10pLmxlbmd0aClcblx0XHRcdFx0cmV0dXJuIG9wdHNbb3B0TmFtZV07XG5cdFx0XHRyZXR1cm4gZGVmW29wdE5hbWVdO1xuXHRcdH07XG5cblx0Y29uc29sZS5sb2coeyBkZWYgfSk7XG5cblx0Y29uc3QgcmV0VmFsID0ge1xuXHRcdC4uLk9iamVjdC5rZXlzKGRlZikucmVkdWNlKChhY2M6IFBhcnRpYWw8dHlwZW9mIGRlZj4sIGN1cnIpID0+IHtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KGRlZltjdXJyXSkpIGFjY1tjdXJyXSA9IGdldEFycmF5KGN1cnIgYXMga2V5b2YgVCk7XG5cdFx0XHRlbHNlIGFjY1tjdXJyXSA9IGdldFZhbChjdXJyIGFzIGtleW9mIFQpO1xuXHRcdFx0cmV0dXJuIGFjYztcblx0XHR9LCB7fSksXG5cdH07XG5cblx0Y29uc29sZS5sb2coeyByZXRWYWwgfSk7XG5cblx0cmV0dXJuIHtcblx0XHQuLi5PYmplY3Qua2V5cyhkZWYpLnJlZHVjZSgoYWNjOiBQYXJ0aWFsPHR5cGVvZiBkZWY+LCBjdXJyKSA9PiB7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShkZWZbY3Vycl0pKSBhY2NbY3Vycl0gPSBnZXRBcnJheShjdXJyIGFzIGtleW9mIFQpO1xuXHRcdFx0ZWxzZSBhY2NbY3Vycl0gPSBnZXRWYWwoY3VyciBhcyBrZXlvZiBUKTtcblx0XHRcdHJldHVybiBhY2M7XG5cdFx0fSwge30pLFxuXHR9O1xufTtcbiJdfQ== \ No newline at end of file diff --git a/lib/cjs/utils.d.ts b/lib/cjs/utils.d.ts index 991d592..fe6daed 100644 --- a/lib/cjs/utils.d.ts +++ b/lib/cjs/utils.d.ts @@ -3,13 +3,6 @@ export interface ErrorWithCode { code: string; } export declare const convertCamelToUpperSnakeCase: (str: string) => string; -/** - * From: https://www.webmanajemen.com/2022/05/use-import-meta-cjs.html - */ -export declare const getDirname: () => { - __dirname: string; - __filename: string; -}; export declare const getTime: () => string; export declare const log: (...msg: unknown[]) => void; export declare const readJsonIfExists: (filePath: string | URL) => any; diff --git a/lib/cjs/utils.d.ts.map b/lib/cjs/utils.d.ts.map index 5d0f3f3..b37b38e 100644 --- a/lib/cjs/utils.d.ts.map +++ b/lib/cjs/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAIA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,4BAA4B,QAAS,MAAM,WACM,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,UAAU;;;CAYtB,CAAC;AAEF,eAAO,MAAM,OAAO,cAyBnB,CAAC;AAEF,eAAO,MAAM,GAAG,WAAY,OAAO,EAAE,SACgB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,aAAc,MAAM,GAAG,GAAG,QAQtD,CAAC"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAIA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,4BAA4B,QAAS,MAAM,WACM,CAAC;AAE/D,eAAO,MAAM,OAAO,cAyBnB,CAAC;AAEF,eAAO,MAAM,GAAG,WAAY,OAAO,EAAE,SACgB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,aAAc,MAAM,GAAG,GAAG,QAQtD,CAAC"} \ No newline at end of file diff --git a/lib/cjs/utils.js b/lib/cjs/utils.js index 5120555..8228558 100644 --- a/lib/cjs/utils.js +++ b/lib/cjs/utils.js @@ -3,29 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.readJsonIfExists = exports.log = exports.getTime = exports.getDirname = exports.convertCamelToUpperSnakeCase = void 0; +exports.readJsonIfExists = exports.log = exports.getTime = exports.convertCamelToUpperSnakeCase = void 0; const chalk_1 = __importDefault(require("chalk")); const fs_1 = __importDefault(require("fs")); const json5_1 = __importDefault(require("json5")); const convertCamelToUpperSnakeCase = (str) => str.replace(/[A-Z]/g, (letter) => `_${letter}`).toUpperCase(); exports.convertCamelToUpperSnakeCase = convertCamelToUpperSnakeCase; -/** - * From: https://www.webmanajemen.com/2022/05/use-import-meta-cjs.html - */ -const getDirname = () => { - // get the stack - const { stack } = new Error(); - // get the third line (the original invoker) - const invokeFileLine = (stack || "").split(`\n`)[2]; - // match the file url from file://(.+.(ts|js)) and get the first capturing group - const __filename = (invokeFileLine.match(/file:\/\/(.+.(ts|js))/) || - [])[1].slice(1); - // match the file URL from file://(.+)/ and get the first capturing group - // the (.+) is a greedy quantifier and will make the RegExp expand to the largest match - const __dirname = (invokeFileLine.match(/file:\/\/(.+)\//) || [])[1].slice(1); - return { __dirname, __filename }; -}; -exports.getDirname = getDirname; const getTime = () => { const now = new Date(), tzo = -now.getTimezoneOffset(), dif = tzo >= 0 ? "+" : "-", pad = (num) => { const norm = Math.floor(Math.abs(num)); @@ -64,4 +47,4 @@ const readJsonIfExists = (filePath) => { } }; exports.readJsonIfExists = readJsonIfExists; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDRDQUFvQjtBQUNwQixrREFBMEI7QUFNbkIsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQzNELEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFEbEQsUUFBQSw0QkFBNEIsZ0NBQ3NCO0FBRS9EOztHQUVHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFO0lBQzlCLGdCQUFnQjtJQUNoQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUM5Qiw0Q0FBNEM7SUFDNUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELGdGQUFnRjtJQUNoRixNQUFNLFVBQVUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUM7UUFDaEUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLHlFQUF5RTtJQUN6RSwyRkFBMkY7SUFDM0YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBWlcsUUFBQSxVQUFVLGNBWXJCO0FBRUssTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQ3JCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxFQUM5QixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQzFCLEdBQUcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ04sR0FBRyxDQUFDLFdBQVcsRUFBRTtRQUNqQixHQUFHO1FBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0tBQ2IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDWixDQUFDLENBQUM7QUF6QlcsUUFBQSxPQUFPLFdBeUJsQjtBQUVLLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFjLEVBQUUsRUFBRSxDQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsZUFBTyxHQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFEekMsUUFBQSxHQUFHLE9BQ3NDO0FBRS9DLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFzQixFQUFFLEVBQUU7SUFDMUQsSUFBSSxDQUFDO1FBQ0osT0FBTyxlQUFLLENBQUMsS0FBSyxDQUFDLFlBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNkLGtDQUFrQztRQUNsQyxJQUFLLEdBQXFCLEVBQUUsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN6RCxNQUFNLEdBQUcsQ0FBQztJQUNYLENBQUM7QUFDRixDQUFDLENBQUM7QUFSVyxRQUFBLGdCQUFnQixvQkFRM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQganNvbjUgZnJvbSBcImpzb241XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JXaXRoQ29kZSB7XG5cdGNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRDYW1lbFRvVXBwZXJTbmFrZUNhc2UgPSAoc3RyOiBzdHJpbmcpID0+XG5cdHN0ci5yZXBsYWNlKC9bQS1aXS9nLCAobGV0dGVyKSA9PiBgXyR7bGV0dGVyfWApLnRvVXBwZXJDYXNlKCk7XG5cbi8qKlxuICogRnJvbTogaHR0cHM6Ly93d3cud2VibWFuYWplbWVuLmNvbS8yMDIyLzA1L3VzZS1pbXBvcnQtbWV0YS1janMuaHRtbFxuICovXG5leHBvcnQgY29uc3QgZ2V0RGlybmFtZSA9ICgpID0+IHtcblx0Ly8gZ2V0IHRoZSBzdGFja1xuXHRjb25zdCB7IHN0YWNrIH0gPSBuZXcgRXJyb3IoKTtcblx0Ly8gZ2V0IHRoZSB0aGlyZCBsaW5lICh0aGUgb3JpZ2luYWwgaW52b2tlcilcblx0Y29uc3QgaW52b2tlRmlsZUxpbmUgPSAoc3RhY2sgfHwgXCJcIikuc3BsaXQoYFxcbmApWzJdO1xuXHQvLyBtYXRjaCB0aGUgZmlsZSB1cmwgZnJvbSBmaWxlOi8vKC4rLih0c3xqcykpIGFuZCBnZXQgdGhlIGZpcnN0IGNhcHR1cmluZyBncm91cFxuXHRjb25zdCBfX2ZpbGVuYW1lID0gKGludm9rZUZpbGVMaW5lLm1hdGNoKC9maWxlOlxcL1xcLyguKy4odHN8anMpKS8pIHx8XG5cdFx0W10pWzFdLnNsaWNlKDEpO1xuXHQvLyBtYXRjaCB0aGUgZmlsZSBVUkwgZnJvbSBmaWxlOi8vKC4rKS8gYW5kIGdldCB0aGUgZmlyc3QgY2FwdHVyaW5nIGdyb3VwXG5cdC8vICAgICB0aGUgKC4rKSBpcyBhIGdyZWVkeSBxdWFudGlmaWVyIGFuZCB3aWxsIG1ha2UgdGhlIFJlZ0V4cCBleHBhbmQgdG8gdGhlIGxhcmdlc3QgbWF0Y2hcblx0Y29uc3QgX19kaXJuYW1lID0gKGludm9rZUZpbGVMaW5lLm1hdGNoKC9maWxlOlxcL1xcLyguKylcXC8vKSB8fCBbXSlbMV0uc2xpY2UoMSk7XG5cdHJldHVybiB7IF9fZGlybmFtZSwgX19maWxlbmFtZSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRpbWUgPSAoKSA9PiB7XG5cdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCksXG5cdFx0dHpvID0gLW5vdy5nZXRUaW1lem9uZU9mZnNldCgpLFxuXHRcdGRpZiA9IHR6byA+PSAwID8gXCIrXCIgOiBcIi1cIixcblx0XHRwYWQgPSAobnVtOiBudW1iZXIpID0+IHtcblx0XHRcdGNvbnN0IG5vcm0gPSBNYXRoLmZsb29yKE1hdGguYWJzKG51bSkpO1xuXHRcdFx0cmV0dXJuIGAke25vcm0gPCAxMCA/IFwiMFwiIDogXCJcIn0ke25vcm19YDtcblx0XHR9O1xuXHRyZXR1cm4gW1xuXHRcdG5vdy5nZXRGdWxsWWVhcigpLFxuXHRcdFwiLVwiLFxuXHRcdHBhZChub3cuZ2V0TW9udGgoKSArIDEpLFxuXHRcdFwiLVwiLFxuXHRcdHBhZChub3cuZ2V0RGF0ZSgpKSxcblx0XHRcIlRcIixcblx0XHRwYWQobm93LmdldEhvdXJzKCkpLFxuXHRcdFwiOlwiLFxuXHRcdHBhZChub3cuZ2V0TWludXRlcygpKSxcblx0XHRcIjpcIixcblx0XHRwYWQobm93LmdldFNlY29uZHMoKSksXG5cdFx0ZGlmLFxuXHRcdHBhZCh0em8gLyA2MCksXG5cdFx0XCI6XCIsXG5cdFx0cGFkKHR6byAlIDYwKSxcblx0XS5qb2luKFwiXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvZyA9ICguLi5tc2c6IHVua25vd25bXSkgPT5cblx0Y29uc29sZS5sb2coYCR7Y2hhbGsuZ3JleShgJHtnZXRUaW1lKCl9OmApfSAke21zZ31gKTtcblxuZXhwb3J0IGNvbnN0IHJlYWRKc29uSWZFeGlzdHMgPSAoZmlsZVBhdGg6IHN0cmluZyB8IFVSTCkgPT4ge1xuXHR0cnkge1xuXHRcdHJldHVybiBqc29uNS5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pKTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gaWYgbm8gZmlsZSwgcmV0dXJuIGVtcHR5IG9iamVjdFxuXHRcdGlmICgoZXJyIGFzIEVycm9yV2l0aENvZGUpPy5jb2RlID09PSBcIkVOT0VOVFwiKSByZXR1cm4ge307XG5cdFx0dGhyb3cgZXJyO1xuXHR9XG59O1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDRDQUFvQjtBQUNwQixrREFBMEI7QUFNbkIsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQzNELEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFEbEQsUUFBQSw0QkFBNEIsZ0NBQ3NCO0FBRXhELE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtJQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxFQUNyQixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsRUFDOUIsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUMxQixHQUFHLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNOLEdBQUcsQ0FBQyxXQUFXLEVBQUU7UUFDakIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztLQUNiLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDO0FBekJXLFFBQUEsT0FBTyxXQXlCbEI7QUFFSyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBYyxFQUFFLEVBQUUsQ0FDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGVBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLGVBQU8sR0FBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRHpDLFFBQUEsR0FBRyxPQUNzQztBQUUvQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBc0IsRUFBRSxFQUFFO0lBQzFELElBQUksQ0FBQztRQUNKLE9BQU8sZUFBSyxDQUFDLEtBQUssQ0FBQyxZQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDZCxrQ0FBa0M7UUFDbEMsSUFBSyxHQUFxQixFQUFFLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekQsTUFBTSxHQUFHLENBQUM7SUFDWCxDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBUlcsUUFBQSxnQkFBZ0Isb0JBUTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IGpzb241IGZyb20gXCJqc29uNVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yV2l0aENvZGUge1xuXHRjb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuXHRzdHIucmVwbGFjZSgvW0EtWl0vZywgKGxldHRlcikgPT4gYF8ke2xldHRlcn1gKS50b1VwcGVyQ2FzZSgpO1xuXG5leHBvcnQgY29uc3QgZ2V0VGltZSA9ICgpID0+IHtcblx0Y29uc3Qgbm93ID0gbmV3IERhdGUoKSxcblx0XHR0em8gPSAtbm93LmdldFRpbWV6b25lT2Zmc2V0KCksXG5cdFx0ZGlmID0gdHpvID49IDAgPyBcIitcIiA6IFwiLVwiLFxuXHRcdHBhZCA9IChudW06IG51bWJlcikgPT4ge1xuXHRcdFx0Y29uc3Qgbm9ybSA9IE1hdGguZmxvb3IoTWF0aC5hYnMobnVtKSk7XG5cdFx0XHRyZXR1cm4gYCR7bm9ybSA8IDEwID8gXCIwXCIgOiBcIlwifSR7bm9ybX1gO1xuXHRcdH07XG5cdHJldHVybiBbXG5cdFx0bm93LmdldEZ1bGxZZWFyKCksXG5cdFx0XCItXCIsXG5cdFx0cGFkKG5vdy5nZXRNb250aCgpICsgMSksXG5cdFx0XCItXCIsXG5cdFx0cGFkKG5vdy5nZXREYXRlKCkpLFxuXHRcdFwiVFwiLFxuXHRcdHBhZChub3cuZ2V0SG91cnMoKSksXG5cdFx0XCI6XCIsXG5cdFx0cGFkKG5vdy5nZXRNaW51dGVzKCkpLFxuXHRcdFwiOlwiLFxuXHRcdHBhZChub3cuZ2V0U2Vjb25kcygpKSxcblx0XHRkaWYsXG5cdFx0cGFkKHR6byAvIDYwKSxcblx0XHRcIjpcIixcblx0XHRwYWQodHpvICUgNjApLFxuXHRdLmpvaW4oXCJcIik7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nID0gKC4uLm1zZzogdW5rbm93bltdKSA9PlxuXHRjb25zb2xlLmxvZyhgJHtjaGFsay5ncmV5KGAke2dldFRpbWUoKX06YCl9ICR7bXNnfWApO1xuXG5leHBvcnQgY29uc3QgcmVhZEpzb25JZkV4aXN0cyA9IChmaWxlUGF0aDogc3RyaW5nIHwgVVJMKSA9PiB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGpzb241LnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSkpO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBpZiBubyBmaWxlLCByZXR1cm4gZW1wdHkgb2JqZWN0XG5cdFx0aWYgKChlcnIgYXMgRXJyb3JXaXRoQ29kZSk/LmNvZGUgPT09IFwiRU5PRU5UXCIpIHJldHVybiB7fTtcblx0XHR0aHJvdyBlcnI7XG5cdH1cbn07XG4iXX0= \ No newline at end of file diff --git a/lib/esm/loadConfig.d.ts b/lib/esm/loadConfig.d.ts index f7434fa..7454dd6 100644 --- a/lib/esm/loadConfig.d.ts +++ b/lib/esm/loadConfig.d.ts @@ -1,4 +1,4 @@ -declare const _default: (opts: Partial, envKey: string, localDefaultFilePath?: string) => { +declare const _default: (opts: Partial, envKey: string, filePath?: string) => { [x: string]: any; }; export default _default; diff --git a/lib/esm/loadConfig.d.ts.map b/lib/esm/loadConfig.d.ts.map index 795eba3..109e608 100644 --- a/lib/esm/loadConfig.d.ts.map +++ b/lib/esm/loadConfig.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/loadConfig.ts"],"names":[],"mappings":"sDAUS,MAAM;;;AAFf,wBAyCE"} \ No newline at end of file +{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/loadConfig.ts"],"names":[],"mappings":"sDAI6C,MAAM;;;AAAnD,wBA+CE"} \ No newline at end of file diff --git a/lib/esm/loadConfig.js b/lib/esm/loadConfig.js index 7077409..4102e68 100644 --- a/lib/esm/loadConfig.js +++ b/lib/esm/loadConfig.js @@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const utils_1 = require("./utils"); -exports.default = (opts, envKey, localDefaultFilePath = "") => { - const { env } = process, { __dirname } = (0, utils_1.getDirname)(), def = (0, utils_1.readJsonIfExists)(path_1.default.join(__dirname, localDefaultFilePath || "./defaults.json5")), +exports.default = (opts, envKey, filePath = "") => { + const { env } = process, defPath = filePath || path_1.default.join(process.cwd() ?? ".", "defaults.json5"), def = (0, utils_1.readJsonIfExists)(defPath), // gets value from ENV || options || defaults (in that order) getVal = (envName) => { const snakeEnvName = `${envKey}_${(0, utils_1.convertCamelToUpperSnakeCase)(envName)}`; @@ -30,6 +30,17 @@ exports.default = (opts, envKey, localDefaultFilePath = "") => { return opts[optName]; return def[optName]; }; + console.log({ def }); + const retVal = { + ...Object.keys(def).reduce((acc, curr) => { + if (Array.isArray(def[curr])) + acc[curr] = getArray(curr); + else + acc[curr] = getVal(curr); + return acc; + }, {}), + }; + console.log({ retVal }); return { ...Object.keys(def).reduce((acc, curr) => { if (Array.isArray(def[curr])) @@ -40,4 +51,4 @@ exports.default = (opts, envKey, localDefaultFilePath = "") => { }, {}), }; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZENvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLG1DQUlpQjtBQUVqQixrQkFBZSxDQUNkLElBQWdCLEVBQ2hCLE1BQWMsRUFDZCxvQkFBb0IsR0FBRyxFQUFFLEVBQ3hCLEVBQUU7SUFDSCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN0QixFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsa0JBQVUsR0FBRSxFQUM1QixHQUFHLEdBQUcsSUFBQSx3QkFBZ0IsRUFDckIsY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLElBQUksa0JBQWtCLENBQUMsQ0FDaEU7SUFDRCw2REFBNkQ7SUFDN0QsTUFBTSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1FBQzdCLE1BQU0sWUFBWSxHQUFHLEdBQUcsTUFBTSxJQUFJLElBQUEsb0NBQTRCLEVBQzdELE9BQWlCLENBQ2pCLEVBQUUsQ0FBQztRQUNKLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsUUFBUSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxVQUF3QixFQUFFLEVBQUUsRUFBRTtRQUMzRCxJQUFJLFVBQVUsQ0FBQztRQUNmLElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDbEIsVUFBVSxHQUFHLElBQUEsb0NBQTRCLEVBQUMsT0FBaUIsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxVQUFVLEdBQUcsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2xCLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBOEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFLLElBQUksQ0FBQyxPQUFPLENBQVEsQ0FBQyxNQUFNO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBZSxDQUFDLENBQUM7O2dCQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQge1xuXHRjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlLFxuXHRnZXREaXJuYW1lLFxuXHRyZWFkSnNvbklmRXhpc3RzLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZGVmYXVsdCA8VD4oXG5cdG9wdHM6IFBhcnRpYWw8VD4sXG5cdGVudktleTogc3RyaW5nLFxuXHRsb2NhbERlZmF1bHRGaWxlUGF0aCA9IFwiXCJcbikgPT4ge1xuXHRjb25zdCB7IGVudiB9ID0gcHJvY2Vzcyxcblx0XHR7IF9fZGlybmFtZSB9ID0gZ2V0RGlybmFtZSgpLFxuXHRcdGRlZiA9IHJlYWRKc29uSWZFeGlzdHMoXG5cdFx0XHRwYXRoLmpvaW4oX19kaXJuYW1lLCBsb2NhbERlZmF1bHRGaWxlUGF0aCB8fCBcIi4vZGVmYXVsdHMuanNvbjVcIilcblx0XHQpLFxuXHRcdC8vIGdldHMgdmFsdWUgZnJvbSBFTlYgfHwgb3B0aW9ucyB8fCBkZWZhdWx0cyAoaW4gdGhhdCBvcmRlcilcblx0XHRnZXRWYWwgPSAoZW52TmFtZToga2V5b2YgVCkgPT4ge1xuXHRcdFx0Y29uc3Qgc25ha2VFbnZOYW1lID0gYCR7ZW52S2V5fV8ke2NvbnZlcnRDYW1lbFRvVXBwZXJTbmFrZUNhc2UoXG5cdFx0XHRcdGVudk5hbWUgYXMgc3RyaW5nXG5cdFx0XHQpfWA7XG5cdFx0XHRpZiAoZW52W3NuYWtlRW52TmFtZV0pIHJldHVybiBlbnZbc25ha2VFbnZOYW1lXTtcblx0XHRcdGlmIChvcHRzW2Vudk5hbWVdKSByZXR1cm4gb3B0c1tlbnZOYW1lXTtcblx0XHRcdHJldHVybiBkZWZbZW52TmFtZV07XG5cdFx0fSxcblx0XHQvLyBnZXRzIGFycmF5IGZyb20gRU5WIHx8IG9wdGlvbnMgfHwgZGVmYXVsdHMgKGluIHRoYXQgb3JkZXIpXG5cdFx0Z2V0QXJyYXkgPSAoZW52TmFtZToga2V5b2YgVCwgb3B0TmFtZToga2V5b2YgVCB8IFwiXCIgPSBcIlwiKSA9PiB7XG5cdFx0XHRsZXQgbmV3RW52TmFtZTtcblx0XHRcdGlmIChvcHROYW1lID09PSBcIlwiKSB7XG5cdFx0XHRcdG9wdE5hbWUgPSBlbnZOYW1lO1xuXHRcdFx0XHRuZXdFbnZOYW1lID0gY29udmVydENhbWVsVG9VcHBlclNuYWtlQ2FzZShlbnZOYW1lIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0XHRuZXdFbnZOYW1lID0gYCR7ZW52S2V5fV8ke1N0cmluZyhlbnZOYW1lKX1gO1xuXHRcdFx0aWYgKGVudltuZXdFbnZOYW1lXSlcblx0XHRcdFx0cmV0dXJuIGVudj8uW25ld0Vudk5hbWUgYXMga2V5b2YgdHlwZW9mIGVudl0/LnNwbGl0KHBhdGguZGVsaW1pdGVyKTtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KG9wdHNbb3B0TmFtZV0pICYmIChvcHRzW29wdE5hbWVdIGFzIFtdKS5sZW5ndGgpXG5cdFx0XHRcdHJldHVybiBvcHRzW29wdE5hbWVdO1xuXHRcdFx0cmV0dXJuIGRlZltvcHROYW1lXTtcblx0XHR9O1xuXG5cdHJldHVybiB7XG5cdFx0Li4uT2JqZWN0LmtleXMoZGVmKS5yZWR1Y2UoKGFjYzogUGFydGlhbDx0eXBlb2YgZGVmPiwgY3VycikgPT4ge1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoZGVmW2N1cnJdKSkgYWNjW2N1cnJdID0gZ2V0QXJyYXkoY3VyciBhcyBrZXlvZiBUKTtcblx0XHRcdGVsc2UgYWNjW2N1cnJdID0gZ2V0VmFsKGN1cnIgYXMga2V5b2YgVCk7XG5cdFx0XHRyZXR1cm4gYWNjO1xuXHRcdH0sIHt9KSxcblx0fTtcbn07XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZENvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLG1DQUF5RTtBQUV6RSxrQkFBZSxDQUFJLElBQWdCLEVBQUUsTUFBYyxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUNyRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUN0QixPQUFPLEdBQUcsUUFBUSxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUN2RSxHQUFHLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUM7SUFDL0IsNkRBQTZEO0lBQzdELE1BQU0sR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtRQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLE1BQU0sSUFBSSxJQUFBLG9DQUE0QixFQUM3RCxPQUFpQixDQUNqQixFQUFFLENBQUM7UUFDSixJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELFFBQVEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsVUFBd0IsRUFBRSxFQUFFLEVBQUU7UUFDM0QsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2xCLFVBQVUsR0FBRyxJQUFBLG9DQUE0QixFQUFDLE9BQWlCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsVUFBVSxHQUFHLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNsQixPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQThCLENBQUMsRUFBRSxLQUFLLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSyxJQUFJLENBQUMsT0FBTyxDQUFRLENBQUMsTUFBTTtZQUMvRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVyQixNQUFNLE1BQU0sR0FBRztRQUNkLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF3QixFQUFFLElBQUksRUFBRSxFQUFFO1lBQzdELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFlLENBQUMsQ0FBQzs7Z0JBQy9ELEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBZSxDQUFDLENBQUM7WUFDekMsT0FBTyxHQUFHLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQ04sQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRXhCLE9BQU87UUFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBZSxDQUFDLENBQUM7O2dCQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlLCByZWFkSnNvbklmRXhpc3RzIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgPFQ+KG9wdHM6IFBhcnRpYWw8VD4sIGVudktleTogc3RyaW5nLCBmaWxlUGF0aCA9IFwiXCIpID0+IHtcblx0Y29uc3QgeyBlbnYgfSA9IHByb2Nlc3MsXG5cdFx0ZGVmUGF0aCA9IGZpbGVQYXRoIHx8IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpID8/IFwiLlwiLCBcImRlZmF1bHRzLmpzb241XCIpLFxuXHRcdGRlZiA9IHJlYWRKc29uSWZFeGlzdHMoZGVmUGF0aCksXG5cdFx0Ly8gZ2V0cyB2YWx1ZSBmcm9tIEVOViB8fCBvcHRpb25zIHx8IGRlZmF1bHRzIChpbiB0aGF0IG9yZGVyKVxuXHRcdGdldFZhbCA9IChlbnZOYW1lOiBrZXlvZiBUKSA9PiB7XG5cdFx0XHRjb25zdCBzbmFrZUVudk5hbWUgPSBgJHtlbnZLZXl9XyR7Y29udmVydENhbWVsVG9VcHBlclNuYWtlQ2FzZShcblx0XHRcdFx0ZW52TmFtZSBhcyBzdHJpbmdcblx0XHRcdCl9YDtcblx0XHRcdGlmIChlbnZbc25ha2VFbnZOYW1lXSkgcmV0dXJuIGVudltzbmFrZUVudk5hbWVdO1xuXHRcdFx0aWYgKG9wdHNbZW52TmFtZV0pIHJldHVybiBvcHRzW2Vudk5hbWVdO1xuXHRcdFx0cmV0dXJuIGRlZltlbnZOYW1lXTtcblx0XHR9LFxuXHRcdC8vIGdldHMgYXJyYXkgZnJvbSBFTlYgfHwgb3B0aW9ucyB8fCBkZWZhdWx0cyAoaW4gdGhhdCBvcmRlcilcblx0XHRnZXRBcnJheSA9IChlbnZOYW1lOiBrZXlvZiBULCBvcHROYW1lOiBrZXlvZiBUIHwgXCJcIiA9IFwiXCIpID0+IHtcblx0XHRcdGxldCBuZXdFbnZOYW1lO1xuXHRcdFx0aWYgKG9wdE5hbWUgPT09IFwiXCIpIHtcblx0XHRcdFx0b3B0TmFtZSA9IGVudk5hbWU7XG5cdFx0XHRcdG5ld0Vudk5hbWUgPSBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlKGVudk5hbWUgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHRcdG5ld0Vudk5hbWUgPSBgJHtlbnZLZXl9XyR7U3RyaW5nKGVudk5hbWUpfWA7XG5cdFx0XHRpZiAoZW52W25ld0Vudk5hbWVdKVxuXHRcdFx0XHRyZXR1cm4gZW52Py5bbmV3RW52TmFtZSBhcyBrZXlvZiB0eXBlb2YgZW52XT8uc3BsaXQocGF0aC5kZWxpbWl0ZXIpO1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkob3B0c1tvcHROYW1lXSkgJiYgKG9wdHNbb3B0TmFtZV0gYXMgW10pLmxlbmd0aClcblx0XHRcdFx0cmV0dXJuIG9wdHNbb3B0TmFtZV07XG5cdFx0XHRyZXR1cm4gZGVmW29wdE5hbWVdO1xuXHRcdH07XG5cblx0Y29uc29sZS5sb2coeyBkZWYgfSk7XG5cblx0Y29uc3QgcmV0VmFsID0ge1xuXHRcdC4uLk9iamVjdC5rZXlzKGRlZikucmVkdWNlKChhY2M6IFBhcnRpYWw8dHlwZW9mIGRlZj4sIGN1cnIpID0+IHtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KGRlZltjdXJyXSkpIGFjY1tjdXJyXSA9IGdldEFycmF5KGN1cnIgYXMga2V5b2YgVCk7XG5cdFx0XHRlbHNlIGFjY1tjdXJyXSA9IGdldFZhbChjdXJyIGFzIGtleW9mIFQpO1xuXHRcdFx0cmV0dXJuIGFjYztcblx0XHR9LCB7fSksXG5cdH07XG5cblx0Y29uc29sZS5sb2coeyByZXRWYWwgfSk7XG5cblx0cmV0dXJuIHtcblx0XHQuLi5PYmplY3Qua2V5cyhkZWYpLnJlZHVjZSgoYWNjOiBQYXJ0aWFsPHR5cGVvZiBkZWY+LCBjdXJyKSA9PiB7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShkZWZbY3Vycl0pKSBhY2NbY3Vycl0gPSBnZXRBcnJheShjdXJyIGFzIGtleW9mIFQpO1xuXHRcdFx0ZWxzZSBhY2NbY3Vycl0gPSBnZXRWYWwoY3VyciBhcyBrZXlvZiBUKTtcblx0XHRcdHJldHVybiBhY2M7XG5cdFx0fSwge30pLFxuXHR9O1xufTtcbiJdfQ== \ No newline at end of file diff --git a/lib/esm/utils.d.ts b/lib/esm/utils.d.ts index 991d592..fe6daed 100644 --- a/lib/esm/utils.d.ts +++ b/lib/esm/utils.d.ts @@ -3,13 +3,6 @@ export interface ErrorWithCode { code: string; } export declare const convertCamelToUpperSnakeCase: (str: string) => string; -/** - * From: https://www.webmanajemen.com/2022/05/use-import-meta-cjs.html - */ -export declare const getDirname: () => { - __dirname: string; - __filename: string; -}; export declare const getTime: () => string; export declare const log: (...msg: unknown[]) => void; export declare const readJsonIfExists: (filePath: string | URL) => any; diff --git a/lib/esm/utils.d.ts.map b/lib/esm/utils.d.ts.map index 5d0f3f3..b37b38e 100644 --- a/lib/esm/utils.d.ts.map +++ b/lib/esm/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAIA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,4BAA4B,QAAS,MAAM,WACM,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,UAAU;;;CAYtB,CAAC;AAEF,eAAO,MAAM,OAAO,cAyBnB,CAAC;AAEF,eAAO,MAAM,GAAG,WAAY,OAAO,EAAE,SACgB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,aAAc,MAAM,GAAG,GAAG,QAQtD,CAAC"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAIA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,4BAA4B,QAAS,MAAM,WACM,CAAC;AAE/D,eAAO,MAAM,OAAO,cAyBnB,CAAC;AAEF,eAAO,MAAM,GAAG,WAAY,OAAO,EAAE,SACgB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,aAAc,MAAM,GAAG,GAAG,QAQtD,CAAC"} \ No newline at end of file diff --git a/lib/esm/utils.js b/lib/esm/utils.js index 5120555..8228558 100644 --- a/lib/esm/utils.js +++ b/lib/esm/utils.js @@ -3,29 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.readJsonIfExists = exports.log = exports.getTime = exports.getDirname = exports.convertCamelToUpperSnakeCase = void 0; +exports.readJsonIfExists = exports.log = exports.getTime = exports.convertCamelToUpperSnakeCase = void 0; const chalk_1 = __importDefault(require("chalk")); const fs_1 = __importDefault(require("fs")); const json5_1 = __importDefault(require("json5")); const convertCamelToUpperSnakeCase = (str) => str.replace(/[A-Z]/g, (letter) => `_${letter}`).toUpperCase(); exports.convertCamelToUpperSnakeCase = convertCamelToUpperSnakeCase; -/** - * From: https://www.webmanajemen.com/2022/05/use-import-meta-cjs.html - */ -const getDirname = () => { - // get the stack - const { stack } = new Error(); - // get the third line (the original invoker) - const invokeFileLine = (stack || "").split(`\n`)[2]; - // match the file url from file://(.+.(ts|js)) and get the first capturing group - const __filename = (invokeFileLine.match(/file:\/\/(.+.(ts|js))/) || - [])[1].slice(1); - // match the file URL from file://(.+)/ and get the first capturing group - // the (.+) is a greedy quantifier and will make the RegExp expand to the largest match - const __dirname = (invokeFileLine.match(/file:\/\/(.+)\//) || [])[1].slice(1); - return { __dirname, __filename }; -}; -exports.getDirname = getDirname; const getTime = () => { const now = new Date(), tzo = -now.getTimezoneOffset(), dif = tzo >= 0 ? "+" : "-", pad = (num) => { const norm = Math.floor(Math.abs(num)); @@ -64,4 +47,4 @@ const readJsonIfExists = (filePath) => { } }; exports.readJsonIfExists = readJsonIfExists; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDRDQUFvQjtBQUNwQixrREFBMEI7QUFNbkIsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQzNELEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFEbEQsUUFBQSw0QkFBNEIsZ0NBQ3NCO0FBRS9EOztHQUVHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFO0lBQzlCLGdCQUFnQjtJQUNoQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUM5Qiw0Q0FBNEM7SUFDNUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELGdGQUFnRjtJQUNoRixNQUFNLFVBQVUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUM7UUFDaEUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLHlFQUF5RTtJQUN6RSwyRkFBMkY7SUFDM0YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBWlcsUUFBQSxVQUFVLGNBWXJCO0FBRUssTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQ3JCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxFQUM5QixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQzFCLEdBQUcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ04sR0FBRyxDQUFDLFdBQVcsRUFBRTtRQUNqQixHQUFHO1FBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0tBQ2IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDWixDQUFDLENBQUM7QUF6QlcsUUFBQSxPQUFPLFdBeUJsQjtBQUVLLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFjLEVBQUUsRUFBRSxDQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsZUFBTyxHQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFEekMsUUFBQSxHQUFHLE9BQ3NDO0FBRS9DLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFzQixFQUFFLEVBQUU7SUFDMUQsSUFBSSxDQUFDO1FBQ0osT0FBTyxlQUFLLENBQUMsS0FBSyxDQUFDLFlBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNkLGtDQUFrQztRQUNsQyxJQUFLLEdBQXFCLEVBQUUsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN6RCxNQUFNLEdBQUcsQ0FBQztJQUNYLENBQUM7QUFDRixDQUFDLENBQUM7QUFSVyxRQUFBLGdCQUFnQixvQkFRM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQganNvbjUgZnJvbSBcImpzb241XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JXaXRoQ29kZSB7XG5cdGNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRDYW1lbFRvVXBwZXJTbmFrZUNhc2UgPSAoc3RyOiBzdHJpbmcpID0+XG5cdHN0ci5yZXBsYWNlKC9bQS1aXS9nLCAobGV0dGVyKSA9PiBgXyR7bGV0dGVyfWApLnRvVXBwZXJDYXNlKCk7XG5cbi8qKlxuICogRnJvbTogaHR0cHM6Ly93d3cud2VibWFuYWplbWVuLmNvbS8yMDIyLzA1L3VzZS1pbXBvcnQtbWV0YS1janMuaHRtbFxuICovXG5leHBvcnQgY29uc3QgZ2V0RGlybmFtZSA9ICgpID0+IHtcblx0Ly8gZ2V0IHRoZSBzdGFja1xuXHRjb25zdCB7IHN0YWNrIH0gPSBuZXcgRXJyb3IoKTtcblx0Ly8gZ2V0IHRoZSB0aGlyZCBsaW5lICh0aGUgb3JpZ2luYWwgaW52b2tlcilcblx0Y29uc3QgaW52b2tlRmlsZUxpbmUgPSAoc3RhY2sgfHwgXCJcIikuc3BsaXQoYFxcbmApWzJdO1xuXHQvLyBtYXRjaCB0aGUgZmlsZSB1cmwgZnJvbSBmaWxlOi8vKC4rLih0c3xqcykpIGFuZCBnZXQgdGhlIGZpcnN0IGNhcHR1cmluZyBncm91cFxuXHRjb25zdCBfX2ZpbGVuYW1lID0gKGludm9rZUZpbGVMaW5lLm1hdGNoKC9maWxlOlxcL1xcLyguKy4odHN8anMpKS8pIHx8XG5cdFx0W10pWzFdLnNsaWNlKDEpO1xuXHQvLyBtYXRjaCB0aGUgZmlsZSBVUkwgZnJvbSBmaWxlOi8vKC4rKS8gYW5kIGdldCB0aGUgZmlyc3QgY2FwdHVyaW5nIGdyb3VwXG5cdC8vICAgICB0aGUgKC4rKSBpcyBhIGdyZWVkeSBxdWFudGlmaWVyIGFuZCB3aWxsIG1ha2UgdGhlIFJlZ0V4cCBleHBhbmQgdG8gdGhlIGxhcmdlc3QgbWF0Y2hcblx0Y29uc3QgX19kaXJuYW1lID0gKGludm9rZUZpbGVMaW5lLm1hdGNoKC9maWxlOlxcL1xcLyguKylcXC8vKSB8fCBbXSlbMV0uc2xpY2UoMSk7XG5cdHJldHVybiB7IF9fZGlybmFtZSwgX19maWxlbmFtZSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRpbWUgPSAoKSA9PiB7XG5cdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCksXG5cdFx0dHpvID0gLW5vdy5nZXRUaW1lem9uZU9mZnNldCgpLFxuXHRcdGRpZiA9IHR6byA+PSAwID8gXCIrXCIgOiBcIi1cIixcblx0XHRwYWQgPSAobnVtOiBudW1iZXIpID0+IHtcblx0XHRcdGNvbnN0IG5vcm0gPSBNYXRoLmZsb29yKE1hdGguYWJzKG51bSkpO1xuXHRcdFx0cmV0dXJuIGAke25vcm0gPCAxMCA/IFwiMFwiIDogXCJcIn0ke25vcm19YDtcblx0XHR9O1xuXHRyZXR1cm4gW1xuXHRcdG5vdy5nZXRGdWxsWWVhcigpLFxuXHRcdFwiLVwiLFxuXHRcdHBhZChub3cuZ2V0TW9udGgoKSArIDEpLFxuXHRcdFwiLVwiLFxuXHRcdHBhZChub3cuZ2V0RGF0ZSgpKSxcblx0XHRcIlRcIixcblx0XHRwYWQobm93LmdldEhvdXJzKCkpLFxuXHRcdFwiOlwiLFxuXHRcdHBhZChub3cuZ2V0TWludXRlcygpKSxcblx0XHRcIjpcIixcblx0XHRwYWQobm93LmdldFNlY29uZHMoKSksXG5cdFx0ZGlmLFxuXHRcdHBhZCh0em8gLyA2MCksXG5cdFx0XCI6XCIsXG5cdFx0cGFkKHR6byAlIDYwKSxcblx0XS5qb2luKFwiXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvZyA9ICguLi5tc2c6IHVua25vd25bXSkgPT5cblx0Y29uc29sZS5sb2coYCR7Y2hhbGsuZ3JleShgJHtnZXRUaW1lKCl9OmApfSAke21zZ31gKTtcblxuZXhwb3J0IGNvbnN0IHJlYWRKc29uSWZFeGlzdHMgPSAoZmlsZVBhdGg6IHN0cmluZyB8IFVSTCkgPT4ge1xuXHR0cnkge1xuXHRcdHJldHVybiBqc29uNS5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pKTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gaWYgbm8gZmlsZSwgcmV0dXJuIGVtcHR5IG9iamVjdFxuXHRcdGlmICgoZXJyIGFzIEVycm9yV2l0aENvZGUpPy5jb2RlID09PSBcIkVOT0VOVFwiKSByZXR1cm4ge307XG5cdFx0dGhyb3cgZXJyO1xuXHR9XG59O1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDRDQUFvQjtBQUNwQixrREFBMEI7QUFNbkIsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQzNELEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFEbEQsUUFBQSw0QkFBNEIsZ0NBQ3NCO0FBRXhELE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtJQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxFQUNyQixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsRUFDOUIsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUMxQixHQUFHLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNOLEdBQUcsQ0FBQyxXQUFXLEVBQUU7UUFDakIsR0FBRztRQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLEdBQUc7UUFDSCxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztLQUNiLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDO0FBekJXLFFBQUEsT0FBTyxXQXlCbEI7QUFFSyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBYyxFQUFFLEVBQUUsQ0FDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGVBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLGVBQU8sR0FBRSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRHpDLFFBQUEsR0FBRyxPQUNzQztBQUUvQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBc0IsRUFBRSxFQUFFO0lBQzFELElBQUksQ0FBQztRQUNKLE9BQU8sZUFBSyxDQUFDLEtBQUssQ0FBQyxZQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDZCxrQ0FBa0M7UUFDbEMsSUFBSyxHQUFxQixFQUFFLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekQsTUFBTSxHQUFHLENBQUM7SUFDWCxDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBUlcsUUFBQSxnQkFBZ0Isb0JBUTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IGpzb241IGZyb20gXCJqc29uNVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yV2l0aENvZGUge1xuXHRjb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Q2FtZWxUb1VwcGVyU25ha2VDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuXHRzdHIucmVwbGFjZSgvW0EtWl0vZywgKGxldHRlcikgPT4gYF8ke2xldHRlcn1gKS50b1VwcGVyQ2FzZSgpO1xuXG5leHBvcnQgY29uc3QgZ2V0VGltZSA9ICgpID0+IHtcblx0Y29uc3Qgbm93ID0gbmV3IERhdGUoKSxcblx0XHR0em8gPSAtbm93LmdldFRpbWV6b25lT2Zmc2V0KCksXG5cdFx0ZGlmID0gdHpvID49IDAgPyBcIitcIiA6IFwiLVwiLFxuXHRcdHBhZCA9IChudW06IG51bWJlcikgPT4ge1xuXHRcdFx0Y29uc3Qgbm9ybSA9IE1hdGguZmxvb3IoTWF0aC5hYnMobnVtKSk7XG5cdFx0XHRyZXR1cm4gYCR7bm9ybSA8IDEwID8gXCIwXCIgOiBcIlwifSR7bm9ybX1gO1xuXHRcdH07XG5cdHJldHVybiBbXG5cdFx0bm93LmdldEZ1bGxZZWFyKCksXG5cdFx0XCItXCIsXG5cdFx0cGFkKG5vdy5nZXRNb250aCgpICsgMSksXG5cdFx0XCItXCIsXG5cdFx0cGFkKG5vdy5nZXREYXRlKCkpLFxuXHRcdFwiVFwiLFxuXHRcdHBhZChub3cuZ2V0SG91cnMoKSksXG5cdFx0XCI6XCIsXG5cdFx0cGFkKG5vdy5nZXRNaW51dGVzKCkpLFxuXHRcdFwiOlwiLFxuXHRcdHBhZChub3cuZ2V0U2Vjb25kcygpKSxcblx0XHRkaWYsXG5cdFx0cGFkKHR6byAvIDYwKSxcblx0XHRcIjpcIixcblx0XHRwYWQodHpvICUgNjApLFxuXHRdLmpvaW4oXCJcIik7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nID0gKC4uLm1zZzogdW5rbm93bltdKSA9PlxuXHRjb25zb2xlLmxvZyhgJHtjaGFsay5ncmV5KGAke2dldFRpbWUoKX06YCl9ICR7bXNnfWApO1xuXG5leHBvcnQgY29uc3QgcmVhZEpzb25JZkV4aXN0cyA9IChmaWxlUGF0aDogc3RyaW5nIHwgVVJMKSA9PiB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGpzb241LnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSkpO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBpZiBubyBmaWxlLCByZXR1cm4gZW1wdHkgb2JqZWN0XG5cdFx0aWYgKChlcnIgYXMgRXJyb3JXaXRoQ29kZSk/LmNvZGUgPT09IFwiRU5PRU5UXCIpIHJldHVybiB7fTtcblx0XHR0aHJvdyBlcnI7XG5cdH1cbn07XG4iXX0= \ No newline at end of file diff --git a/package.json b/package.json index e23b4c4..f0dbbf7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@itsericwoodward/utils", - "version": "0.1.4", + "version": "0.1.5", "description": "A small collection of common libraries and functions the author likes to use in his Node applications.", "main": "./lib/cjs/index.js", "module": "./lib/esm/index.js", diff --git a/src/loadConfig.ts b/src/loadConfig.ts index da1755f..2bb7b2a 100644 --- a/src/loadConfig.ts +++ b/src/loadConfig.ts @@ -1,21 +1,11 @@ import path from "path"; -import { - convertCamelToUpperSnakeCase, - getDirname, - readJsonIfExists, -} from "./utils"; +import { convertCamelToUpperSnakeCase, readJsonIfExists } from "./utils"; -export default ( - opts: Partial, - envKey: string, - localDefaultFilePath = "" -) => { +export default (opts: Partial, envKey: string, filePath = "") => { const { env } = process, - { __dirname } = getDirname(), - def = readJsonIfExists( - path.join(__dirname, localDefaultFilePath || "./defaults.json5") - ), + defPath = filePath || path.join(process.cwd() ?? ".", "defaults.json5"), + def = readJsonIfExists(defPath), // gets value from ENV || options || defaults (in that order) getVal = (envName: keyof T) => { const snakeEnvName = `${envKey}_${convertCamelToUpperSnakeCase( @@ -40,6 +30,14 @@ export default ( return def[optName]; }; + const retVal = { + ...Object.keys(def).reduce((acc: Partial, curr) => { + if (Array.isArray(def[curr])) acc[curr] = getArray(curr as keyof T); + else acc[curr] = getVal(curr as keyof T); + return acc; + }, {}), + }; + return { ...Object.keys(def).reduce((acc: Partial, curr) => { if (Array.isArray(def[curr])) acc[curr] = getArray(curr as keyof T); diff --git a/src/utils.ts b/src/utils.ts index 5c19874..5053aea 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -9,23 +9,6 @@ export interface ErrorWithCode { export const convertCamelToUpperSnakeCase = (str: string) => str.replace(/[A-Z]/g, (letter) => `_${letter}`).toUpperCase(); -/** - * From: https://www.webmanajemen.com/2022/05/use-import-meta-cjs.html - */ -export const getDirname = () => { - // get the stack - const { stack } = new Error(); - // get the third line (the original invoker) - const invokeFileLine = (stack || "").split(`\n`)[2]; - // match the file url from file://(.+.(ts|js)) and get the first capturing group - const __filename = (invokeFileLine.match(/file:\/\/(.+.(ts|js))/) || - [])[1].slice(1); - // match the file URL from file://(.+)/ and get the first capturing group - // the (.+) is a greedy quantifier and will make the RegExp expand to the largest match - const __dirname = (invokeFileLine.match(/file:\/\/(.+)\//) || [])[1].slice(1); - return { __dirname, __filename }; -}; - export const getTime = () => { const now = new Date(), tzo = -now.getTimezoneOffset(),