UNPKG

ntts

Version:

A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.

75 lines (74 loc) 4.09 kB
"use strict"; 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;