@ts-dev-tools/core 1.6.1 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -68,7 +68,7 @@
68
68
  ### _1_. Install
69
69
 
70
70
  ```sh
71
- npm install --dev @ts-dev-tools/core
71
+ npm install --include=dev @ts-dev-tools/core
72
72
  ```
73
73
 
74
74
  Or
@@ -0,0 +1,2 @@
1
+ declare const _default: any[];
2
+ export default _default;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // Must be duplicated "packages/core/eslint.config.mjs" and "packages/react/eslint.config.mjs" files
3
+ var __assign = (this && this.__assign) || function () {
4
+ __assign = Object.assign || function(t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
+ t[p] = s[p];
9
+ }
10
+ return t;
11
+ };
12
+ return __assign.apply(this, arguments);
13
+ };
14
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
15
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
16
+ if (ar || !(i in from)) {
17
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
18
+ ar[i] = from[i];
19
+ }
20
+ }
21
+ return to.concat(ar || Array.prototype.slice.call(from));
22
+ };
23
+ var __importDefault = (this && this.__importDefault) || function (mod) {
24
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ var globals_1 = __importDefault(require("globals"));
28
+ var typescript_eslint_1 = __importDefault(require("typescript-eslint"));
29
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
30
+ var pluginJs = require("@eslint/js");
31
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
32
+ var eslintConfigPrettier = require("eslint-config-prettier");
33
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
34
+ var eslintConfigJest = require("eslint-plugin-jest");
35
+ exports.default = __spreadArray(__spreadArray([
36
+ { languageOptions: { globals: globals_1.default.node } },
37
+ pluginJs.configs.recommended
38
+ ], typescript_eslint_1.default.configs.recommended, true), [
39
+ eslintConfigPrettier,
40
+ __assign(__assign({ languageOptions: { globals: globals_1.default.jest }, files: ["**/src/**/__tests__/**/*.[jt]s?(x)", "**/src/**/?(*.)+(spec|test)?(.*).+(ts|tsx|js)"] }, eslintConfigJest.configs["flat/recommended"]), { rules: __assign(__assign({}, eslintConfigJest.configs["flat/recommended"].rules), { "jest/prefer-expect-assertions": "off" }) }),
41
+ ], false);
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.install = void 0;
39
+ exports.install = install;
40
40
  var fs_1 = require("fs");
41
41
  var path_1 = require("path");
42
42
  var constants_1 = require("../constants");
@@ -45,11 +45,11 @@ var MigrationsService_1 = require("../services/MigrationsService");
45
45
  var PackageJson_1 = require("../services/PackageJson");
46
46
  var SymlinkDependenciesService_1 = require("../services/SymlinkDependenciesService");
47
47
  function install(_a) {
48
- var cwd = _a.cwd, _b = _a.dir, dir = _b === void 0 ? "." : _b;
49
- return __awaiter(this, void 0, void 0, function () {
48
+ return __awaiter(this, arguments, void 0, function (_b) {
50
49
  var absoluteProjectDir, currentVersion;
51
- return __generator(this, function (_c) {
52
- switch (_c.label) {
50
+ var cwd = _b.cwd, _c = _b.dir, dir = _c === void 0 ? "." : _c;
51
+ return __generator(this, function (_d) {
52
+ switch (_d.label) {
53
53
  case 0:
54
54
  absoluteProjectDir = (0, path_1.resolve)(cwd, dir);
55
55
  if (!(0, fs_1.existsSync)(absoluteProjectDir)) {
@@ -67,7 +67,7 @@ function install(_a) {
67
67
  }
68
68
  return [4 /*yield*/, MigrationsService_1.MigrationsService.executeMigrations(absoluteProjectDir, currentVersion)];
69
69
  case 1:
70
- _c.sent();
70
+ _d.sent();
71
71
  SymlinkDependenciesService_1.SymlinkDependenciesService.executeSymlinking(absoluteProjectDir);
72
72
  DuplicateDependenciesService_1.DuplicateDependenciesService.executeDeduplication(absoluteProjectDir);
73
73
  console.info("Installation done!");
@@ -76,4 +76,3 @@ function install(_a) {
76
76
  });
77
77
  });
78
78
  }
79
- exports.install = install;
@@ -42,7 +42,7 @@ var GitService_1 = require("../../services/GitService");
42
42
  var PackageJson_1 = require("../../services/PackageJson");
43
43
  var PackageManagerService_1 = require("../../services/PackageManagerService");
44
44
  var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0, function () {
45
- var jest, eslintConfig, prettier, commitlint, lintStaged, importSort, scripts, packageJson, isGitRepository, packageManager, gitHooks, _i, _a, gitHookName, gitHookCommand;
45
+ var jest, eslintConfig, prettier, commitlint, lintStaged, importSort, packageManager, scripts, packageJson, isGitRepository, gitHooks, _i, _a, gitHookName, gitHookCommand;
46
46
  return __generator(this, function (_b) {
47
47
  switch (_b.label) {
48
48
  case 0:
@@ -95,15 +95,16 @@ var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0
95
95
  parser: "typescript",
96
96
  },
97
97
  };
98
+ packageManager = PackageManagerService_1.PackageManagerService.detectPackageManager(absoluteProjectDir);
98
99
  scripts = {
99
100
  build: "tsc --noEmit",
100
101
  format: "prettier --write '**/*.js'",
101
102
  lint: 'eslint "src/**/*.{ts,tsx}"',
102
103
  jest: "jest --detectOpenHandles --forceExit",
103
- test: "yarn jest --maxWorkers=50%",
104
- "test:watch": "yarn jest --watch --maxWorkers=25%",
105
- "test:cov": "yarn jest --coverage",
106
- "test:ci": "yarn test:cov --runInBand",
104
+ test: "".concat(packageManager, " run jest --maxWorkers=50%"),
105
+ "test:watch": "".concat(packageManager, " run jest --watch --maxWorkers=25%"),
106
+ "test:cov": "".concat(packageManager, " run test --coverage"),
107
+ "test:ci": "".concat(packageManager, " run test:cov --runInBand"),
107
108
  prepare: "".concat(constants_1.PROJECT_NAME, " install"),
108
109
  };
109
110
  packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
@@ -120,7 +121,6 @@ var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0
120
121
  case 1:
121
122
  isGitRepository = _b.sent();
122
123
  if (!isGitRepository) return [3 /*break*/, 5];
123
- packageManager = PackageManagerService_1.PackageManagerService.detectPackageManager(absoluteProjectDir);
124
124
  gitHooks = {
125
125
  "pre-commit": "npx --no-install lint-staged && npx --no-install pretty-quick --staged",
126
126
  "commit-msg": "npx --no-install commitlint --edit $1",
@@ -0,0 +1,2 @@
1
+ import { MigrationUpFunction } from "../../services/MigrationsService";
2
+ export declare const up: MigrationUpFunction;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.up = void 0;
40
+ var PackageJson_1 = require("../../services/PackageJson");
41
+ var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0, function () {
42
+ var eslintConfig, packageJson;
43
+ return __generator(this, function (_a) {
44
+ eslintConfig = {
45
+ ignorePatterns: ["dist", "node_modules"],
46
+ };
47
+ packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
48
+ packageJson.merge({
49
+ eslintConfig: eslintConfig,
50
+ });
51
+ return [2 /*return*/];
52
+ });
53
+ }); };
54
+ exports.up = up;
@@ -0,0 +1,2 @@
1
+ import { MigrationUpFunction } from "../../services/MigrationsService";
2
+ export declare const up: MigrationUpFunction;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.up = void 0;
40
+ var FileService_1 = require("../../services/FileService");
41
+ var PackageJson_1 = require("../../services/PackageJson");
42
+ var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0, function () {
43
+ var packageJson, packageJsonContent, eslintConfigFilePath;
44
+ return __generator(this, function (_a) {
45
+ packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
46
+ packageJsonContent = packageJson.getContent();
47
+ delete packageJsonContent.eslintConfig;
48
+ packageJson.setContent(packageJsonContent);
49
+ eslintConfigFilePath = "".concat(absoluteProjectDir, "/eslint.config.mjs");
50
+ if (FileService_1.FileService.fileExists(eslintConfigFilePath)) {
51
+ return [2 /*return*/];
52
+ }
53
+ FileService_1.FileService.putFileContent(eslintConfigFilePath, "import tsDevToolsCore from \"@ts-dev-tools/core/dist/eslint-plugin-ts-dev-tools/index.js\";\n\nexport default tsDevToolsCore;\n");
54
+ return [2 /*return*/];
55
+ });
56
+ }); };
57
+ exports.up = up;
@@ -0,0 +1,2 @@
1
+ import { MigrationUpFunction } from "../../services/MigrationsService";
2
+ export declare const up: MigrationUpFunction;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.up = void 0;
40
+ var PackageJson_1 = require("../../services/PackageJson");
41
+ var PackageManagerService_1 = require("../../services/PackageManagerService");
42
+ var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0, function () {
43
+ var packageToInstall, nxDeps, packageJson, hasNx, commitlint;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0:
47
+ packageToInstall = "@commitlint/config-nx-scopes";
48
+ nxDeps = ["@nrwl/workspace", "nx", "lerna"];
49
+ packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
50
+ hasNx = nxDeps.some(function (dep) { return packageJson.hasDependency(dep); });
51
+ if (!hasNx) {
52
+ return [2 /*return*/];
53
+ }
54
+ return [4 /*yield*/, PackageManagerService_1.PackageManagerService.isPackageInstalled(packageToInstall, absoluteProjectDir)];
55
+ case 1:
56
+ if (!!(_a.sent())) return [3 /*break*/, 3];
57
+ return [4 /*yield*/, PackageManagerService_1.PackageManagerService.addDevPackage(packageToInstall, absoluteProjectDir)];
58
+ case 2:
59
+ _a.sent();
60
+ _a.label = 3;
61
+ case 3:
62
+ commitlint = {
63
+ extends: [packageToInstall],
64
+ };
65
+ packageJson.merge({
66
+ commitlint: commitlint,
67
+ });
68
+ return [2 /*return*/];
69
+ }
70
+ });
71
+ }); };
72
+ exports.up = up;
@@ -0,0 +1,6 @@
1
+ export declare class FileService {
2
+ static fileExists(filePath: string): boolean;
3
+ static getFileContent(filePath: string): string;
4
+ static putFileContent(path: string, content: string): void;
5
+ static copyFile(sourcePath: string, destinationPath: string): void;
6
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileService = void 0;
4
+ var fs_1 = require("fs");
5
+ var FileService = /** @class */ (function () {
6
+ function FileService() {
7
+ }
8
+ FileService.fileExists = function (filePath) {
9
+ return (0, fs_1.existsSync)(filePath);
10
+ };
11
+ FileService.getFileContent = function (filePath) {
12
+ return (0, fs_1.readFileSync)(filePath, "utf-8");
13
+ };
14
+ FileService.putFileContent = function (path, content) {
15
+ (0, fs_1.writeFileSync)(path, content);
16
+ };
17
+ FileService.copyFile = function (sourcePath, destinationPath) {
18
+ (0, fs_1.copyFileSync)(sourcePath, destinationPath);
19
+ };
20
+ return FileService;
21
+ }());
22
+ exports.FileService = FileService;
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -55,17 +78,19 @@ var MigrationsService = /** @class */ (function () {
55
78
  packageJsonBackupPath = packageJson.backup();
56
79
  _a.label = 1;
57
80
  case 1:
58
- _a.trys.push([1, 6, , 7]);
81
+ _a.trys.push([1, 7, , 8]);
59
82
  _i = 0, migrations_1 = migrations;
60
83
  _a.label = 2;
61
84
  case 2:
62
- if (!(_i < migrations_1.length)) return [3 /*break*/, 5];
85
+ if (!(_i < migrations_1.length)) return [3 /*break*/, 6];
63
86
  migration = migrations_1[_i];
64
87
  console.info("Applying migration \"".concat(migration.fullname, "\"..."));
65
- up = require(migration.path).up;
88
+ return [4 /*yield*/, Promise.resolve("".concat(migration.path)).then(function (s) { return __importStar(require(s)); })];
89
+ case 3:
90
+ up = (_a.sent()).up;
66
91
  // Apply migration
67
92
  return [4 /*yield*/, up(absoluteProjectDir)];
68
- case 3:
93
+ case 4:
69
94
  // Apply migration
70
95
  _a.sent();
71
96
  // Upgrade current version
@@ -73,18 +98,20 @@ var MigrationsService = /** @class */ (function () {
73
98
  tsDevTools: { version: migration.shortname },
74
99
  });
75
100
  console.info("Migration \"".concat(migration.fullname, "\" applied!"));
76
- _a.label = 4;
77
- case 4:
101
+ _a.label = 5;
102
+ case 5:
78
103
  _i++;
79
104
  return [3 /*break*/, 2];
80
- case 5: return [3 /*break*/, 7];
81
- case 6:
105
+ case 6: return [3 /*break*/, 8];
106
+ case 7:
82
107
  error_1 = _a.sent();
83
108
  // Rollback package.json
84
109
  packageJson.restore(packageJsonBackupPath);
85
110
  throw error_1;
86
- case 7:
87
- (0, fs_1.unlinkSync)(packageJsonBackupPath);
111
+ case 8:
112
+ if ((0, fs_1.existsSync)(packageJsonBackupPath)) {
113
+ (0, fs_1.unlinkSync)(packageJsonBackupPath);
114
+ }
88
115
  return [2 /*return*/];
89
116
  }
90
117
  });
@@ -7,6 +7,7 @@ export type JsonFileData = {
7
7
  export type PackageJsonContent = JsonFileData & PackageJsonType;
8
8
  export declare class PackageJson {
9
9
  private path;
10
+ private static readonly PACKAGE_JSON_FILE_NAME;
10
11
  private content?;
11
12
  constructor(path: string);
12
13
  getPath(): string;
@@ -19,6 +20,7 @@ export declare class PackageJson {
19
20
  getDependenciesPackageNames(): string[];
20
21
  getDevDependenciesPackageNames(): string[];
21
22
  getAllDependenciesPackageNames(): string[];
23
+ hasDependency(packageName: string): boolean;
22
24
  merge(update: PackageJsonContent): void;
23
25
  backup(): string;
24
26
  restore(backupPath: string): void;
@@ -10,14 +10,14 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PackageJson = void 0;
13
- var fs_1 = require("fs");
14
- var path_1 = require("path");
15
13
  var PackageJsonMerge_1 = require("./PackageJsonMerge");
14
+ var FileService_1 = require("./FileService");
15
+ var path_1 = require("path");
16
16
  var PackageJson = /** @class */ (function () {
17
17
  function PackageJson(path) {
18
18
  this.path = path;
19
19
  this.content = undefined;
20
- if (!(0, fs_1.existsSync)(this.path)) {
20
+ if (!FileService_1.FileService.fileExists(this.path)) {
21
21
  throw new Error("Package.json \"".concat(this.path, "\" does not exist"));
22
22
  }
23
23
  }
@@ -28,7 +28,7 @@ var PackageJson = /** @class */ (function () {
28
28
  if (this.content) {
29
29
  return this.content;
30
30
  }
31
- return (this.content = JSON.parse((0, fs_1.readFileSync)(this.path, "utf-8")));
31
+ return (this.content = JSON.parse(FileService_1.FileService.getFileContent(this.path)));
32
32
  };
33
33
  PackageJson.prototype.setContent = function (content) {
34
34
  this.content = content;
@@ -59,29 +59,30 @@ var PackageJson = /** @class */ (function () {
59
59
  PackageJson.prototype.getAllDependenciesPackageNames = function () {
60
60
  return Array.from(new Set(__spreadArray(__spreadArray([], this.getDependenciesPackageNames(), true), this.getDevDependenciesPackageNames(), true)));
61
61
  };
62
+ PackageJson.prototype.hasDependency = function (packageName) {
63
+ return this.getAllDependenciesPackageNames().includes(packageName);
64
+ };
62
65
  PackageJson.prototype.merge = function (update) {
63
66
  this.content = PackageJsonMerge_1.PackageJsonMerge.merge(this.getContent(), update);
64
67
  this.write();
65
68
  };
66
69
  PackageJson.prototype.backup = function () {
67
70
  var backupPath = this.path + ".backup";
68
- (0, fs_1.copyFileSync)(this.path, backupPath);
71
+ FileService_1.FileService.copyFile(this.path, backupPath);
69
72
  return backupPath;
70
73
  };
71
74
  PackageJson.prototype.restore = function (backupPath) {
72
- (0, fs_1.copyFileSync)(backupPath, this.path);
75
+ FileService_1.FileService.copyFile(backupPath, this.path);
73
76
  this.content = undefined;
74
77
  };
75
78
  PackageJson.prototype.write = function () {
76
- (0, fs_1.writeFileSync)(this.path, JSON.stringify(this.content, null, 2));
79
+ FileService_1.FileService.putFileContent(this.path, JSON.stringify(this.content, null, 2));
77
80
  };
78
81
  PackageJson.fromDirPath = function (dirPath) {
79
- var packageJsonPath = (0, path_1.join)(dirPath, "package.json");
80
- if (!(0, fs_1.existsSync)(packageJsonPath)) {
81
- throw new Error("No package.json found in directory \"".concat(dirPath, "\""));
82
- }
82
+ var packageJsonPath = (0, path_1.join)(dirPath, PackageJson.PACKAGE_JSON_FILE_NAME);
83
83
  return new PackageJson(packageJsonPath);
84
84
  };
85
+ PackageJson.PACKAGE_JSON_FILE_NAME = "package.json";
85
86
  return PackageJson;
86
87
  }());
87
88
  exports.PackageJson = PackageJson;
@@ -4,4 +4,8 @@ export declare enum PackageManagerType {
4
4
  }
5
5
  export declare class PackageManagerService {
6
6
  static detectPackageManager(dirPath: string): PackageManagerType;
7
+ static addDevPackage(packageName: string, dirPath: string): Promise<void>;
8
+ static isMonorepo(dirPath: string): Promise<boolean>;
9
+ static isPackageInstalled(packageName: string, dirPath: string): Promise<boolean>;
10
+ private static execCommand;
7
11
  }
@@ -1,6 +1,43 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.PackageManagerService = exports.PackageManagerType = void 0;
40
+ var child_process_1 = require("child_process");
4
41
  var fs_1 = require("fs");
5
42
  var path_1 = require("path");
6
43
  var PackageManagerType;
@@ -17,6 +54,148 @@ var PackageManagerService = /** @class */ (function () {
17
54
  }
18
55
  return PackageManagerType.npm;
19
56
  };
57
+ PackageManagerService.addDevPackage = function (packageName, dirPath) {
58
+ return __awaiter(this, void 0, void 0, function () {
59
+ var packageManager, isMonorepo, args;
60
+ return __generator(this, function (_a) {
61
+ switch (_a.label) {
62
+ case 0:
63
+ packageManager = PackageManagerService.detectPackageManager(dirPath);
64
+ return [4 /*yield*/, PackageManagerService.isMonorepo(dirPath)];
65
+ case 1:
66
+ isMonorepo = _a.sent();
67
+ args = [packageManager];
68
+ switch (packageManager) {
69
+ case PackageManagerType.yarn:
70
+ args.push("add", "--dev");
71
+ if (isMonorepo) {
72
+ args.push("--ignore-workspace-root-check");
73
+ }
74
+ break;
75
+ case PackageManagerType.npm:
76
+ args.push("install", "--save-dev");
77
+ if (isMonorepo) {
78
+ args.push("--no-workspaces");
79
+ }
80
+ break;
81
+ }
82
+ args.push(packageName);
83
+ return [4 /*yield*/, PackageManagerService.execCommand(args, dirPath)];
84
+ case 2:
85
+ _a.sent();
86
+ return [2 /*return*/];
87
+ }
88
+ });
89
+ });
90
+ };
91
+ PackageManagerService.isMonorepo = function (dirPath) {
92
+ return __awaiter(this, void 0, void 0, function () {
93
+ var packageManager, args, output;
94
+ return __generator(this, function (_a) {
95
+ switch (_a.label) {
96
+ case 0:
97
+ packageManager = PackageManagerService.detectPackageManager(dirPath);
98
+ args = [packageManager];
99
+ switch (packageManager) {
100
+ case PackageManagerType.yarn:
101
+ args.push("workspaces", "info");
102
+ break;
103
+ case PackageManagerType.npm:
104
+ args.push("--workspaces", "list");
105
+ break;
106
+ }
107
+ args.push("> /dev/null 2>&1 && echo true || echo false;");
108
+ return [4 /*yield*/, PackageManagerService.execCommand(args, dirPath, true)];
109
+ case 1:
110
+ output = _a.sent();
111
+ return [2 /*return*/, output.trim() === "true"];
112
+ }
113
+ });
114
+ });
115
+ };
116
+ PackageManagerService.isPackageInstalled = function (packageName, dirPath) {
117
+ return __awaiter(this, void 0, void 0, function () {
118
+ var packageManager, args, output, installedPackages;
119
+ var _a, _b;
120
+ return __generator(this, function (_c) {
121
+ switch (_c.label) {
122
+ case 0:
123
+ packageManager = PackageManagerService.detectPackageManager(dirPath);
124
+ args = [
125
+ packageManager,
126
+ "list",
127
+ "--depth=1",
128
+ "--json",
129
+ "--no-progress",
130
+ "--pattern=\"".concat(packageName, "\""),
131
+ "--non-interactive",
132
+ ];
133
+ return [4 /*yield*/, PackageManagerService.execCommand(args, dirPath, true)];
134
+ case 1:
135
+ output = _c.sent();
136
+ installedPackages = JSON.parse(output);
137
+ switch (packageManager) {
138
+ case PackageManagerType.yarn:
139
+ return [2 /*return*/, (_b = (_a = installedPackages === null || installedPackages === void 0 ? void 0 : installedPackages.data) === null || _a === void 0 ? void 0 : _a.trees) === null || _b === void 0 ? void 0 : _b.some(function (tree) {
140
+ return tree.name.startsWith(packageName + "@");
141
+ })];
142
+ case PackageManagerType.npm:
143
+ return [2 /*return*/, installedPackages.dependencies
144
+ ? Object.prototype.hasOwnProperty.call(installedPackages.dependencies, packageName)
145
+ : false];
146
+ }
147
+ return [2 /*return*/];
148
+ }
149
+ });
150
+ });
151
+ };
152
+ PackageManagerService.execCommand = function (args_1, cwd_1) {
153
+ return __awaiter(this, arguments, void 0, function (args, cwd, silent) {
154
+ var cmd;
155
+ if (silent === void 0) { silent = false; }
156
+ return __generator(this, function (_a) {
157
+ if (!args.length) {
158
+ throw new Error("Command args must not be empty");
159
+ }
160
+ if (cwd && !(0, fs_1.existsSync)(cwd)) {
161
+ throw new Error("Directory \"".concat(cwd, "\" does not exist"));
162
+ }
163
+ if (Array.isArray(args)) {
164
+ cmd = args.shift() || "";
165
+ }
166
+ else {
167
+ cmd = args;
168
+ args = [];
169
+ }
170
+ return [2 /*return*/, new Promise(function (resolve, reject) {
171
+ var child = (0, child_process_1.spawn)(cmd, args, {
172
+ stdio: silent ? "pipe" : "inherit",
173
+ shell: true,
174
+ windowsVerbatimArguments: true,
175
+ cwd: cwd,
176
+ });
177
+ var output = "";
178
+ var error = "";
179
+ child.on("exit", function (code) {
180
+ if (code) {
181
+ return reject(error);
182
+ }
183
+ resolve(output);
184
+ });
185
+ if (child.stdout) {
186
+ child.stdout.on("data", function (data) {
187
+ output += "\n".concat(data);
188
+ });
189
+ }
190
+ if (child.stderr) {
191
+ child.stderr.on("data", function (data) {
192
+ error += "\n".concat(data);
193
+ });
194
+ }
195
+ })];
196
+ });
197
+ });
198
+ };
20
199
  return PackageManagerService;
21
200
  }());
22
201
  exports.PackageManagerService = PackageManagerService;
@@ -19,13 +19,18 @@ var SymlinkDependenciesService = /** @class */ (function () {
19
19
  };
20
20
  SymlinkDependenciesService.symlinkPluginDependencies = function (absoluteProjectDir, plugin) {
21
21
  var pluginDependencies = SymlinkDependenciesService.getPluginDependencies(plugin);
22
+ var pluginDependenciesPath = (0, path_1.join)(plugin.path, SymlinkDependenciesService.DEPENDENCIES_FOLDER);
23
+ if (!(0, fs_1.existsSync)(pluginDependenciesPath)) {
24
+ throw new Error("Plugin dependencies folder not found: ".concat(pluginDependenciesPath));
25
+ }
22
26
  for (var _i = 0, pluginDependencies_1 = pluginDependencies; _i < pluginDependencies_1.length; _i++) {
23
27
  var pluginDependency = pluginDependencies_1[_i];
24
- var pluginDependencyPath = (0, path_1.join)(plugin.path, SymlinkDependenciesService.DEPENDENCIES_FOLDER, pluginDependency);
28
+ var pluginDependencyPath = (0, path_1.join)(pluginDependenciesPath, pluginDependency);
25
29
  if (!(0, fs_1.existsSync)(pluginDependencyPath)) {
26
30
  continue;
27
31
  }
28
- var projectPluginDependencyPath = (0, path_1.join)(absoluteProjectDir, SymlinkDependenciesService.DEPENDENCIES_FOLDER, pluginDependency);
32
+ var projectDependencyPath = (0, path_1.join)(absoluteProjectDir, SymlinkDependenciesService.DEPENDENCIES_FOLDER);
33
+ var projectPluginDependencyPath = (0, path_1.join)(projectDependencyPath, pluginDependency);
29
34
  if ((0, fs_1.existsSync)(projectPluginDependencyPath)) {
30
35
  continue;
31
36
  }
@@ -38,6 +43,10 @@ var SymlinkDependenciesService = /** @class */ (function () {
38
43
  return pluginPackageJson.getDependenciesPackageNames();
39
44
  };
40
45
  SymlinkDependenciesService.symlinkDependency = function (pluginDependencyPath, projectPluginDependencyPath) {
46
+ var pluginDependencyParentFolder = (0, path_1.join)(projectPluginDependencyPath, "..");
47
+ if (!(0, fs_1.existsSync)(pluginDependencyParentFolder)) {
48
+ (0, fs_1.mkdirSync)(pluginDependencyParentFolder, { recursive: true });
49
+ }
41
50
  (0, fs_1.symlinkSync)(pluginDependencyPath, projectPluginDependencyPath);
42
51
  };
43
52
  SymlinkDependenciesService.DEPENDENCIES_FOLDER = "node_modules";
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { ExecException } from "child_process";
3
2
  export declare function exec(cwd: string, cmd: string): Promise<{
4
3
  code: number;
package/dist/tests/cli.js CHANGED
@@ -36,7 +36,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.safeExec = exports.exec = void 0;
39
+ exports.exec = exec;
40
+ exports.safeExec = safeExec;
40
41
  var child_process_1 = require("child_process");
41
42
  function exec(cwd, cmd) {
42
43
  return new Promise(function (resolve) {
@@ -50,7 +51,6 @@ function exec(cwd, cmd) {
50
51
  });
51
52
  });
52
53
  }
53
- exports.exec = exec;
54
54
  function safeExec(cwd, cmd) {
55
55
  return __awaiter(this, void 0, void 0, function () {
56
56
  var _a, code, stderr, stdout, error;
@@ -68,4 +68,3 @@ function safeExec(cwd, cmd) {
68
68
  });
69
69
  });
70
70
  }
71
- exports.safeExec = safeExec;
@@ -1,18 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getConsoleInfoContent = exports.resetMockedConsoleInfo = exports.mockConsoleInfo = void 0;
3
+ exports.mockConsoleInfo = mockConsoleInfo;
4
+ exports.resetMockedConsoleInfo = resetMockedConsoleInfo;
5
+ exports.getConsoleInfoContent = getConsoleInfoContent;
4
6
  var info = console.info;
5
7
  function mockConsoleInfo() {
6
8
  console.info = jest.fn();
7
9
  }
8
- exports.mockConsoleInfo = mockConsoleInfo;
9
10
  function resetMockedConsoleInfo() {
10
11
  console.info = info;
11
12
  }
12
- exports.resetMockedConsoleInfo = resetMockedConsoleInfo;
13
13
  function getConsoleInfoContent() {
14
14
  var _a;
15
15
  var calls = (_a = console.info) === null || _a === void 0 ? void 0 : _a.mock.calls;
16
16
  return calls.flat().join("\n");
17
17
  }
18
- exports.getConsoleInfoContent = getConsoleInfoContent;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.copyFolderSync = exports.deleteFolderRecursive = void 0;
3
+ exports.deleteFolderRecursive = deleteFolderRecursive;
4
+ exports.copyFolderSync = copyFolderSync;
4
5
  var fs_1 = require("fs");
5
6
  var path_1 = require("path");
6
7
  function deleteFolderRecursive(path) {
@@ -19,7 +20,6 @@ function deleteFolderRecursive(path) {
19
20
  (0, fs_1.rmdirSync)(path);
20
21
  }
21
22
  }
22
- exports.deleteFolderRecursive = deleteFolderRecursive;
23
23
  function copyFolderSync(from, to) {
24
24
  if (!(0, fs_1.existsSync)(to)) {
25
25
  (0, fs_1.mkdirSync)(to);
@@ -33,4 +33,3 @@ function copyFolderSync(from, to) {
33
33
  }
34
34
  });
35
35
  }
36
- exports.copyFolderSync = copyFolderSync;
@@ -36,7 +36,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.createTestPackagesDir = exports.createTestMonorepoProjectDir = exports.removeTestProjectDir = exports.restorePackageJson = exports.getCorePackageRootPath = exports.createTestProjectDirWithFixtures = exports.createTestProjectDir = exports.testProjectDir = void 0;
39
+ exports.createTestPackagesDir = exports.createTestMonorepoProjectDir = exports.testProjectDir = void 0;
40
+ exports.createTestProjectDir = createTestProjectDir;
41
+ exports.createTestProjectDirWithFixtures = createTestProjectDirWithFixtures;
42
+ exports.getCorePackageRootPath = getCorePackageRootPath;
43
+ exports.restorePackageJson = restorePackageJson;
44
+ exports.removeTestProjectDir = removeTestProjectDir;
40
45
  var fs_1 = require("fs");
41
46
  var path_1 = require("path");
42
47
  var PackageJson_1 = require("../services/PackageJson");
@@ -50,7 +55,6 @@ function createTestProjectDir(filename) {
50
55
  var testDirPath = getTestProjectDirPath(filename);
51
56
  return (0, test_dir_1.createTestDir)(testDirPath, true);
52
57
  }
53
- exports.createTestProjectDir = createTestProjectDir;
54
58
  function createTestProjectDirWithFixtures(filename) {
55
59
  var testProjectDirPath = createTestProjectDir(filename);
56
60
  (0, fs_1.mkdirSync)((0, path_1.join)(testProjectDirPath, ".git/hooks"), { recursive: true });
@@ -64,7 +68,6 @@ function createTestProjectDirWithFixtures(filename) {
64
68
  restorePackageJson(filename);
65
69
  return testProjectDirPath;
66
70
  }
67
- exports.createTestProjectDirWithFixtures = createTestProjectDirWithFixtures;
68
71
  function getCorePackageRootPath(filename) {
69
72
  var testProjectDirPath = getTestProjectDirPath(filename);
70
73
  if (!(0, fs_1.existsSync)(testProjectDirPath)) {
@@ -72,7 +75,6 @@ function getCorePackageRootPath(filename) {
72
75
  }
73
76
  return (0, path_1.join)(testProjectDirPath, "node_modules/@ts-dev-tools/core");
74
77
  }
75
- exports.getCorePackageRootPath = getCorePackageRootPath;
76
78
  function restorePackageJson(filename) {
77
79
  var testProjectDirPath = getTestProjectDirPath(filename);
78
80
  if (!(0, fs_1.existsSync)(testProjectDirPath)) {
@@ -80,12 +82,10 @@ function restorePackageJson(filename) {
80
82
  }
81
83
  (0, fs_1.copyFileSync)(defaultPackageJsonPath, (0, path_1.join)(testProjectDirPath, "package.json"));
82
84
  }
83
- exports.restorePackageJson = restorePackageJson;
84
85
  function removeTestProjectDir(filename) {
85
86
  var testProjectDirPath = getTestProjectDirPath(filename);
86
87
  (0, test_dir_1.removeTestDir)(testProjectDirPath);
87
88
  }
88
- exports.removeTestProjectDir = removeTestProjectDir;
89
89
  var createTestMonorepoProjectDir = function (projectDir, createProject) { return __awaiter(void 0, void 0, void 0, function () {
90
90
  var packageDir;
91
91
  return __generator(this, function (_a) {
@@ -93,11 +93,14 @@ var createTestMonorepoProjectDir = function (projectDir, createProject) { return
93
93
  case 0: return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn init --yes")];
94
94
  case 1:
95
95
  _a.sent();
96
- return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn add -W --dev typescript")];
96
+ return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn install")];
97
97
  case 2:
98
98
  _a.sent();
99
- return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn tsc --init")];
99
+ return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn add -W --dev typescript")];
100
100
  case 3:
101
+ _a.sent();
102
+ return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn tsc --init")];
103
+ case 4:
101
104
  _a.sent();
102
105
  PackageJson_1.PackageJson.fromDirPath(projectDir).merge({
103
106
  private: true,
@@ -106,9 +109,6 @@ var createTestMonorepoProjectDir = function (projectDir, createProject) { return
106
109
  packageDir = (0, path_1.join)(projectDir, "packages/test-package");
107
110
  (0, fs_1.mkdirSync)(packageDir, { recursive: true });
108
111
  return [4 /*yield*/, createProject(packageDir)];
109
- case 4:
110
- _a.sent();
111
- return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn install")];
112
112
  case 5:
113
113
  _a.sent();
114
114
  return [2 /*return*/];
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeTestDir = exports.createTestDir = exports.getTestDirPath = void 0;
3
+ exports.getTestDirPath = void 0;
4
+ exports.createTestDir = createTestDir;
5
+ exports.removeTestDir = removeTestDir;
4
6
  var fs_1 = require("fs");
5
7
  var os_1 = require("os");
6
8
  var path_1 = require("path");
@@ -20,11 +22,9 @@ function createTestDir(testDirPath, removeIfExists) {
20
22
  (0, fs_1.mkdirSync)(testDirPath);
21
23
  return testDirPath;
22
24
  }
23
- exports.createTestDir = createTestDir;
24
25
  function removeTestDir(testDirPath) {
25
26
  if (!(0, fs_1.existsSync)(testDirPath)) {
26
27
  throw new Error("Test project dir \"".concat(testDirPath, "\" does not exist"));
27
28
  }
28
29
  (0, file_system_1.deleteFolderRecursive)(testDirPath);
29
30
  }
30
- exports.removeTestDir = removeTestDir;
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@ts-dev-tools/core",
3
- "version": "1.6.1",
3
+ "version": "1.8.0",
4
4
  "description": "TS dev tools Core",
5
5
  "keywords": [
6
6
  "linter",
7
7
  "prettier",
8
8
  "git-hooks"
9
9
  ],
10
- "author": "Emilien Escalle <emilien.escalle@escemi.com>",
10
+ "author": "ESCEMI <contact@escemi.com>",
11
11
  "homepage": "https://github.com/escemi-tech/ts-dev-tools",
12
12
  "license": "MIT",
13
13
  "bin": {
@@ -44,54 +44,28 @@
44
44
  "url": "https://github.com/escemi-tech/ts-dev-tools/issues"
45
45
  },
46
46
  "dependencies": {
47
- "@commitlint/cli": "^18.4.0",
48
- "@commitlint/config-conventional": "^18.4.0",
47
+ "@commitlint/cli": "^19.4.0",
48
+ "@commitlint/config-conventional": "^19.0.3",
49
+ "@eslint/js": "^9.9.1",
49
50
  "@types/jest": "^29.5.2",
50
- "@types/node": "^20.5.7",
51
- "@typescript-eslint/eslint-plugin": "^6.5.0",
52
- "@typescript-eslint/parser": "^6.5.0",
53
- "eslint": "^8.48.0",
54
- "eslint-config-prettier": "^9.0.0",
55
- "eslint-plugin-import": "^2.26.0",
56
- "eslint-plugin-jest": "^27.1.5",
57
- "eslint-plugin-node": "^11.1.0",
58
- "eslint-plugin-promise": "^6.1.1",
51
+ "@types/node": "^22.5.0",
52
+ "eslint": "^9.9.1",
53
+ "eslint-config-prettier": "^9.1.0",
54
+ "eslint-plugin-jest": "^28.8.0",
59
55
  "import-sort-style-module": "^6.0.0",
60
56
  "jest": "^29.5.0",
61
- "lint-staged": "^15.0.2",
62
- "prettier": "^3.0.3",
57
+ "lint-staged": "^15.2.9",
58
+ "prettier": "^3.3.3",
63
59
  "prettier-plugin-import-sort": "^0.0.7",
64
- "pretty-quick": "^3.1.3",
65
- "ts-jest": "^29.1.0",
66
- "typescript": "^5.0.2"
60
+ "pretty-quick": "^4.0.0",
61
+ "ts-jest": "^29.2.5",
62
+ "typescript": "^5.5.4",
63
+ "typescript-eslint": "^8.3.0"
67
64
  },
68
65
  "devDependencies": {
69
66
  "pinst": "^3.0.0",
70
67
  "ts-node": "^10.9.1"
71
68
  },
72
- "eslintConfig": {
73
- "env": {
74
- "es2021": true
75
- },
76
- "extends": [
77
- "eslint:recommended",
78
- "plugin:@typescript-eslint/recommended",
79
- "plugin:jest/recommended",
80
- "prettier"
81
- ],
82
- "parser": "@typescript-eslint/parser",
83
- "parserOptions": {
84
- "ecmaFeatures": {
85
- "jsx": true
86
- },
87
- "ecmaVersion": 12,
88
- "sourceType": "module"
89
- },
90
- "plugins": [
91
- "@typescript-eslint",
92
- "jest"
93
- ]
94
- },
95
69
  "prettier": {
96
70
  "semi": true,
97
71
  "printWidth": 100,
@@ -117,5 +91,5 @@
117
91
  "github-actions"
118
92
  ]
119
93
  },
120
- "gitHead": "8084f4a1dde6a99d887dff9d7ce3305c44cd6734"
94
+ "gitHead": "88607c189fa08fc434f9055b9f741134e6798235"
121
95
  }