@gdjiami/cli
Version:
CLI for build front end project.
42 lines (41 loc) • 1.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
var json5_1 = tslib_1.__importDefault(require("json5"));
var path_1 = tslib_1.__importDefault(require("path"));
var utils_1 = require("../../utils");
var genTsLintConfig = function (appPath, ownPath, ownPkg) {
var tsLintConfigPath = path_1.default.join(appPath, 'tslint.json');
var builinTsLintConfigPath = path_1.default.posix.join(ownPkg.name, 'lib/tslint.json');
if (fs_extra_1.default.existsSync(tsLintConfigPath)) {
var config = json5_1.default.parse(fs_extra_1.default.readFileSync(tsLintConfigPath).toString());
var dirty = false;
if (config.extends) {
if (typeof config.extends === 'string' && config.extends !== builinTsLintConfigPath) {
config.extends = [builinTsLintConfigPath, config.extends];
dirty = true;
}
else if (config.extends.indexOf(builinTsLintConfigPath) === -1) {
;
config.extends.unshift(builinTsLintConfigPath);
dirty = true;
}
}
if (config.defaultSeverity && config.defaultSeverity !== 'warning') {
config.defaultSeverity = 'warning';
dirty = true;
}
if (dirty) {
utils_1.writeJSON(tsLintConfigPath, config);
utils_1.message.info('updated tslint.json');
}
}
else {
utils_1.writeJSON(tsLintConfigPath, {
extends: [builinTsLintConfigPath],
});
utils_1.message.info('created tslint.json');
}
};
exports.default = genTsLintConfig;