@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 +1 -1
- package/dist/eslint-plugin-ts-dev-tools/index.d.ts +2 -0
- package/dist/eslint-plugin-ts-dev-tools/index.js +41 -0
- package/dist/install/command.js +6 -7
- package/dist/install/migrations/20201024173398-init.js +6 -6
- package/dist/install/migrations/20240329200200-eslint-ignore.d.ts +2 -0
- package/dist/install/migrations/20240329200200-eslint-ignore.js +54 -0
- package/dist/install/migrations/20240412185500-eslint-config.d.ts +2 -0
- package/dist/install/migrations/20240412185500-eslint-config.js +57 -0
- package/dist/install/migrations/20240617094000-config-nx-scopes.d.ts +2 -0
- package/dist/install/migrations/20240617094000-config-nx-scopes.js +72 -0
- package/dist/services/FileService.d.ts +6 -0
- package/dist/services/FileService.js +22 -0
- package/dist/services/MigrationsService.js +37 -10
- package/dist/services/PackageJson.d.ts +2 -0
- package/dist/services/PackageJson.js +12 -11
- package/dist/services/PackageManagerService.d.ts +4 -0
- package/dist/services/PackageManagerService.js +179 -0
- package/dist/services/SymlinkDependenciesService.js +11 -2
- package/dist/tests/cli.d.ts +0 -1
- package/dist/tests/cli.js +2 -3
- package/dist/tests/console.js +3 -4
- package/dist/tests/file-system.js +2 -3
- package/dist/tests/project.js +11 -11
- package/dist/tests/test-dir.js +3 -3
- package/package.json +16 -42
package/README.md
CHANGED
|
@@ -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);
|
package/dist/install/command.js
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
49
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
48
|
+
return __awaiter(this, arguments, void 0, function (_b) {
|
|
50
49
|
var absoluteProjectDir, currentVersion;
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
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,
|
|
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: "
|
|
104
|
-
"test:watch": "
|
|
105
|
-
"test:cov": "
|
|
106
|
-
"test:ci": "
|
|
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,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,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,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,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,
|
|
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*/,
|
|
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
|
-
|
|
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
|
|
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 =
|
|
77
|
-
case
|
|
101
|
+
_a.label = 5;
|
|
102
|
+
case 5:
|
|
78
103
|
_i++;
|
|
79
104
|
return [3 /*break*/, 2];
|
|
80
|
-
case
|
|
81
|
-
case
|
|
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
|
|
87
|
-
(0, fs_1.
|
|
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 (!
|
|
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(
|
|
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
|
-
|
|
71
|
+
FileService_1.FileService.copyFile(this.path, backupPath);
|
|
69
72
|
return backupPath;
|
|
70
73
|
};
|
|
71
74
|
PackageJson.prototype.restore = function (backupPath) {
|
|
72
|
-
|
|
75
|
+
FileService_1.FileService.copyFile(backupPath, this.path);
|
|
73
76
|
this.content = undefined;
|
|
74
77
|
};
|
|
75
78
|
PackageJson.prototype.write = function () {
|
|
76
|
-
|
|
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,
|
|
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)(
|
|
28
|
+
var pluginDependencyPath = (0, path_1.join)(pluginDependenciesPath, pluginDependency);
|
|
25
29
|
if (!(0, fs_1.existsSync)(pluginDependencyPath)) {
|
|
26
30
|
continue;
|
|
27
31
|
}
|
|
28
|
-
var
|
|
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";
|
package/dist/tests/cli.d.ts
CHANGED
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.
|
|
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;
|
package/dist/tests/console.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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.
|
|
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;
|
package/dist/tests/project.js
CHANGED
|
@@ -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.
|
|
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
|
|
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
|
|
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*/];
|
package/dist/tests/test-dir.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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.
|
|
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": "
|
|
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": "^
|
|
48
|
-
"@commitlint/config-conventional": "^
|
|
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": "^
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"eslint": "^8.
|
|
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.
|
|
62
|
-
"prettier": "^3.
|
|
57
|
+
"lint-staged": "^15.2.9",
|
|
58
|
+
"prettier": "^3.3.3",
|
|
63
59
|
"prettier-plugin-import-sort": "^0.0.7",
|
|
64
|
-
"pretty-quick": "^
|
|
65
|
-
"ts-jest": "^29.
|
|
66
|
-
"typescript": "^5.
|
|
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": "
|
|
94
|
+
"gitHead": "88607c189fa08fc434f9055b9f741134e6798235"
|
|
121
95
|
}
|