ntts
Version:
A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.
75 lines (74 loc) • 4.09 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var fs_1 = require("fs");
var version_handler_1 = __importDefault(require("../dependency-installer/version-handler/version-handler"));
var logger_1 = __importDefault(require("../logger/logger"));
var tsconfig_json_1 = __importDefault(require("@tsconfig/node10/tsconfig.json"));
var tsconfig_json_2 = __importDefault(require("@tsconfig/node12/tsconfig.json"));
var tsconfig_json_3 = __importDefault(require("@tsconfig/node14/tsconfig.json"));
var tsconfig_json_4 = __importDefault(require("@tsconfig/node16/tsconfig.json"));
var tsconfig_json_5 = __importDefault(require("@tsconfig/node18/tsconfig.json"));
var tsconfig_json_6 = __importDefault(require("@tsconfig/node20/tsconfig.json"));
var tsconfig_default_json_1 = __importDefault(require("./tsconfig.default.json"));
var nodeToConfigList = [
{ version: 10, config: tsconfig_json_1.default },
{ version: 12, config: tsconfig_json_2.default },
{ version: 14, config: tsconfig_json_3.default },
{ version: 16, config: tsconfig_json_4.default },
{ version: 18, config: tsconfig_json_5.default },
{ version: 20, config: tsconfig_json_6.default },
];
var TsconfigHandler = /** @class */ (function () {
function TsconfigHandler() {
}
var _a;
_a = TsconfigHandler;
TsconfigHandler.getTsconfig = function () {
var nodeMajorVersion = version_handler_1.default.parsedNodeVersion()[0];
return nodeToConfigList.reduce(function (bestConfig, _b) {
var version = _b.version, config = _b.config;
return (nodeMajorVersion >= version ? config : bestConfig);
}, tsconfig_default_json_1.default);
};
TsconfigHandler.readConfig = function (filename) { return JSON.parse((0, fs_1.readFileSync)(filename, { encoding: 'utf-8' })); };
TsconfigHandler.writeToConfig = function (filename, tsconfig, partialConfig) {
(0, fs_1.writeFileSync)(filename, JSON.stringify(__assign(__assign({}, tsconfig), partialConfig), null, 2));
};
TsconfigHandler.tsconfigFileName = function () { return ((0, fs_1.existsSync)('tsconfig.ntts.json') ? 'tsconfig.ntts.json' : 'tsconfig.json'); };
TsconfigHandler.addConfig = function (path, ignores) {
logger_1.default.info('Adding new TypeScript configuration file');
var tsconfig = _a.getTsconfig();
var configName = (0, fs_1.existsSync)('tsconfig.json') ? 'tsconfig.ntts.json' : 'tsconfig.json';
var partialConfig = path ? { include: [path], exclude: ignores } : { exclude: ignores };
TsconfigHandler.writeToConfig(configName, tsconfig, partialConfig);
logger_1.default.success("Added ".concat(configName, " file"));
};
TsconfigHandler.addCompilerOptions = function (moduleSpecifierModel) {
var configName = _a.tsconfigFileName();
var tsconfig = _a.readConfig(configName);
var compilerOptions = __assign(__assign({}, tsconfig.compilerOptions), { resolveJsonModule: moduleSpecifierModel.allowJson || false, allowJs: moduleSpecifierModel.allowJs || false });
_a.writeToConfig(configName, tsconfig, { compilerOptions: compilerOptions });
};
TsconfigHandler.addModuleFile = function (fileName) {
var configName = _a.tsconfigFileName();
var tsconfig = _a.readConfig(configName);
var partialConfig = __assign(__assign({}, tsconfig), { files: [fileName] });
_a.writeToConfig(configName, tsconfig, partialConfig);
};
return TsconfigHandler;
}());
exports.default = TsconfigHandler;