@ts-dev-tools/core 1.5.19 → 1.5.20
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/dist/bin.js +2 -1
- package/dist/constants.d.ts +3 -0
- package/dist/constants.js +6 -0
- package/dist/install/command.js +10 -6
- package/dist/install/migrations/20201024173398-init.js +3 -2
- package/dist/services/CorePackageService.d.ts +4 -0
- package/dist/services/CorePackageService.js +17 -0
- package/dist/services/DuplicateDependenciesService.d.ts +1 -1
- package/dist/services/DuplicateDependenciesService.js +11 -12
- package/dist/services/GitService.js +2 -1
- package/dist/services/MigrationsService.d.ts +1 -1
- package/dist/services/MigrationsService.js +9 -10
- package/dist/services/PackageJson.d.ts +0 -1
- package/dist/services/PackageJson.js +0 -12
- package/dist/services/PluginService.d.ts +11 -0
- package/dist/services/PluginService.js +47 -0
- package/dist/tests/cli.d.ts +9 -0
- package/dist/tests/cli.js +71 -0
- package/dist/tests/file-system.d.ts +2 -0
- package/dist/tests/file-system.js +36 -0
- package/dist/tests/project.d.ts +13 -0
- package/dist/tests/project.js +169 -0
- package/package.json +12 -9
- package/dist/tests/utils.d.ts +0 -5
- package/dist/tests/utils.js +0 -69
package/dist/bin.js
CHANGED
|
@@ -38,6 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
var path_1 = require("path");
|
|
41
|
+
var constants_1 = require("./constants");
|
|
41
42
|
var command_1 = require("./install/command");
|
|
42
43
|
var PackageJson_1 = require("./services/PackageJson");
|
|
43
44
|
function bin() {
|
|
@@ -70,7 +71,7 @@ function bin() {
|
|
|
70
71
|
console.info(PackageJson_1.PackageJson.fromDirPath((0, path_1.join)(__dirname, "..")).getPackageVersion());
|
|
71
72
|
return [3 /*break*/, 5];
|
|
72
73
|
case 4:
|
|
73
|
-
console.info("Usage\n
|
|
74
|
+
console.info("Usage\n ".concat(constants_1.PROJECT_NAME, " install [path from project root]\n "));
|
|
74
75
|
_c.label = 5;
|
|
75
76
|
case 5: return [2 /*return*/];
|
|
76
77
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROJECT_URL = exports.PACKAGE_BASE_NAME = exports.PROJECT_NAME = void 0;
|
|
4
|
+
exports.PROJECT_NAME = "ts-dev-tools";
|
|
5
|
+
exports.PACKAGE_BASE_NAME = "@".concat(exports.PROJECT_NAME);
|
|
6
|
+
exports.PROJECT_URL = "https://escemi-tech.github.io/".concat(exports.PROJECT_NAME, "/");
|
package/dist/install/command.js
CHANGED
|
@@ -37,22 +37,26 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.install = void 0;
|
|
40
|
+
var fs_1 = require("fs");
|
|
40
41
|
var path_1 = require("path");
|
|
42
|
+
var CorePackageService_1 = require("../services/CorePackageService");
|
|
41
43
|
var DuplicateDependenciesService_1 = require("../services/DuplicateDependenciesService");
|
|
42
44
|
var MigrationsService_1 = require("../services/MigrationsService");
|
|
43
45
|
var PackageJson_1 = require("../services/PackageJson");
|
|
44
46
|
function install(_a) {
|
|
45
47
|
var cwd = _a.cwd, _b = _a.dir, dir = _b === void 0 ? "." : _b;
|
|
46
48
|
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
-
var
|
|
49
|
+
var packageName, absoluteProjectDir, currentVersion;
|
|
48
50
|
return __generator(this, function (_c) {
|
|
49
51
|
switch (_c.label) {
|
|
50
52
|
case 0:
|
|
51
|
-
|
|
52
|
-
packageName = PackageJson_1.PackageJson.fromDirPath(tsDevToolsRootPath).getPackageName();
|
|
53
|
+
packageName = CorePackageService_1.CorePackageService.getPackageName();
|
|
53
54
|
absoluteProjectDir = (0, path_1.resolve)(cwd, dir);
|
|
55
|
+
if (!(0, fs_1.existsSync)(absoluteProjectDir)) {
|
|
56
|
+
throw new Error("Unable to install ".concat(packageName, " in given directory ").concat((0, path_1.join)(cwd, dir)));
|
|
57
|
+
}
|
|
54
58
|
if (!absoluteProjectDir.startsWith(cwd)) {
|
|
55
|
-
throw new Error("
|
|
59
|
+
throw new Error("Unable to install ".concat(packageName, " in a different folder than current process"));
|
|
56
60
|
}
|
|
57
61
|
currentVersion = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir).getTsDevToolsVersion();
|
|
58
62
|
if (currentVersion) {
|
|
@@ -61,10 +65,10 @@ function install(_a) {
|
|
|
61
65
|
else {
|
|
62
66
|
console.info("Installing ".concat(packageName, "..."));
|
|
63
67
|
}
|
|
64
|
-
return [4 /*yield*/, MigrationsService_1.MigrationsService.executeMigrations(
|
|
68
|
+
return [4 /*yield*/, MigrationsService_1.MigrationsService.executeMigrations(absoluteProjectDir, currentVersion)];
|
|
65
69
|
case 1:
|
|
66
70
|
_c.sent();
|
|
67
|
-
DuplicateDependenciesService_1.DuplicateDependenciesService.duplicateDependencies(
|
|
71
|
+
DuplicateDependenciesService_1.DuplicateDependenciesService.duplicateDependencies(absoluteProjectDir);
|
|
68
72
|
console.info("Installation done!");
|
|
69
73
|
return [2 /*return*/];
|
|
70
74
|
}
|
|
@@ -37,6 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.up = void 0;
|
|
40
|
+
var constants_1 = require("../../constants");
|
|
40
41
|
var GitService_1 = require("../../services/GitService");
|
|
41
42
|
var PackageJson_1 = require("../../services/PackageJson");
|
|
42
43
|
var PackageManagerService_1 = require("../../services/PackageManagerService");
|
|
@@ -48,7 +49,7 @@ var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0
|
|
|
48
49
|
jest = {
|
|
49
50
|
preset: "ts-jest",
|
|
50
51
|
testEnvironment: "node",
|
|
51
|
-
testMatch: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).+(ts|tsx|js)"],
|
|
52
|
+
testMatch: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test)?(.*).+(ts|tsx|js)"],
|
|
52
53
|
};
|
|
53
54
|
eslintConfig = {
|
|
54
55
|
root: true,
|
|
@@ -102,7 +103,7 @@ var up = function (absoluteProjectDir) { return __awaiter(void 0, void 0, void 0
|
|
|
102
103
|
"test:watch": "yarn jest --watch --maxWorkers=25%",
|
|
103
104
|
"test:cov": "yarn jest --coverage",
|
|
104
105
|
"test:ci": "yarn test:cov --runInBand",
|
|
105
|
-
prepare: "
|
|
106
|
+
prepare: "".concat(constants_1.PROJECT_NAME, " install"),
|
|
106
107
|
};
|
|
107
108
|
packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
|
|
108
109
|
packageJson.merge({
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CorePackageService = void 0;
|
|
4
|
+
var path_1 = require("path");
|
|
5
|
+
var PackageJson_1 = require("./PackageJson");
|
|
6
|
+
var CorePackageService = /** @class */ (function () {
|
|
7
|
+
function CorePackageService() {
|
|
8
|
+
}
|
|
9
|
+
CorePackageService.getPackageRootPath = function () {
|
|
10
|
+
return (0, path_1.resolve)(__dirname, "../..");
|
|
11
|
+
};
|
|
12
|
+
CorePackageService.getPackageName = function () {
|
|
13
|
+
return PackageJson_1.PackageJson.fromDirPath(CorePackageService.getPackageRootPath()).getPackageName();
|
|
14
|
+
};
|
|
15
|
+
return CorePackageService;
|
|
16
|
+
}());
|
|
17
|
+
exports.CorePackageService = CorePackageService;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare class DuplicateDependenciesService {
|
|
2
|
-
static duplicateDependencies(
|
|
2
|
+
static duplicateDependencies(absoluteProjectDir: string): void;
|
|
3
3
|
private static getProjectDuplicateDependencies;
|
|
4
4
|
private static getPluginDuplicateDependencies;
|
|
5
5
|
private static printDuplicateDependencies;
|
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DuplicateDependenciesService = void 0;
|
|
4
|
-
var path_1 = require("path");
|
|
5
4
|
var PackageJson_1 = require("./PackageJson");
|
|
5
|
+
var PluginService_1 = require("./PluginService");
|
|
6
6
|
var DuplicateDependenciesService = /** @class */ (function () {
|
|
7
7
|
function DuplicateDependenciesService() {
|
|
8
8
|
}
|
|
9
|
-
DuplicateDependenciesService.duplicateDependencies = function (
|
|
9
|
+
DuplicateDependenciesService.duplicateDependencies = function (absoluteProjectDir) {
|
|
10
10
|
console.info("Checking for duplicate dev dependencies...");
|
|
11
11
|
var duplicateDependencies = new Map();
|
|
12
|
-
DuplicateDependenciesService.getProjectDuplicateDependencies(
|
|
12
|
+
DuplicateDependenciesService.getProjectDuplicateDependencies(absoluteProjectDir, duplicateDependencies);
|
|
13
13
|
DuplicateDependenciesService.printDuplicateDependencies(duplicateDependencies);
|
|
14
14
|
console.info("Check for duplicate dev dependencies done!");
|
|
15
15
|
};
|
|
16
|
-
DuplicateDependenciesService.getProjectDuplicateDependencies = function (
|
|
16
|
+
DuplicateDependenciesService.getProjectDuplicateDependencies = function (absoluteProjectDir, duplicateDependencies) {
|
|
17
|
+
var installedPlugins = PluginService_1.PluginService.getInstalledPlugins(absoluteProjectDir);
|
|
17
18
|
var projectPackageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
|
|
18
|
-
var installedPlugins = projectPackageJson.getInstalledPlugins();
|
|
19
19
|
var projectDevDependencies = projectPackageJson.getDevDependenciesPackageNames();
|
|
20
20
|
for (var _i = 0, installedPlugins_1 = installedPlugins; _i < installedPlugins_1.length; _i++) {
|
|
21
21
|
var plugin = installedPlugins_1[_i];
|
|
22
|
-
DuplicateDependenciesService.getPluginDuplicateDependencies(
|
|
22
|
+
DuplicateDependenciesService.getPluginDuplicateDependencies(plugin, projectDevDependencies, duplicateDependencies);
|
|
23
23
|
}
|
|
24
24
|
return duplicateDependencies;
|
|
25
25
|
};
|
|
26
|
-
DuplicateDependenciesService.getPluginDuplicateDependencies = function (
|
|
27
|
-
var absolutePluginDir = (0, path_1.resolve)(tsDevToolsRootPath, "../../", plugin);
|
|
26
|
+
DuplicateDependenciesService.getPluginDuplicateDependencies = function (plugin, projectDevDependencies, duplicateDependencies) {
|
|
28
27
|
// First check for duplicate of inherited plugins
|
|
29
|
-
DuplicateDependenciesService.getProjectDuplicateDependencies(
|
|
30
|
-
var pluginPackageJson = PackageJson_1.PackageJson.fromDirPath(
|
|
28
|
+
DuplicateDependenciesService.getProjectDuplicateDependencies(plugin.path, duplicateDependencies);
|
|
29
|
+
var pluginPackageJson = PackageJson_1.PackageJson.fromDirPath(plugin.path);
|
|
31
30
|
var pluginDependencies = pluginPackageJson.getDependenciesPackageNames();
|
|
32
|
-
var pluginDuplicateDependencies = duplicateDependencies.get(plugin);
|
|
31
|
+
var pluginDuplicateDependencies = duplicateDependencies.get(plugin.fullname);
|
|
33
32
|
if (!pluginDuplicateDependencies) {
|
|
34
33
|
pluginDuplicateDependencies = new Set();
|
|
35
|
-
duplicateDependencies.set(plugin, pluginDuplicateDependencies);
|
|
34
|
+
duplicateDependencies.set(plugin.fullname, pluginDuplicateDependencies);
|
|
36
35
|
}
|
|
37
36
|
for (var _i = 0, projectDevDependencies_1 = projectDevDependencies; _i < projectDevDependencies_1.length; _i++) {
|
|
38
37
|
var projectDevDependency = projectDevDependencies_1[_i];
|
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.GitService = void 0;
|
|
40
40
|
var fs_1 = require("fs");
|
|
41
41
|
var path_1 = require("path");
|
|
42
|
+
var constants_1 = require("../constants");
|
|
42
43
|
var CmdService_1 = require("./CmdService");
|
|
43
44
|
var GitService = /** @class */ (function () {
|
|
44
45
|
function GitService() {
|
|
@@ -83,7 +84,7 @@ var GitService = /** @class */ (function () {
|
|
|
83
84
|
return mode & parseInt("777", 8);
|
|
84
85
|
};
|
|
85
86
|
GitService.GIT_HOOK_MODE = 493;
|
|
86
|
-
GitService.GIT_HOOK_TEMPLATE = "#!/bin/sh\n\n# Created by
|
|
87
|
+
GitService.GIT_HOOK_TEMPLATE = "#!/bin/sh\n\n# Created by ".concat(constants_1.PROJECT_NAME, " (").concat(constants_1.PROJECT_URL, ")\n\n%gitHookCommand%");
|
|
87
88
|
return GitService;
|
|
88
89
|
}());
|
|
89
90
|
exports.GitService = GitService;
|
|
@@ -4,7 +4,7 @@ export declare type Migration = {
|
|
|
4
4
|
};
|
|
5
5
|
export declare type MigrationUpFunction = (absoluteProjectDir: string) => Promise<void>;
|
|
6
6
|
export declare class MigrationsService {
|
|
7
|
-
static executeMigrations(
|
|
7
|
+
static executeMigrations(absoluteProjectDir: string, currentVersion: string | undefined): Promise<void>;
|
|
8
8
|
private static getAvailableMigrations;
|
|
9
9
|
private static getPluginMigrations;
|
|
10
10
|
}
|
|
@@ -40,16 +40,17 @@ exports.MigrationsService = void 0;
|
|
|
40
40
|
var fs_1 = require("fs");
|
|
41
41
|
var path_1 = require("path");
|
|
42
42
|
var PackageJson_1 = require("../services/PackageJson");
|
|
43
|
+
var PluginService_1 = require("./PluginService");
|
|
43
44
|
var MigrationsService = /** @class */ (function () {
|
|
44
45
|
function MigrationsService() {
|
|
45
46
|
}
|
|
46
|
-
MigrationsService.executeMigrations = function (
|
|
47
|
+
MigrationsService.executeMigrations = function (absoluteProjectDir, currentVersion) {
|
|
47
48
|
return __awaiter(this, void 0, void 0, function () {
|
|
48
49
|
var migrations, packageJson, packageJsonBackupPath, _i, migrations_1, migration, up, error_1;
|
|
49
50
|
return __generator(this, function (_a) {
|
|
50
51
|
switch (_a.label) {
|
|
51
52
|
case 0:
|
|
52
|
-
migrations = MigrationsService.getAvailableMigrations(
|
|
53
|
+
migrations = MigrationsService.getAvailableMigrations(absoluteProjectDir, currentVersion);
|
|
53
54
|
packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
|
|
54
55
|
packageJsonBackupPath = packageJson.backup();
|
|
55
56
|
_a.label = 1;
|
|
@@ -89,13 +90,12 @@ var MigrationsService = /** @class */ (function () {
|
|
|
89
90
|
});
|
|
90
91
|
});
|
|
91
92
|
};
|
|
92
|
-
MigrationsService.getAvailableMigrations = function (
|
|
93
|
-
var
|
|
94
|
-
var installedPlugins = packageJson.getInstalledPlugins();
|
|
93
|
+
MigrationsService.getAvailableMigrations = function (absoluteProjectDir, currentVersion) {
|
|
94
|
+
var installedPlugins = PluginService_1.PluginService.getInstalledPlugins(absoluteProjectDir);
|
|
95
95
|
var migrationFiles = [];
|
|
96
96
|
for (var _i = 0, installedPlugins_1 = installedPlugins; _i < installedPlugins_1.length; _i++) {
|
|
97
97
|
var installedPlugin = installedPlugins_1[_i];
|
|
98
|
-
migrationFiles.push.apply(migrationFiles, MigrationsService.getPluginMigrations(
|
|
98
|
+
migrationFiles.push.apply(migrationFiles, MigrationsService.getPluginMigrations(installedPlugin, currentVersion));
|
|
99
99
|
}
|
|
100
100
|
migrationFiles.sort(function (_a, _b) {
|
|
101
101
|
var nameA = _a.name;
|
|
@@ -104,12 +104,11 @@ var MigrationsService = /** @class */ (function () {
|
|
|
104
104
|
});
|
|
105
105
|
return Array.from(new Set(migrationFiles));
|
|
106
106
|
};
|
|
107
|
-
MigrationsService.getPluginMigrations = function (
|
|
108
|
-
var pluginDirPath = (0, path_1.resolve)(tsDevToolsRootPath, "../../", plugin);
|
|
107
|
+
MigrationsService.getPluginMigrations = function (plugin, currentVersion) {
|
|
109
108
|
// First retrieve migration of inherited plugins
|
|
110
|
-
var migrationFiles = MigrationsService.getAvailableMigrations(
|
|
109
|
+
var migrationFiles = MigrationsService.getAvailableMigrations(plugin.path, currentVersion);
|
|
111
110
|
// Then retrieve
|
|
112
|
-
var pluginMigrationsDirPath = (0, path_1.resolve)(
|
|
111
|
+
var pluginMigrationsDirPath = (0, path_1.resolve)(plugin.path, "dist/install/migrations");
|
|
113
112
|
for (var _i = 0, _a = (0, fs_1.readdirSync)(pluginMigrationsDirPath); _i < _a.length; _i++) {
|
|
114
113
|
var migrationFile = _a[_i];
|
|
115
114
|
if (!migrationFile.match(/^[0-9]{14}-[a-z]+\.(js|ts)$/)) {
|
|
@@ -16,7 +16,6 @@ export declare class PackageJson {
|
|
|
16
16
|
getPackageVersion(): string | undefined;
|
|
17
17
|
isPrivate(): boolean;
|
|
18
18
|
getTsDevToolsVersion(): string | undefined;
|
|
19
|
-
getInstalledPlugins(): string[];
|
|
20
19
|
getDependenciesPackageNames(): string[];
|
|
21
20
|
getDevDependenciesPackageNames(): string[];
|
|
22
21
|
getAllDependenciesPackageNames(): string[];
|
|
@@ -48,18 +48,6 @@ var PackageJson = /** @class */ (function () {
|
|
|
48
48
|
var version = tsDevToolsConfig === null || tsDevToolsConfig === void 0 ? void 0 : tsDevToolsConfig.version;
|
|
49
49
|
return version;
|
|
50
50
|
};
|
|
51
|
-
PackageJson.prototype.getInstalledPlugins = function () {
|
|
52
|
-
var allDependenciesPackageNames = this.getAllDependenciesPackageNames();
|
|
53
|
-
if (!allDependenciesPackageNames.length) {
|
|
54
|
-
return [];
|
|
55
|
-
}
|
|
56
|
-
var plugins = allDependenciesPackageNames.filter(function (packageName) {
|
|
57
|
-
return packageName.match(/^@ts-dev-tools\/.*$/);
|
|
58
|
-
});
|
|
59
|
-
var sortPlugins = function (pluginA, pluginB) { return pluginA.localeCompare(pluginB); };
|
|
60
|
-
plugins.sort(sortPlugins);
|
|
61
|
-
return plugins;
|
|
62
|
-
};
|
|
63
51
|
PackageJson.prototype.getDependenciesPackageNames = function () {
|
|
64
52
|
var dependencies = this.getContent().dependencies;
|
|
65
53
|
return dependencies ? Object.keys(dependencies) : [];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare type Plugin = {
|
|
2
|
+
fullname: string;
|
|
3
|
+
shortname: string;
|
|
4
|
+
path: string;
|
|
5
|
+
};
|
|
6
|
+
export declare class PluginService {
|
|
7
|
+
static packageNameIsPlugin(packageName: string): RegExpMatchArray | null;
|
|
8
|
+
static getInstalledPlugins(absoluteProjectDir: string): Plugin[];
|
|
9
|
+
static getPluginShortname(fullname: string): string;
|
|
10
|
+
private static getPluginFromFullname;
|
|
11
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PluginService = void 0;
|
|
4
|
+
var fs_1 = require("fs");
|
|
5
|
+
var path_1 = require("path");
|
|
6
|
+
var constants_1 = require("../constants");
|
|
7
|
+
var CorePackageService_1 = require("./CorePackageService");
|
|
8
|
+
var PackageJson_1 = require("./PackageJson");
|
|
9
|
+
var PluginService = /** @class */ (function () {
|
|
10
|
+
function PluginService() {
|
|
11
|
+
}
|
|
12
|
+
PluginService.packageNameIsPlugin = function (packageName) {
|
|
13
|
+
return packageName.match(new RegExp("^".concat(constants_1.PACKAGE_BASE_NAME, "/.*$")));
|
|
14
|
+
};
|
|
15
|
+
PluginService.getInstalledPlugins = function (absoluteProjectDir) {
|
|
16
|
+
var packageJson = PackageJson_1.PackageJson.fromDirPath(absoluteProjectDir);
|
|
17
|
+
var allDependenciesPackageNames = packageJson.getAllDependenciesPackageNames();
|
|
18
|
+
if (!allDependenciesPackageNames.length) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
var plugins = allDependenciesPackageNames.filter(function (packageName) {
|
|
22
|
+
return PluginService.packageNameIsPlugin(packageName);
|
|
23
|
+
});
|
|
24
|
+
var sortPlugins = function (pluginA, pluginB) { return pluginA.localeCompare(pluginB); };
|
|
25
|
+
plugins.sort(sortPlugins);
|
|
26
|
+
return plugins.map(PluginService.getPluginFromFullname);
|
|
27
|
+
};
|
|
28
|
+
PluginService.getPluginShortname = function (fullname) {
|
|
29
|
+
var shortname = fullname.replace("".concat(constants_1.PACKAGE_BASE_NAME, "/"), "");
|
|
30
|
+
return shortname;
|
|
31
|
+
};
|
|
32
|
+
PluginService.getPluginFromFullname = function (fullname) {
|
|
33
|
+
var corePackageRootPath = CorePackageService_1.CorePackageService.getPackageRootPath();
|
|
34
|
+
var shortname = PluginService.getPluginShortname(fullname);
|
|
35
|
+
var path = (0, path_1.resolve)(corePackageRootPath, "../", shortname);
|
|
36
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
37
|
+
throw new Error("Plugin \"".concat(fullname, "\" is required but cannot be found in ").concat(path, "."));
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
fullname: fullname,
|
|
41
|
+
shortname: shortname,
|
|
42
|
+
path: path,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
return PluginService;
|
|
46
|
+
}());
|
|
47
|
+
exports.PluginService = PluginService;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ExecException } from "child_process";
|
|
3
|
+
export declare function exec(cwd: string, cmd: string): Promise<{
|
|
4
|
+
code: number;
|
|
5
|
+
error: ExecException | null;
|
|
6
|
+
stdout: string;
|
|
7
|
+
stderr: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function safeExec(cwd: string, cmd: string): Promise<string>;
|
|
@@ -0,0 +1,71 @@
|
|
|
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 (_) 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.safeExec = exports.exec = void 0;
|
|
40
|
+
var child_process_1 = require("child_process");
|
|
41
|
+
function exec(cwd, cmd) {
|
|
42
|
+
return new Promise(function (resolve) {
|
|
43
|
+
(0, child_process_1.exec)(cmd, { cwd: cwd }, function (error, stdout, stderr) {
|
|
44
|
+
resolve({
|
|
45
|
+
code: error && error.code ? error.code : 0,
|
|
46
|
+
error: error,
|
|
47
|
+
stdout: stdout.trim(),
|
|
48
|
+
stderr: stderr,
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.exec = exec;
|
|
54
|
+
function safeExec(cwd, cmd) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
+
var _a, code, stderr, stdout, error;
|
|
57
|
+
return __generator(this, function (_b) {
|
|
58
|
+
switch (_b.label) {
|
|
59
|
+
case 0: return [4 /*yield*/, exec(cwd, cmd)];
|
|
60
|
+
case 1:
|
|
61
|
+
_a = _b.sent(), code = _a.code, stderr = _a.stderr, stdout = _a.stdout;
|
|
62
|
+
if (code !== 0) {
|
|
63
|
+
error = [stderr, stdout].filter(function (error) { return !!error; }).join("\n");
|
|
64
|
+
throw new Error("An error occured while executing command \"".concat(cmd, "\": ").concat(error));
|
|
65
|
+
}
|
|
66
|
+
return [2 /*return*/, stdout];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
exports.safeExec = safeExec;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.copyFolderSync = exports.deleteFolderRecursive = void 0;
|
|
4
|
+
var fs_1 = require("fs");
|
|
5
|
+
var path_1 = require("path");
|
|
6
|
+
function deleteFolderRecursive(path) {
|
|
7
|
+
if ((0, fs_1.existsSync)(path)) {
|
|
8
|
+
(0, fs_1.readdirSync)(path).forEach(function (file) {
|
|
9
|
+
var curPath = (0, path_1.join)(path, file);
|
|
10
|
+
if ((0, fs_1.lstatSync)(curPath).isDirectory()) {
|
|
11
|
+
// recurse
|
|
12
|
+
deleteFolderRecursive(curPath);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
// delete file
|
|
16
|
+
(0, fs_1.unlinkSync)(curPath);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
(0, fs_1.rmdirSync)(path);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.deleteFolderRecursive = deleteFolderRecursive;
|
|
23
|
+
function copyFolderSync(from, to) {
|
|
24
|
+
if (!(0, fs_1.existsSync)(to)) {
|
|
25
|
+
(0, fs_1.mkdirSync)(to);
|
|
26
|
+
}
|
|
27
|
+
(0, fs_1.readdirSync)(from).forEach(function (element) {
|
|
28
|
+
if ((0, fs_1.lstatSync)((0, path_1.join)(from, element)).isFile()) {
|
|
29
|
+
(0, fs_1.copyFileSync)((0, path_1.join)(from, element), (0, path_1.join)(to, element));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
copyFolderSync((0, path_1.join)(from, element), (0, path_1.join)(to, element));
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
exports.copyFolderSync = copyFolderSync;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const testProjectDir: string;
|
|
2
|
+
export declare function createTestProjectDir(filename: string): string;
|
|
3
|
+
export declare function createTestProjectDirWithFixtures(filename: string): string;
|
|
4
|
+
export declare function getCorePackageRootPath(filename: string): string;
|
|
5
|
+
export declare function restorePackageJson(filename: string): void;
|
|
6
|
+
export declare function removeTestProjectDir(filename: string): void;
|
|
7
|
+
export declare const createTestMonorepoProjectDir: (projectDir: string, createProject: (projectDir: string) => Promise<void>) => Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Create a full file structure for testing ts-dev-tools packages installation
|
|
10
|
+
* @param projectDir path where to prepare packages
|
|
11
|
+
* @returns packages directory path
|
|
12
|
+
*/
|
|
13
|
+
export declare const createTestPackagesDir: (projectDir: string) => Promise<string>;
|
|
@@ -0,0 +1,169 @@
|
|
|
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 (_) 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.createTestPackagesDir = exports.createTestMonorepoProjectDir = exports.removeTestProjectDir = exports.restorePackageJson = exports.getCorePackageRootPath = exports.createTestProjectDirWithFixtures = exports.createTestProjectDir = exports.testProjectDir = void 0;
|
|
40
|
+
var fs_1 = require("fs");
|
|
41
|
+
var os_1 = require("os");
|
|
42
|
+
var path_1 = require("path");
|
|
43
|
+
var PackageJson_1 = require("../services/PackageJson");
|
|
44
|
+
var PluginService_1 = require("../services/PluginService");
|
|
45
|
+
var cli_1 = require("./cli");
|
|
46
|
+
var file_system_1 = require("./file-system");
|
|
47
|
+
exports.testProjectDir = (0, path_1.resolve)("__tests__/test-project");
|
|
48
|
+
var getTestProjectDirPath = function (filename) {
|
|
49
|
+
return (0, path_1.join)((0, os_1.tmpdir)(), "test-" + (0, path_1.basename)(filename).split(".")[0]);
|
|
50
|
+
};
|
|
51
|
+
var defaultPackageJsonPath = (0, path_1.join)(exports.testProjectDir, "package.json");
|
|
52
|
+
function createTestProjectDir(filename) {
|
|
53
|
+
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
54
|
+
if ((0, fs_1.existsSync)(testProjectDirPath)) {
|
|
55
|
+
(0, file_system_1.deleteFolderRecursive)(testProjectDirPath);
|
|
56
|
+
}
|
|
57
|
+
(0, fs_1.mkdirSync)(testProjectDirPath);
|
|
58
|
+
return testProjectDirPath;
|
|
59
|
+
}
|
|
60
|
+
exports.createTestProjectDir = createTestProjectDir;
|
|
61
|
+
function createTestProjectDirWithFixtures(filename) {
|
|
62
|
+
var testProjectDirPath = createTestProjectDir(filename);
|
|
63
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(testProjectDirPath, ".git/hooks"), { recursive: true });
|
|
64
|
+
// Fake node_modules
|
|
65
|
+
var corePackageRootPath = getCorePackageRootPath(filename);
|
|
66
|
+
(0, fs_1.mkdirSync)(corePackageRootPath, { recursive: true });
|
|
67
|
+
(0, fs_1.copyFileSync)((0, path_1.resolve)(__dirname, "../../package.json"), (0, path_1.join)(corePackageRootPath, "package.json"));
|
|
68
|
+
// Fake migrations
|
|
69
|
+
var tsDevToolsDistPath = (0, path_1.join)(corePackageRootPath, "dist");
|
|
70
|
+
(0, fs_1.symlinkSync)((0, path_1.resolve)(__dirname, ".."), tsDevToolsDistPath);
|
|
71
|
+
restorePackageJson(filename);
|
|
72
|
+
return testProjectDirPath;
|
|
73
|
+
}
|
|
74
|
+
exports.createTestProjectDirWithFixtures = createTestProjectDirWithFixtures;
|
|
75
|
+
function getCorePackageRootPath(filename) {
|
|
76
|
+
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
77
|
+
if (!(0, fs_1.existsSync)(testProjectDirPath)) {
|
|
78
|
+
throw new Error("Test project dir \"".concat(testProjectDirPath, "\" does not exist"));
|
|
79
|
+
}
|
|
80
|
+
return (0, path_1.join)(testProjectDirPath, "node_modules/@ts-dev-tools/core");
|
|
81
|
+
}
|
|
82
|
+
exports.getCorePackageRootPath = getCorePackageRootPath;
|
|
83
|
+
function restorePackageJson(filename) {
|
|
84
|
+
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
85
|
+
if (!(0, fs_1.existsSync)(testProjectDirPath)) {
|
|
86
|
+
throw new Error("Test project dir \"".concat(testProjectDirPath, "\" does not exist"));
|
|
87
|
+
}
|
|
88
|
+
(0, fs_1.copyFileSync)(defaultPackageJsonPath, (0, path_1.join)(testProjectDirPath, "package.json"));
|
|
89
|
+
}
|
|
90
|
+
exports.restorePackageJson = restorePackageJson;
|
|
91
|
+
function removeTestProjectDir(filename) {
|
|
92
|
+
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
93
|
+
if (!(0, fs_1.existsSync)(testProjectDirPath)) {
|
|
94
|
+
throw new Error("Test project dir \"".concat(testProjectDirPath, "\" does not exist"));
|
|
95
|
+
}
|
|
96
|
+
(0, file_system_1.deleteFolderRecursive)(testProjectDirPath);
|
|
97
|
+
}
|
|
98
|
+
exports.removeTestProjectDir = removeTestProjectDir;
|
|
99
|
+
var createTestMonorepoProjectDir = function (projectDir, createProject) { return __awaiter(void 0, void 0, void 0, function () {
|
|
100
|
+
var packageDir;
|
|
101
|
+
return __generator(this, function (_a) {
|
|
102
|
+
switch (_a.label) {
|
|
103
|
+
case 0: return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn init --yes")];
|
|
104
|
+
case 1:
|
|
105
|
+
_a.sent();
|
|
106
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn add -W --dev typescript")];
|
|
107
|
+
case 2:
|
|
108
|
+
_a.sent();
|
|
109
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn tsc --init")];
|
|
110
|
+
case 3:
|
|
111
|
+
_a.sent();
|
|
112
|
+
PackageJson_1.PackageJson.fromDirPath(projectDir).merge({
|
|
113
|
+
private: true,
|
|
114
|
+
workspaces: ["packages/*"],
|
|
115
|
+
});
|
|
116
|
+
packageDir = (0, path_1.join)(projectDir, "packages/test-package");
|
|
117
|
+
(0, fs_1.mkdirSync)(packageDir, { recursive: true });
|
|
118
|
+
return [4 /*yield*/, createProject(packageDir)];
|
|
119
|
+
case 4:
|
|
120
|
+
_a.sent();
|
|
121
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "yarn install")];
|
|
122
|
+
case 5:
|
|
123
|
+
_a.sent();
|
|
124
|
+
return [2 /*return*/];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}); };
|
|
128
|
+
exports.createTestMonorepoProjectDir = createTestMonorepoProjectDir;
|
|
129
|
+
/**
|
|
130
|
+
* Create a full file structure for testing ts-dev-tools packages installation
|
|
131
|
+
* @param projectDir path where to prepare packages
|
|
132
|
+
* @returns packages directory path
|
|
133
|
+
*/
|
|
134
|
+
var createTestPackagesDir = function (projectDir) { return __awaiter(void 0, void 0, void 0, function () {
|
|
135
|
+
var originalPackagesPath, projectDirPackages, projectDirPackagesFiles, _i, projectDirPackagesFiles_1, projectDirPackagesFile, packagePath, packageJson, content, _a, _b, packageName;
|
|
136
|
+
return __generator(this, function (_c) {
|
|
137
|
+
switch (_c.label) {
|
|
138
|
+
case 0:
|
|
139
|
+
originalPackagesPath = (0, path_1.resolve)(__dirname, "../../..");
|
|
140
|
+
projectDirPackages = (0, path_1.join)(projectDir, "tmp-packages");
|
|
141
|
+
(0, fs_1.mkdirSync)(projectDirPackages);
|
|
142
|
+
return [4 /*yield*/, (0, cli_1.safeExec)(projectDir, "cp -R ".concat(originalPackagesPath, " ").concat(projectDirPackages, "/"))];
|
|
143
|
+
case 1:
|
|
144
|
+
_c.sent();
|
|
145
|
+
projectDirPackages = (0, path_1.resolve)(projectDirPackages, "packages");
|
|
146
|
+
projectDirPackagesFiles = (0, fs_1.readdirSync)(projectDirPackages);
|
|
147
|
+
for (_i = 0, projectDirPackagesFiles_1 = projectDirPackagesFiles; _i < projectDirPackagesFiles_1.length; _i++) {
|
|
148
|
+
projectDirPackagesFile = projectDirPackagesFiles_1[_i];
|
|
149
|
+
packagePath = (0, path_1.resolve)(projectDirPackages, projectDirPackagesFile);
|
|
150
|
+
if (!(0, fs_1.lstatSync)(packagePath).isDirectory()) {
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
packageJson = PackageJson_1.PackageJson.fromDirPath(packagePath);
|
|
154
|
+
content = packageJson.getContent();
|
|
155
|
+
if (content.dependencies) {
|
|
156
|
+
for (_a = 0, _b = Object.keys(content.dependencies); _a < _b.length; _a++) {
|
|
157
|
+
packageName = _b[_a];
|
|
158
|
+
if (PluginService_1.PluginService.packageNameIsPlugin(packageName)) {
|
|
159
|
+
content.dependencies[packageName] = "file:../".concat(PluginService_1.PluginService.getPluginShortname(packageName));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
packageJson.setContent(content);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return [2 /*return*/, projectDirPackages];
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}); };
|
|
169
|
+
exports.createTestPackagesDir = createTestPackagesDir;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-dev-tools/core",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.20",
|
|
4
4
|
"description": "TS dev tools Core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"linter",
|
|
@@ -31,7 +31,10 @@
|
|
|
31
31
|
"start": "yarn link && tsc -w",
|
|
32
32
|
"stop": "yarn unlink",
|
|
33
33
|
"build": "rimraf dist && tsc",
|
|
34
|
-
"
|
|
34
|
+
"jest": "jest --detectOpenHandles --forceExit",
|
|
35
|
+
"test": "yarn jest --maxWorkers=50%",
|
|
36
|
+
"test:unit": "yarn test --testPathPattern \".+spec\\.ts\"",
|
|
37
|
+
"test:e2e": "yarn test --testPathPattern \".+spec\\.e2e\\.ts\"",
|
|
35
38
|
"test:coverage": "yarn test --coverage",
|
|
36
39
|
"lint": "eslint \"src/**/*.{ts,tsx}\"",
|
|
37
40
|
"prepublishOnly": "pinst --disable",
|
|
@@ -45,22 +48,22 @@
|
|
|
45
48
|
"@commitlint/config-conventional": "^16.2.1",
|
|
46
49
|
"@types/jest": "^27.4.1",
|
|
47
50
|
"@types/node": "^17.0.21",
|
|
48
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
49
|
-
"@typescript-eslint/parser": "^5.
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^5.14.0",
|
|
52
|
+
"@typescript-eslint/parser": "^5.14.0",
|
|
50
53
|
"eslint": "^8.10.0",
|
|
51
|
-
"eslint-config-prettier": "^8.
|
|
54
|
+
"eslint-config-prettier": "^8.5.0",
|
|
52
55
|
"eslint-plugin-import": "^2.25.4",
|
|
53
56
|
"eslint-plugin-jest": "^26.1.1",
|
|
54
57
|
"eslint-plugin-node": "^11.1.0",
|
|
55
58
|
"eslint-plugin-promise": "^6.0.0",
|
|
56
59
|
"import-sort-style-module": "^6.0.0",
|
|
57
60
|
"jest": "^27.5.1",
|
|
58
|
-
"lint-staged": "^12.3.
|
|
61
|
+
"lint-staged": "^12.3.5",
|
|
59
62
|
"prettier": "^2.5.1",
|
|
60
63
|
"prettier-plugin-import-sort": "^0.0.7",
|
|
61
64
|
"pretty-quick": "^3.1.3",
|
|
62
65
|
"ts-jest": "^27.1.3",
|
|
63
|
-
"typescript": "^4.
|
|
66
|
+
"typescript": "^4.6.2"
|
|
64
67
|
},
|
|
65
68
|
"devDependencies": {
|
|
66
69
|
"pinst": "^3.0.0"
|
|
@@ -103,8 +106,8 @@
|
|
|
103
106
|
"testEnvironment": "node",
|
|
104
107
|
"testMatch": [
|
|
105
108
|
"**/__tests__/**/*.[jt]s?(x)",
|
|
106
|
-
"**/?(*.)+(spec|test).+(ts|tsx|js)"
|
|
109
|
+
"**/?(*.)+(spec|test)?(.*).+(ts|tsx|js)"
|
|
107
110
|
]
|
|
108
111
|
},
|
|
109
|
-
"gitHead": "
|
|
112
|
+
"gitHead": "bc97a743f68e98d603f8d3df45efd5389440e32a"
|
|
110
113
|
}
|
package/dist/tests/utils.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const testProjectDir: string;
|
|
2
|
-
export declare function createTestProjectDir(filename: string): string;
|
|
3
|
-
export declare function getTsDevToolsRootPath(filename: string): string;
|
|
4
|
-
export declare function restorePackageJson(filename: string): void;
|
|
5
|
-
export declare function removeTestProjectDir(filename: string): void;
|
package/dist/tests/utils.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeTestProjectDir = exports.restorePackageJson = exports.getTsDevToolsRootPath = exports.createTestProjectDir = exports.testProjectDir = void 0;
|
|
4
|
-
var fs_1 = require("fs");
|
|
5
|
-
var os_1 = require("os");
|
|
6
|
-
var path_1 = require("path");
|
|
7
|
-
exports.testProjectDir = (0, path_1.resolve)("__tests__/test-project");
|
|
8
|
-
var getTestProjectDirPath = function (filename) {
|
|
9
|
-
return (0, path_1.join)((0, os_1.tmpdir)(), (0, path_1.basename)(filename).split(".")[0]);
|
|
10
|
-
};
|
|
11
|
-
var defaultPackageJsonPath = (0, path_1.join)(exports.testProjectDir, "package.json");
|
|
12
|
-
function createTestProjectDir(filename) {
|
|
13
|
-
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
14
|
-
if ((0, fs_1.existsSync)(testProjectDirPath)) {
|
|
15
|
-
deleteFolderRecursive(testProjectDirPath);
|
|
16
|
-
}
|
|
17
|
-
(0, fs_1.mkdirSync)(testProjectDirPath);
|
|
18
|
-
(0, fs_1.mkdirSync)((0, path_1.join)(testProjectDirPath, ".git/hooks"), { recursive: true });
|
|
19
|
-
// Fake node_modules
|
|
20
|
-
var tsDevToolsRootPath = getTsDevToolsRootPath(filename);
|
|
21
|
-
(0, fs_1.mkdirSync)(tsDevToolsRootPath, { recursive: true });
|
|
22
|
-
(0, fs_1.copyFileSync)((0, path_1.resolve)(__dirname, "../../package.json"), (0, path_1.join)(tsDevToolsRootPath, "package.json"));
|
|
23
|
-
// Fake migrations
|
|
24
|
-
var tsDevToolsDistPath = (0, path_1.join)(tsDevToolsRootPath, "dist");
|
|
25
|
-
(0, fs_1.symlinkSync)((0, path_1.resolve)(__dirname, ".."), tsDevToolsDistPath);
|
|
26
|
-
restorePackageJson(filename);
|
|
27
|
-
return testProjectDirPath;
|
|
28
|
-
}
|
|
29
|
-
exports.createTestProjectDir = createTestProjectDir;
|
|
30
|
-
function getTsDevToolsRootPath(filename) {
|
|
31
|
-
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
32
|
-
if (!(0, fs_1.existsSync)(testProjectDirPath)) {
|
|
33
|
-
throw new Error("Test project dir \"".concat(testProjectDirPath, "\" does not exist"));
|
|
34
|
-
}
|
|
35
|
-
return (0, path_1.join)(testProjectDirPath, "node_modules/@ts-dev-tools/core");
|
|
36
|
-
}
|
|
37
|
-
exports.getTsDevToolsRootPath = getTsDevToolsRootPath;
|
|
38
|
-
function restorePackageJson(filename) {
|
|
39
|
-
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
40
|
-
if (!(0, fs_1.existsSync)(testProjectDirPath)) {
|
|
41
|
-
throw new Error("Test project dir \"".concat(testProjectDirPath, "\" does not exist"));
|
|
42
|
-
}
|
|
43
|
-
(0, fs_1.copyFileSync)(defaultPackageJsonPath, (0, path_1.join)(testProjectDirPath, "package.json"));
|
|
44
|
-
}
|
|
45
|
-
exports.restorePackageJson = restorePackageJson;
|
|
46
|
-
function removeTestProjectDir(filename) {
|
|
47
|
-
var testProjectDirPath = getTestProjectDirPath(filename);
|
|
48
|
-
if (!(0, fs_1.existsSync)(testProjectDirPath)) {
|
|
49
|
-
throw new Error("Test project dir \"".concat(testProjectDirPath, "\" does not exist"));
|
|
50
|
-
}
|
|
51
|
-
deleteFolderRecursive(testProjectDirPath);
|
|
52
|
-
}
|
|
53
|
-
exports.removeTestProjectDir = removeTestProjectDir;
|
|
54
|
-
function deleteFolderRecursive(path) {
|
|
55
|
-
if ((0, fs_1.existsSync)(path)) {
|
|
56
|
-
(0, fs_1.readdirSync)(path).forEach(function (file) {
|
|
57
|
-
var curPath = (0, path_1.join)(path, file);
|
|
58
|
-
if ((0, fs_1.lstatSync)(curPath).isDirectory()) {
|
|
59
|
-
// recurse
|
|
60
|
-
deleteFolderRecursive(curPath);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// delete file
|
|
64
|
-
(0, fs_1.unlinkSync)(curPath);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
(0, fs_1.rmdirSync)(path);
|
|
68
|
-
}
|
|
69
|
-
}
|