@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
34 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.readConfig = void 0;
const fs_1 = require("fs");
const tsx = require("tsx/cjs/api");
const yaml_1 = require("yaml");
// allows us to load ts files
const fullPath = (directory, ext) => directory + "/catladder." + ext;
const readConfig = async (directory = process.cwd()) => {
const found = ["ts", "js", "yml", "yaml"].find((extension) => (0, fs_1.existsSync)(fullPath(directory, extension)));
if (found) {
const filePath = fullPath(directory, found);
if (found === "ts" || found === "js") {
const result = await tsx.require(filePath, directory);
// weird: if target project is esm, result is under result.default, but if its commonjs, its under result.default.default
const config = result.default.default || result.default;
return {
path: filePath,
ext: found,
config,
};
}
else {
return {
path: filePath,
ext: found,
config: (0, yaml_1.parse)((0, fs_1.readFileSync)(filePath, { encoding: "utf-8" })),
};
}
}
return null;
};
exports.readConfig = readConfig;
//# sourceMappingURL=readConfig.js.map