@feflow/cli
Version:
A front-end flow tool.
140 lines • 5.04 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Config = exports.writeFileSync = exports.readFileSync = exports.setKeyToFile = exports.getKeyFormFile = exports.fileExit = void 0;
var fs_1 = __importDefault(require("fs"));
var path_1 = __importDefault(require("path"));
var import_fresh_1 = __importDefault(require("import-fresh"));
var strip_json_comments_1 = __importDefault(require("strip-json-comments"));
var js_yaml_1 = __importDefault(require("js-yaml"));
/*
* @description 保证文件一定存在,文件不存在则创建文件
* @param filePath 文件路径
* */
function fileExit(filePath) {
try {
fs_1.default.readFileSync(filePath, 'utf-8');
}
catch (_) {
fs_1.default.appendFileSync(filePath, '', 'utf-8');
}
}
exports.fileExit = fileExit;
// 文件中读取json对象的某个value
var getKeyFormFile = function (filePath, key) {
try {
var jsonString = fs_1.default.readFileSync(filePath, 'utf-8');
if (jsonString) {
var jsonData = JSON.parse(jsonString);
return jsonData[key];
}
return '';
}
catch (e) {
console.log('getKeyFormCache error =>', e);
}
};
exports.getKeyFormFile = getKeyFormFile;
// 文件中写入一个json字符串
var setKeyToFile = function (filePath, key, value) {
var _a;
try {
var jsonString = fs_1.default.readFileSync(filePath, 'utf-8');
var jsonData = void 0;
if (jsonString) {
jsonData = JSON.parse(jsonString);
jsonData[key] = value;
}
else {
jsonData = (_a = {},
_a[key] = value,
_a);
}
fs_1.default.writeFileSync(filePath, JSON.stringify(jsonData, null, 4), 'utf-8');
}
catch (e) {
console.log('setKeyToCache error =>', e);
}
};
exports.setKeyToFile = setKeyToFile;
// 同步读取文件
var readFileSync = function (filePath) { return fs_1.default.readFileSync(filePath, 'utf8').replace(/^\ufeff/u, ''); };
exports.readFileSync = readFileSync;
// 同步写入文件
var writeFileSync = function (filePath, data) {
fs_1.default.writeFileSync(filePath, data);
};
exports.writeFileSync = writeFileSync;
var Config = /** @class */ (function () {
function Config() {
}
Config.loadConfigFile = function (filePath) {
switch (path_1.default.extname(filePath)) {
case '.js':
return Config.loadJSConfigFile(filePath);
case '.json':
if (path_1.default.basename(filePath) === 'package.json') {
return Config.loadPackageJSONConfigFile(filePath);
}
return Config.loadJSONConfigFile(filePath);
case '.yaml':
case '.yml':
return Config.loadYAMLConfigFile(filePath);
default:
return Config.loadLegacyConfigFile(filePath);
}
};
Config.loadJSConfigFile = function (filePath) {
try {
return (0, import_fresh_1.default)(filePath);
}
catch (e) {
e instanceof Error && (e.message = "Cannot read config file: ".concat(filePath, "\nError: ").concat(e.message));
throw e;
}
};
Config.loadPackageJSONConfigFile = function (filePath) {
try {
return Config.loadJSONConfigFile(filePath);
}
catch (e) {
e instanceof Error && (e.message = "Cannot read config file: ".concat(filePath, "\nError: ").concat(e.message));
throw e;
}
};
Config.loadJSONConfigFile = function (filePath) {
try {
return JSON.parse((0, strip_json_comments_1.default)(Config.readFile(filePath)));
}
catch (e) {
e instanceof Error && (e.message = "Cannot read config file: ".concat(filePath, "\nError: ").concat(e.message));
throw e;
}
};
Config.readFile = function (filePath) {
return fs_1.default.readFileSync(filePath, 'utf8').replace(/^\ufeff/u, '');
};
Config.loadYAMLConfigFile = function (filePath) {
try {
return js_yaml_1.default.safeLoad(Config.readFile(filePath)) || {};
}
catch (e) {
e instanceof Error && (e.message = "Cannot read config file: ".concat(filePath, "\nError: ").concat(e.message));
throw e;
}
};
Config.loadLegacyConfigFile = function (filePath) {
try {
return js_yaml_1.default.safeLoad((0, strip_json_comments_1.default)(this.readFile(filePath))) || {};
}
catch (e) {
e instanceof Error && (e.message = "Cannot read config file: ".concat(filePath, "\nError: ").concat(e.message));
throw e;
}
};
return Config;
}());
exports.Config = Config;
//# sourceMappingURL=file.js.map