UNPKG

@ts-dev-tools/core

Version:
35 lines (34 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.install = install; const node_fs_1 = require("node:fs"); const node_path_1 = require("node:path"); const constants_1 = require("../constants"); const DuplicateDependenciesService_1 = require("../services/DuplicateDependenciesService"); const MigrationsService_1 = require("../services/MigrationsService"); const PackageJson_1 = require("../services/PackageJson"); const PeerDependenciesService_1 = require("../services/PeerDependenciesService"); const SymlinkDependenciesService_1 = require("../services/SymlinkDependenciesService"); async function install({ cwd, dir = ".", }) { // Ensure that we're not trying to install outside cwd const absoluteProjectDir = (0, node_path_1.resolve)(cwd, dir); if (!(0, node_fs_1.existsSync)(absoluteProjectDir)) { throw new Error(`Unable to install ${constants_1.PROJECT_NAME} in given directory ${(0, node_path_1.join)(cwd, dir)}`); } if (!absoluteProjectDir.startsWith(cwd)) { throw new Error(`Unable to install ${constants_1.PROJECT_NAME} in a different folder than current process`); } // Run installation migration const currentVersion = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir).getTsDevToolsVersion(); if (currentVersion) { console.info(`Updating ${constants_1.PROJECT_NAME} installation...`); } else { console.info(`Installing ${constants_1.PROJECT_NAME}...`); } await MigrationsService_1.MigrationsService.executeMigrations(absoluteProjectDir, currentVersion); await SymlinkDependenciesService_1.SymlinkDependenciesService.executeSymlinking(absoluteProjectDir); await PeerDependenciesService_1.PeerDependenciesService.executeResolution(absoluteProjectDir); DuplicateDependenciesService_1.DuplicateDependenciesService.executeDeduplication(absoluteProjectDir); console.info(`Installation done!`); }