UNPKG

1.33 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6exports.readConfigFile = void 0;
7const js_yaml_1 = __importDefault(require("js-yaml"));
8const toml_1 = __importDefault(require("@iarna/toml"));
9const fs_extra_1 = require("fs-extra");
10async function readFileOrNull(file) {
11 try {
12 const data = await fs_extra_1.readFile(file);
13 return data;
14 }
15 catch (err) {
16 if (err.code !== 'ENOENT') {
17 throw err;
18 }
19 }
20 return null;
21}
22async function readConfigFile(files) {
23 files = Array.isArray(files) ? files : [files];
24 for (const name of files) {
25 const data = await readFileOrNull(name);
26 if (data) {
27 const str = data.toString('utf8');
28 if (name.endsWith('.json')) {
29 return JSON.parse(str);
30 }
31 else if (name.endsWith('.toml')) {
32 return toml_1.default.parse(str);
33 }
34 else if (name.endsWith('.yaml') || name.endsWith('.yml')) {
35 return js_yaml_1.default.safeLoad(str, { filename: name });
36 }
37 }
38 }
39 return null;
40}
41exports.readConfigFile = readConfigFile;