@ts-dev-tools/core 1.9.0 → 1.9.1
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 +15 -3
- package/dist/install/command.js +3 -1
- package/dist/services/DuplicateDependenciesService.js +5 -0
- package/dist/services/PackageManagerService.d.ts +1 -0
- package/dist/services/PackageManagerService.js +29 -0
- package/dist/services/SymlinkDependenciesService.d.ts +2 -1
- package/dist/services/SymlinkDependenciesService.js +109 -26
- package/dist/tests/test-packages.d.ts +2 -1
- package/dist/tests/test-packages.js +36 -24
- package/dist/tests/test-project-monorepo.js +6 -6
- package/dist/tests/test-project.js +2 -4
- package/package.json +9 -12
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
### _1_. Install
|
|
69
69
|
|
|
70
70
|
```sh
|
|
71
|
-
npm install --
|
|
71
|
+
npm install --save-dev @ts-dev-tools/core
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
Or
|
|
@@ -77,10 +77,16 @@ Or
|
|
|
77
77
|
yarn add --dev @ts-dev-tools/core
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
+
Or
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
pnpm add -D @ts-dev-tools/core
|
|
84
|
+
```
|
|
85
|
+
|
|
80
86
|
### _2_. Enable ts-dev-tools
|
|
81
87
|
|
|
82
88
|
```sh
|
|
83
|
-
|
|
89
|
+
npm exec ts-dev-tools install
|
|
84
90
|
```
|
|
85
91
|
|
|
86
92
|
Or
|
|
@@ -89,4 +95,10 @@ Or
|
|
|
89
95
|
yarn ts-dev-tools install
|
|
90
96
|
```
|
|
91
97
|
|
|
92
|
-
|
|
98
|
+
Or
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
pnpm ts-dev-tools install
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
⚠️ If your package is using yarn, is not private and you're publishing it on a registry like npmjs.com, you need to disable postinstall script using [pinst](https://github.com/typicode/pinst). Otherwise, postinstall will run when someone installs your package and result in an error.
|
package/dist/install/command.js
CHANGED
|
@@ -68,7 +68,9 @@ function install(_a) {
|
|
|
68
68
|
return [4 /*yield*/, MigrationsService_1.MigrationsService.executeMigrations(absoluteProjectDir, currentVersion)];
|
|
69
69
|
case 1:
|
|
70
70
|
_d.sent();
|
|
71
|
-
SymlinkDependenciesService_1.SymlinkDependenciesService.executeSymlinking(absoluteProjectDir);
|
|
71
|
+
return [4 /*yield*/, SymlinkDependenciesService_1.SymlinkDependenciesService.executeSymlinking(absoluteProjectDir)];
|
|
72
|
+
case 2:
|
|
73
|
+
_d.sent();
|
|
72
74
|
DuplicateDependenciesService_1.DuplicateDependenciesService.executeDeduplication(absoluteProjectDir);
|
|
73
75
|
console.info("Installation done!");
|
|
74
76
|
return [2 /*return*/];
|
|
@@ -41,12 +41,17 @@ var DuplicateDependenciesService = /** @class */ (function () {
|
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
DuplicateDependenciesService.printDuplicatedDependencies = function (duplicateDependencies) {
|
|
44
|
+
var hasDuplicates = false;
|
|
44
45
|
duplicateDependencies.forEach(function (pluginDuplicateDependencies, plugin) {
|
|
45
46
|
if (pluginDuplicateDependencies.size) {
|
|
46
47
|
var pluginDuplicateDependenciesValue = Array.from(pluginDuplicateDependencies);
|
|
48
|
+
hasDuplicates = true;
|
|
47
49
|
console.info("Some dev dependencies are unnecessarily installed as their are already required by \"".concat(plugin, "\":\n - ").concat(pluginDuplicateDependenciesValue.join("\n - "), "\n"));
|
|
48
50
|
}
|
|
49
51
|
});
|
|
52
|
+
if (!hasDuplicates) {
|
|
53
|
+
console.info("No duplicate dev dependencies found.");
|
|
54
|
+
}
|
|
50
55
|
};
|
|
51
56
|
return DuplicateDependenciesService;
|
|
52
57
|
}());
|
|
@@ -7,5 +7,6 @@ export declare class PackageManagerService {
|
|
|
7
7
|
static addDevPackage(packageName: string, dirPath: string): Promise<void>;
|
|
8
8
|
static isMonorepo(dirPath: string): Promise<boolean>;
|
|
9
9
|
static isPackageInstalled(packageName: string, dirPath: string): Promise<boolean>;
|
|
10
|
+
static getNodeModulesPath(dirPath: string): Promise<string>;
|
|
10
11
|
private static execCommand;
|
|
11
12
|
}
|
|
@@ -149,6 +149,35 @@ var PackageManagerService = /** @class */ (function () {
|
|
|
149
149
|
});
|
|
150
150
|
});
|
|
151
151
|
};
|
|
152
|
+
PackageManagerService.getNodeModulesPath = function (dirPath) {
|
|
153
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
154
|
+
var packageManager, nodeModulesPath, _a;
|
|
155
|
+
return __generator(this, function (_b) {
|
|
156
|
+
switch (_b.label) {
|
|
157
|
+
case 0:
|
|
158
|
+
packageManager = PackageManagerService.detectPackageManager(dirPath);
|
|
159
|
+
_a = packageManager;
|
|
160
|
+
switch (_a) {
|
|
161
|
+
case PackageManagerType.yarn: return [3 /*break*/, 1];
|
|
162
|
+
case PackageManagerType.npm: return [3 /*break*/, 2];
|
|
163
|
+
}
|
|
164
|
+
return [3 /*break*/, 4];
|
|
165
|
+
case 1:
|
|
166
|
+
nodeModulesPath = (0, path_1.join)(dirPath, "node_modules");
|
|
167
|
+
return [3 /*break*/, 4];
|
|
168
|
+
case 2: return [4 /*yield*/, PackageManagerService.execCommand([packageManager, "root", "--no-progress", "--non-interactive"], dirPath, true)];
|
|
169
|
+
case 3:
|
|
170
|
+
nodeModulesPath = (_b.sent()).trim();
|
|
171
|
+
return [3 /*break*/, 4];
|
|
172
|
+
case 4:
|
|
173
|
+
if (nodeModulesPath) {
|
|
174
|
+
return [2 /*return*/, nodeModulesPath];
|
|
175
|
+
}
|
|
176
|
+
throw new Error("Node modules path not found for package manager ".concat(packageManager));
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
};
|
|
152
181
|
PackageManagerService.execCommand = function (args_1, cwd_1) {
|
|
153
182
|
return __awaiter(this, arguments, void 0, function (args, cwd, silent) {
|
|
154
183
|
var cmd;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare class SymlinkDependenciesService {
|
|
2
2
|
static DEPENDENCIES_FOLDER: string;
|
|
3
|
-
static executeSymlinking(absoluteProjectDir: string): void
|
|
3
|
+
static executeSymlinking(absoluteProjectDir: string): Promise<void>;
|
|
4
4
|
private static symlinkPluginDependencies;
|
|
5
5
|
private static getPluginDependencies;
|
|
6
|
+
private static getPluginDependenciesPath;
|
|
6
7
|
private static symlinkDependency;
|
|
7
8
|
}
|
|
@@ -1,47 +1,130 @@
|
|
|
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["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.SymlinkDependenciesService = void 0;
|
|
4
40
|
var fs_1 = require("fs");
|
|
5
41
|
var path_1 = require("path");
|
|
6
42
|
var PackageJson_1 = require("./PackageJson");
|
|
7
43
|
var PluginService_1 = require("./PluginService");
|
|
44
|
+
var PackageManagerService_1 = require("./PackageManagerService");
|
|
8
45
|
var SymlinkDependenciesService = /** @class */ (function () {
|
|
9
46
|
function SymlinkDependenciesService() {
|
|
10
47
|
}
|
|
11
48
|
SymlinkDependenciesService.executeSymlinking = function (absoluteProjectDir) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
49
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
+
var installedPlugins, _i, installedPlugins_1, plugin;
|
|
51
|
+
return __generator(this, function (_a) {
|
|
52
|
+
switch (_a.label) {
|
|
53
|
+
case 0:
|
|
54
|
+
console.info("Symlinking dev dependencies...");
|
|
55
|
+
installedPlugins = PluginService_1.PluginService.getInstalledPlugins(absoluteProjectDir);
|
|
56
|
+
_i = 0, installedPlugins_1 = installedPlugins;
|
|
57
|
+
_a.label = 1;
|
|
58
|
+
case 1:
|
|
59
|
+
if (!(_i < installedPlugins_1.length)) return [3 /*break*/, 4];
|
|
60
|
+
plugin = installedPlugins_1[_i];
|
|
61
|
+
return [4 /*yield*/, SymlinkDependenciesService.symlinkPluginDependencies(absoluteProjectDir, plugin)];
|
|
62
|
+
case 2:
|
|
63
|
+
_a.sent();
|
|
64
|
+
_a.label = 3;
|
|
65
|
+
case 3:
|
|
66
|
+
_i++;
|
|
67
|
+
return [3 /*break*/, 1];
|
|
68
|
+
case 4:
|
|
69
|
+
console.info("Symlinking dev dependencies done!");
|
|
70
|
+
return [2 /*return*/];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
});
|
|
19
74
|
};
|
|
20
75
|
SymlinkDependenciesService.symlinkPluginDependencies = function (absoluteProjectDir, plugin) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
76
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
+
var pluginDependencies, projectDependencyPath, pluginDependenciesPath, _i, pluginDependencies_1, pluginDependency, pluginDependencyPath, projectPluginDependencyPath;
|
|
78
|
+
return __generator(this, function (_a) {
|
|
79
|
+
switch (_a.label) {
|
|
80
|
+
case 0:
|
|
81
|
+
pluginDependencies = SymlinkDependenciesService.getPluginDependencies(plugin);
|
|
82
|
+
projectDependencyPath = (0, path_1.join)(absoluteProjectDir, SymlinkDependenciesService.DEPENDENCIES_FOLDER);
|
|
83
|
+
return [4 /*yield*/, SymlinkDependenciesService.getPluginDependenciesPath(absoluteProjectDir, plugin)];
|
|
84
|
+
case 1:
|
|
85
|
+
pluginDependenciesPath = _a.sent();
|
|
86
|
+
if (projectDependencyPath === pluginDependenciesPath) {
|
|
87
|
+
console.info("- Skipping symlinking ".concat(plugin.shortname, " dependencies, already in node_modules"));
|
|
88
|
+
return [2 /*return*/];
|
|
89
|
+
}
|
|
90
|
+
for (_i = 0, pluginDependencies_1 = pluginDependencies; _i < pluginDependencies_1.length; _i++) {
|
|
91
|
+
pluginDependency = pluginDependencies_1[_i];
|
|
92
|
+
pluginDependencyPath = (0, path_1.join)(pluginDependenciesPath, pluginDependency);
|
|
93
|
+
if (!(0, fs_1.existsSync)(pluginDependencyPath)) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
projectPluginDependencyPath = (0, path_1.join)(projectDependencyPath, pluginDependency);
|
|
97
|
+
if ((0, fs_1.existsSync)(projectPluginDependencyPath)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
console.info("- Symlinking ".concat(pluginDependency));
|
|
101
|
+
SymlinkDependenciesService.symlinkDependency(pluginDependencyPath, projectPluginDependencyPath);
|
|
102
|
+
}
|
|
103
|
+
return [2 /*return*/];
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
});
|
|
40
107
|
};
|
|
41
108
|
SymlinkDependenciesService.getPluginDependencies = function (plugin) {
|
|
42
109
|
var pluginPackageJson = PackageJson_1.PackageJson.fromDirPath(plugin.path);
|
|
43
110
|
return pluginPackageJson.getDependenciesPackageNames();
|
|
44
111
|
};
|
|
112
|
+
SymlinkDependenciesService.getPluginDependenciesPath = function (absoluteProjectDir, plugin) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
114
|
+
var pluginDependenciesPath;
|
|
115
|
+
return __generator(this, function (_a) {
|
|
116
|
+
switch (_a.label) {
|
|
117
|
+
case 0:
|
|
118
|
+
pluginDependenciesPath = (0, path_1.join)(plugin.path, SymlinkDependenciesService.DEPENDENCIES_FOLDER);
|
|
119
|
+
if ((0, fs_1.existsSync)(pluginDependenciesPath)) {
|
|
120
|
+
return [2 /*return*/, pluginDependenciesPath];
|
|
121
|
+
}
|
|
122
|
+
return [4 /*yield*/, PackageManagerService_1.PackageManagerService.getNodeModulesPath(absoluteProjectDir)];
|
|
123
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
};
|
|
45
128
|
SymlinkDependenciesService.symlinkDependency = function (pluginDependencyPath, projectPluginDependencyPath) {
|
|
46
129
|
var pluginDependencyParentFolder = (0, path_1.join)(projectPluginDependencyPath, "..");
|
|
47
130
|
if (!(0, fs_1.existsSync)(pluginDependencyParentFolder)) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Create a full file structure for testing ts-dev-tools packages installation
|
|
3
|
+
* This function is not using cache to prevents drift between current code and test code
|
|
3
4
|
* @param projectDir path where to prepare packages
|
|
4
5
|
* @returns packages directory path
|
|
5
6
|
*/
|
|
6
|
-
export declare function createTestPackagesDir(filename: string
|
|
7
|
+
export declare function createTestPackagesDir(filename: string): Promise<string>;
|
|
@@ -43,53 +43,65 @@ var PackageJson_1 = require("../services/PackageJson");
|
|
|
43
43
|
var PluginService_1 = require("../services/PluginService");
|
|
44
44
|
var test_project_1 = require("./test-project");
|
|
45
45
|
var file_system_1 = require("./file-system");
|
|
46
|
+
var cli_1 = require("./cli");
|
|
46
47
|
function createTestPackagesProject(projectDir) {
|
|
47
48
|
return __awaiter(this, void 0, void 0, function () {
|
|
48
|
-
var originalPackagesPath, projectDirPackages, projectDirPackagesFiles, _i, projectDirPackagesFiles_1, projectDirPackagesFile, packagePath, packageJson, content, _a, _b, packageName;
|
|
49
|
+
var originalPackagesPath, projectDirPackages, projectDirPackagesFiles, _i, projectDirPackagesFiles_1, projectDirPackagesFile, packagePath, packageJson, content, _a, _b, packageName, pluginShortName, dependencyPath;
|
|
49
50
|
return __generator(this, function (_c) {
|
|
50
51
|
switch (_c.label) {
|
|
51
52
|
case 0:
|
|
52
|
-
originalPackagesPath = (0, path_1.resolve)(__dirname, "
|
|
53
|
-
|
|
53
|
+
originalPackagesPath = (0, path_1.resolve)(__dirname, "../../..");
|
|
54
|
+
projectDirPackages = (0, path_1.resolve)(projectDir, "packages");
|
|
55
|
+
return [4 /*yield*/, (0, file_system_1.copyFolder)(originalPackagesPath, projectDirPackages)];
|
|
54
56
|
case 1:
|
|
55
57
|
_c.sent();
|
|
56
|
-
projectDirPackages = (0, path_1.resolve)(projectDir, "packages");
|
|
57
58
|
projectDirPackagesFiles = (0, fs_1.readdirSync)(projectDirPackages);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
59
|
+
_i = 0, projectDirPackagesFiles_1 = projectDirPackagesFiles;
|
|
60
|
+
_c.label = 2;
|
|
61
|
+
case 2:
|
|
62
|
+
if (!(_i < projectDirPackagesFiles_1.length)) return [3 /*break*/, 5];
|
|
63
|
+
projectDirPackagesFile = projectDirPackagesFiles_1[_i];
|
|
64
|
+
packagePath = (0, path_1.resolve)(projectDirPackages, projectDirPackagesFile);
|
|
65
|
+
if (!(0, fs_1.lstatSync)(packagePath).isDirectory()) {
|
|
66
|
+
return [3 /*break*/, 4];
|
|
67
|
+
}
|
|
68
|
+
packageJson = PackageJson_1.PackageJson.fromDirPath(packagePath);
|
|
69
|
+
content = packageJson.getContent();
|
|
70
|
+
if (content.dependencies) {
|
|
71
|
+
for (_a = 0, _b = Object.keys(content.dependencies); _a < _b.length; _a++) {
|
|
72
|
+
packageName = _b[_a];
|
|
73
|
+
if (PluginService_1.PluginService.packageNameIsPlugin(packageName)) {
|
|
74
|
+
pluginShortName = PluginService_1.PluginService.getPluginShortname(packageName);
|
|
75
|
+
dependencyPath = (0, path_1.resolve)((0, path_1.join)(packagePath, "..", pluginShortName));
|
|
76
|
+
content.dependencies[packageName] = "file://".concat(dependencyPath);
|
|
72
77
|
}
|
|
73
|
-
packageJson.setContent(content);
|
|
74
78
|
}
|
|
79
|
+
packageJson.setContent(content);
|
|
75
80
|
}
|
|
76
|
-
return [
|
|
81
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(packagePath, "npm install")];
|
|
82
|
+
case 3:
|
|
83
|
+
_c.sent();
|
|
84
|
+
_c.label = 4;
|
|
85
|
+
case 4:
|
|
86
|
+
_i++;
|
|
87
|
+
return [3 /*break*/, 2];
|
|
88
|
+
case 5: return [2 /*return*/];
|
|
77
89
|
}
|
|
78
90
|
});
|
|
79
91
|
});
|
|
80
92
|
}
|
|
81
93
|
/**
|
|
82
94
|
* Create a full file structure for testing ts-dev-tools packages installation
|
|
95
|
+
* This function is not using cache to prevents drift between current code and test code
|
|
83
96
|
* @param projectDir path where to prepare packages
|
|
84
97
|
* @returns packages directory path
|
|
85
98
|
*/
|
|
86
|
-
function createTestPackagesDir(
|
|
87
|
-
return __awaiter(this,
|
|
99
|
+
function createTestPackagesDir(filename) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88
101
|
var testPackagesFileName;
|
|
89
|
-
if (useCache === void 0) { useCache = true; }
|
|
90
102
|
return __generator(this, function (_a) {
|
|
91
103
|
testPackagesFileName = filename.replace(".spec.ts", "-test-packages.spec.ts");
|
|
92
|
-
return [2 /*return*/, (0, test_project_1.createProjectForTestFile)(testPackagesFileName,
|
|
104
|
+
return [2 /*return*/, (0, test_project_1.createProjectForTestFile)(testPackagesFileName, false, createTestPackagesProject)];
|
|
93
105
|
});
|
|
94
106
|
});
|
|
95
107
|
}
|
|
@@ -46,16 +46,16 @@ function generateProjectInMonorepoProject(packageName, projectDir, useCache, tes
|
|
|
46
46
|
var packageDir;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
48
|
switch (_a.label) {
|
|
49
|
-
case 0: return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "
|
|
49
|
+
case 0: return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "npm init --yes")];
|
|
50
50
|
case 1:
|
|
51
51
|
_a.sent();
|
|
52
|
-
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "
|
|
52
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "npm install")];
|
|
53
53
|
case 2:
|
|
54
54
|
_a.sent();
|
|
55
|
-
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "
|
|
55
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "npm install --save-dev -W typescript")];
|
|
56
56
|
case 3:
|
|
57
57
|
_a.sent();
|
|
58
|
-
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "
|
|
58
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "npm exec tsc -- --init")];
|
|
59
59
|
case 4:
|
|
60
60
|
_a.sent();
|
|
61
61
|
PackageJson_1.PackageJson.fromDirPath(projectDir).merge({
|
|
@@ -66,10 +66,10 @@ function generateProjectInMonorepoProject(packageName, projectDir, useCache, tes
|
|
|
66
66
|
return [4 /*yield*/, (0, test_project_1.createTestProject)(packageName, packageDir, useCache, testProjectGenerator)];
|
|
67
67
|
case 5:
|
|
68
68
|
_a.sent();
|
|
69
|
-
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "
|
|
69
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "npm exec lerna -- init --no-progress --skipInstall")];
|
|
70
70
|
case 6:
|
|
71
71
|
_a.sent();
|
|
72
|
-
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "
|
|
72
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "npm install")];
|
|
73
73
|
case 7:
|
|
74
74
|
_a.sent();
|
|
75
75
|
return [2 /*return*/];
|
|
@@ -64,10 +64,8 @@ var getPackageNameFromFilepath = function (filepath) {
|
|
|
64
64
|
exports.getPackageNameFromFilepath = getPackageNameFromFilepath;
|
|
65
65
|
var getTestProjectDirPath = function (filename) {
|
|
66
66
|
var testProjectRootDirPath = (0, path_1.join)((0, os_1.tmpdir)(), "ts-dev-tools");
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
.name.toLowerCase()
|
|
70
|
-
.replace(/[^a-z0-9]/g, "-");
|
|
67
|
+
var relativeFilepath = (0, path_1.relative)(rootDirPath, filename);
|
|
68
|
+
var testProjectDirName = "test-" + relativeFilepath.toLowerCase().replace(/[^a-z0-9]/g, "-");
|
|
71
69
|
return (0, path_1.join)(testProjectRootDirPath, testProjectDirName);
|
|
72
70
|
};
|
|
73
71
|
function defaultProjectGenerator(testProjectDirPath) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-dev-tools/core",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"description": "TS dev tools Core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"linter",
|
|
@@ -28,17 +28,15 @@
|
|
|
28
28
|
"url": "git+https://github.com/escemi-tech/ts-dev-tools.git"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
|
-
"start": "
|
|
32
|
-
"stop": "
|
|
31
|
+
"start": "npm link && tsc -w",
|
|
32
|
+
"stop": "npm unlink",
|
|
33
33
|
"build": "rimraf dist && tsc",
|
|
34
34
|
"jest": "jest --detectOpenHandles --forceExit",
|
|
35
|
-
"test": "
|
|
36
|
-
"test:unit": "
|
|
37
|
-
"test:e2e": "
|
|
38
|
-
"test:coverage": "
|
|
39
|
-
"lint": "eslint \"src/**/*.{ts,tsx}\""
|
|
40
|
-
"prepublishOnly": "pinst --disable",
|
|
41
|
-
"postpublish": "pinst --enable"
|
|
35
|
+
"test": "npm run jest -- --maxWorkers=50%",
|
|
36
|
+
"test:unit": "npm run test -- --testPathPattern \".+spec\\.ts\"",
|
|
37
|
+
"test:e2e": "npm run test -- --testPathPattern \".+e2e\\.spec\\.ts\"",
|
|
38
|
+
"test:coverage": "npm run test -- --coverage",
|
|
39
|
+
"lint": "eslint \"src/**/*.{ts,tsx}\""
|
|
42
40
|
},
|
|
43
41
|
"bugs": {
|
|
44
42
|
"url": "https://github.com/escemi-tech/ts-dev-tools/issues"
|
|
@@ -63,7 +61,6 @@
|
|
|
63
61
|
"typescript-eslint": "^8.30.1"
|
|
64
62
|
},
|
|
65
63
|
"devDependencies": {
|
|
66
|
-
"pinst": "^3.0.0",
|
|
67
64
|
"ts-node": "^10.9.1"
|
|
68
65
|
},
|
|
69
66
|
"prettier": {
|
|
@@ -91,5 +88,5 @@
|
|
|
91
88
|
"github-actions"
|
|
92
89
|
]
|
|
93
90
|
},
|
|
94
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "cec0352615e50a8aa5716e057abbd970bccbddd7"
|
|
95
92
|
}
|