@lage-run/hasher 0.1.1 → 0.1.2
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/CHANGELOG.json +16 -1
- package/CHANGELOG.md +10 -2
- package/lib/__tests__/createPackageHashes.test.js +13 -12
- package/lib/__tests__/getPackageDeps.test.js +149 -131
- package/lib/__tests__/getRepoDeps.test.js +106 -91
- package/lib/__tests__/getRepoState.test.js +70 -33
- package/lib/__tests__/hashOfFiles.test.js +71 -68
- package/lib/__tests__/helpers.test.js +12 -11
- package/lib/__tests__/index.test.js +50 -39
- package/lib/__tests__/resolveDependenciesHelper.js +44 -25
- package/lib/__tests__/resolveExternalDependencies.test.js +114 -68
- package/lib/__tests__/resolveInternalDependencies.test.js +98 -67
- package/lib/createPackageHashes.js +27 -20
- package/lib/getPackageDeps.js +118 -125
- package/lib/getRepoState.js +86 -101
- package/lib/hashOfFiles.js +59 -53
- package/lib/hashOfPackage.js +41 -28
- package/lib/helpers.js +35 -19
- package/lib/index.js +50 -41
- package/lib/repoInfo.js +26 -29
- package/lib/resolveExternalDependencies.js +32 -22
- package/lib/resolveInternalDependencies.js +16 -8
- package/package.json +2 -2
- package/lib/__fixtures__/config/backfill.config.js +0 -5
- package/lib/__fixtures__/config/backfill.config.js.map +0 -1
- package/lib/__fixtures__/config/packages/package-1/backfill.config.js +0 -2
- package/lib/__fixtures__/config/packages/package-1/backfill.config.js.map +0 -1
- package/lib/__tests__/createPackageHashes.test.js.map +0 -1
- package/lib/__tests__/getPackageDeps.test.js.map +0 -1
- package/lib/__tests__/getRepoDeps.test.js.map +0 -1
- package/lib/__tests__/getRepoState.test.js.map +0 -1
- package/lib/__tests__/hashOfFiles.test.js.map +0 -1
- package/lib/__tests__/helpers.test.js.map +0 -1
- package/lib/__tests__/index.test.js.map +0 -1
- package/lib/__tests__/resolveDependenciesHelper.js.map +0 -1
- package/lib/__tests__/resolveExternalDependencies.test.js.map +0 -1
- package/lib/__tests__/resolveInternalDependencies.test.js.map +0 -1
- package/lib/createPackageHashes.js.map +0 -1
- package/lib/getPackageDeps.js.map +0 -1
- package/lib/getRepoState.js.map +0 -1
- package/lib/hashOfFiles.js.map +0 -1
- package/lib/hashOfPackage.js.map +0 -1
- package/lib/helpers.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/repoInfo.js.map +0 -1
- package/lib/resolveExternalDependencies.js.map +0 -1
- package/lib/resolveInternalDependencies.js.map +0 -1
|
@@ -1,108 +1,154 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _workspaceTools = require("workspace-tools");
|
|
6
|
+
const _resolveExternalDependencies = require("../resolveExternalDependencies");
|
|
7
|
+
const _resolveDependenciesHelper = require("./resolveDependenciesHelper");
|
|
8
|
+
const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
9
|
+
const _monorepoFixture = require("@lage-run/monorepo-fixture");
|
|
10
|
+
function _interopRequireDefault(obj) {
|
|
11
|
+
return obj && obj.__esModule ? obj : {
|
|
12
|
+
default: obj
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const fixturesPath = _path.default.join(__dirname, "..", "__fixtures__");
|
|
16
|
+
describe("filterExternalDependencies()", ()=>{
|
|
17
|
+
it("only lists external dependencies", async ()=>{
|
|
18
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInYarnFixture)("monorepo", _resolveExternalDependencies.filterExternalDependencies);
|
|
19
|
+
expect(results).toEqual({
|
|
20
|
+
foo: "1.0.0"
|
|
21
|
+
});
|
|
16
22
|
});
|
|
17
|
-
it("identifies all dependencies as external packages if there are no workspaces", async ()
|
|
18
|
-
const results = await (0,
|
|
19
|
-
expect(results).toEqual({
|
|
23
|
+
it("identifies all dependencies as external packages if there are no workspaces", async ()=>{
|
|
24
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInYarnFixture)("basic", _resolveExternalDependencies.filterExternalDependencies);
|
|
25
|
+
expect(results).toEqual({
|
|
26
|
+
foo: "1.0.0",
|
|
27
|
+
"package-a": "1.0.0"
|
|
28
|
+
});
|
|
20
29
|
});
|
|
21
30
|
});
|
|
22
|
-
describe("addToQueue()", ()
|
|
23
|
-
it("adds external dependencies to queue", ()
|
|
24
|
-
const externalDependencies = {
|
|
31
|
+
describe("addToQueue()", ()=>{
|
|
32
|
+
it("adds external dependencies to queue", ()=>{
|
|
33
|
+
const externalDependencies = {
|
|
34
|
+
foo: "1.0.0"
|
|
35
|
+
};
|
|
25
36
|
const done = [];
|
|
26
37
|
const queue = [];
|
|
27
|
-
(0,
|
|
28
|
-
const expectedQueue = [
|
|
38
|
+
(0, _resolveExternalDependencies.addToQueue)(externalDependencies, done, queue);
|
|
39
|
+
const expectedQueue = [
|
|
40
|
+
[
|
|
41
|
+
"foo",
|
|
42
|
+
"1.0.0"
|
|
43
|
+
]
|
|
44
|
+
];
|
|
29
45
|
expect(queue).toEqual(expectedQueue);
|
|
30
46
|
});
|
|
31
|
-
it("doesn't add to the queue if the dependency has been visited", ()
|
|
32
|
-
const externalDependencies = {
|
|
33
|
-
|
|
47
|
+
it("doesn't add to the queue if the dependency has been visited", ()=>{
|
|
48
|
+
const externalDependencies = {
|
|
49
|
+
foo: "1.0.0"
|
|
50
|
+
};
|
|
51
|
+
const done = [
|
|
52
|
+
"foo@1.0.0"
|
|
53
|
+
];
|
|
34
54
|
const queue = [];
|
|
35
|
-
(0,
|
|
55
|
+
(0, _resolveExternalDependencies.addToQueue)(externalDependencies, done, queue);
|
|
36
56
|
expect(queue).toEqual([]);
|
|
37
57
|
});
|
|
38
|
-
it("doesn't add to queue if the dependency is already in the queue", ()
|
|
39
|
-
const externalDependencies = {
|
|
58
|
+
it("doesn't add to queue if the dependency is already in the queue", ()=>{
|
|
59
|
+
const externalDependencies = {
|
|
60
|
+
foo: "1.0.0"
|
|
61
|
+
};
|
|
40
62
|
const done = [];
|
|
41
|
-
const queue = [
|
|
42
|
-
|
|
43
|
-
|
|
63
|
+
const queue = [
|
|
64
|
+
[
|
|
65
|
+
"foo",
|
|
66
|
+
"1.0.0"
|
|
67
|
+
]
|
|
68
|
+
];
|
|
69
|
+
(0, _resolveExternalDependencies.addToQueue)(externalDependencies, done, queue);
|
|
70
|
+
const expectedQueue = [
|
|
71
|
+
[
|
|
72
|
+
"foo",
|
|
73
|
+
"1.0.0"
|
|
74
|
+
]
|
|
75
|
+
];
|
|
44
76
|
expect(queue).toEqual(expectedQueue);
|
|
45
77
|
});
|
|
46
78
|
});
|
|
47
|
-
describe("resolveExternalDependencies() - yarn", ()
|
|
48
|
-
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()
|
|
49
|
-
const monorepo = new
|
|
50
|
-
await monorepo.init(
|
|
79
|
+
describe("resolveExternalDependencies() - yarn", ()=>{
|
|
80
|
+
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()=>{
|
|
81
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
82
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo"));
|
|
51
83
|
const packageRoot = monorepo.root;
|
|
52
|
-
const workspaces = (0,
|
|
53
|
-
const allDependencies = {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
84
|
+
const workspaces = (0, _workspaceTools.getYarnWorkspaces)(packageRoot);
|
|
85
|
+
const allDependencies = {
|
|
86
|
+
"package-a": "1.0.0",
|
|
87
|
+
foo: "1.0.0"
|
|
88
|
+
};
|
|
89
|
+
const parsedLockFile = await (0, _workspaceTools.parseLockFile)(packageRoot);
|
|
90
|
+
const resolvedDependencies = (0, _resolveExternalDependencies.resolveExternalDependencies)(allDependencies, workspaces, parsedLockFile);
|
|
91
|
+
expect(resolvedDependencies).toEqual([
|
|
92
|
+
"foo@1.0.0",
|
|
93
|
+
"bar@^1.0.0"
|
|
94
|
+
]);
|
|
57
95
|
await monorepo.cleanup();
|
|
58
96
|
});
|
|
59
97
|
});
|
|
60
|
-
describe("resolveExternalDependencies() - pnpm", ()
|
|
61
|
-
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()
|
|
62
|
-
const monorepo = new
|
|
63
|
-
await monorepo.init(
|
|
98
|
+
describe("resolveExternalDependencies() - pnpm", ()=>{
|
|
99
|
+
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()=>{
|
|
100
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
101
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo-pnpm"));
|
|
64
102
|
const packageRoot = monorepo.root;
|
|
65
|
-
const workspaces = (0,
|
|
103
|
+
const workspaces = (0, _workspaceTools.getPnpmWorkspaces)(packageRoot);
|
|
66
104
|
const allDependencies = {
|
|
67
105
|
"package-a": "1.0.0",
|
|
68
|
-
once: "1.4.0"
|
|
106
|
+
once: "1.4.0"
|
|
69
107
|
};
|
|
70
|
-
const parsedLockFile = await (0,
|
|
71
|
-
const resolvedDependencies = (0,
|
|
72
|
-
expect(resolvedDependencies).toEqual([
|
|
108
|
+
const parsedLockFile = await (0, _workspaceTools.parseLockFile)(packageRoot);
|
|
109
|
+
const resolvedDependencies = (0, _resolveExternalDependencies.resolveExternalDependencies)(allDependencies, workspaces, parsedLockFile);
|
|
110
|
+
expect(resolvedDependencies).toEqual([
|
|
111
|
+
"once@1.4.0",
|
|
112
|
+
"wrappy@1.0.2"
|
|
113
|
+
]);
|
|
73
114
|
await monorepo.cleanup();
|
|
74
115
|
});
|
|
75
116
|
});
|
|
76
|
-
describe("resolveExternalDependencies() - rush+pnpm", ()
|
|
77
|
-
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()
|
|
78
|
-
const monorepo = new
|
|
79
|
-
await monorepo.init(
|
|
117
|
+
describe("resolveExternalDependencies() - rush+pnpm", ()=>{
|
|
118
|
+
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()=>{
|
|
119
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
120
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo-rush-pnpm"));
|
|
80
121
|
const packageRoot = monorepo.root;
|
|
81
|
-
const workspaces = (0,
|
|
122
|
+
const workspaces = (0, _workspaceTools.getRushWorkspaces)(packageRoot);
|
|
82
123
|
const allDependencies = {
|
|
83
124
|
"package-a": "1.0.0",
|
|
84
|
-
once: "1.4.0"
|
|
125
|
+
once: "1.4.0"
|
|
85
126
|
};
|
|
86
|
-
const parsedLockFile = await (0,
|
|
87
|
-
const resolvedDependencies = (0,
|
|
88
|
-
expect(resolvedDependencies).toEqual([
|
|
127
|
+
const parsedLockFile = await (0, _workspaceTools.parseLockFile)(packageRoot);
|
|
128
|
+
const resolvedDependencies = (0, _resolveExternalDependencies.resolveExternalDependencies)(allDependencies, workspaces, parsedLockFile);
|
|
129
|
+
expect(resolvedDependencies).toEqual([
|
|
130
|
+
"once@1.4.0",
|
|
131
|
+
"wrappy@1.0.2"
|
|
132
|
+
]);
|
|
89
133
|
await monorepo.cleanup();
|
|
90
134
|
});
|
|
91
135
|
});
|
|
92
|
-
describe("resolveExternalDependencies() - rush+yarn", ()
|
|
93
|
-
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()
|
|
94
|
-
const monorepo = new
|
|
95
|
-
await monorepo.init(
|
|
136
|
+
describe("resolveExternalDependencies() - rush+yarn", ()=>{
|
|
137
|
+
it("given a list of external dependencies and a parsed Lock file, add all dependencies, transitively", async ()=>{
|
|
138
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
139
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo-rush-yarn"));
|
|
96
140
|
const packageRoot = monorepo.root;
|
|
97
|
-
const workspaces = (0,
|
|
141
|
+
const workspaces = (0, _workspaceTools.getRushWorkspaces)(packageRoot);
|
|
98
142
|
const allDependencies = {
|
|
99
143
|
"package-a": "1.0.0",
|
|
100
|
-
once: "1.4.0"
|
|
144
|
+
once: "1.4.0"
|
|
101
145
|
};
|
|
102
|
-
const parsedLockFile = await (0,
|
|
103
|
-
const resolvedDependencies = (0,
|
|
104
|
-
expect(resolvedDependencies).toEqual([
|
|
146
|
+
const parsedLockFile = await (0, _workspaceTools.parseLockFile)(packageRoot);
|
|
147
|
+
const resolvedDependencies = (0, _resolveExternalDependencies.resolveExternalDependencies)(allDependencies, workspaces, parsedLockFile);
|
|
148
|
+
expect(resolvedDependencies).toEqual([
|
|
149
|
+
"once@1.4.0",
|
|
150
|
+
"wrappy@1.0.2"
|
|
151
|
+
]);
|
|
105
152
|
await monorepo.cleanup();
|
|
106
153
|
});
|
|
107
154
|
});
|
|
108
|
-
//# sourceMappingURL=resolveExternalDependencies.test.js.map
|
|
@@ -1,100 +1,131 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _workspaceTools = require("workspace-tools");
|
|
6
|
+
const _resolveInternalDependencies = require("../resolveInternalDependencies");
|
|
7
|
+
const _resolveDependenciesHelper = require("./resolveDependenciesHelper");
|
|
8
|
+
const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
9
|
+
const _monorepoFixture = require("@lage-run/monorepo-fixture");
|
|
10
|
+
function _interopRequireDefault(obj) {
|
|
11
|
+
return obj && obj.__esModule ? obj : {
|
|
12
|
+
default: obj
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const fixturesPath = _path.default.join(__dirname, "..", "__fixtures__");
|
|
16
|
+
describe("filterInternalDependencies() for yarn", ()=>{
|
|
17
|
+
it("only lists internal dependencies", async ()=>{
|
|
18
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInYarnFixture)("monorepo", _resolveInternalDependencies.filterInternalDependencies);
|
|
19
|
+
expect(results).toEqual([
|
|
20
|
+
"package-a"
|
|
21
|
+
]);
|
|
16
22
|
});
|
|
17
|
-
it("lists no internal packages if there are no workspaces", async ()
|
|
18
|
-
const results = await (0,
|
|
23
|
+
it("lists no internal packages if there are no workspaces", async ()=>{
|
|
24
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInYarnFixture)("basic", _resolveInternalDependencies.filterInternalDependencies);
|
|
19
25
|
expect(results).toEqual([]);
|
|
20
26
|
});
|
|
21
27
|
});
|
|
22
|
-
describe("resolveInternalDependencies() for yarn", ()
|
|
23
|
-
it("adds internal dependency names to the processedPackages list", async ()
|
|
24
|
-
const monorepo = new
|
|
25
|
-
await monorepo.init(
|
|
28
|
+
describe("resolveInternalDependencies() for yarn", ()=>{
|
|
29
|
+
it("adds internal dependency names to the processedPackages list", async ()=>{
|
|
30
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
31
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo"));
|
|
26
32
|
const packageRoot = monorepo.root;
|
|
27
|
-
const workspaces = (0,
|
|
28
|
-
const dependencies = {
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
const workspaces = (0, _workspaceTools.getYarnWorkspaces)(packageRoot);
|
|
34
|
+
const dependencies = {
|
|
35
|
+
"package-a": "1.0.0",
|
|
36
|
+
foo: "1.0.0"
|
|
37
|
+
};
|
|
38
|
+
const resolvedDependencies = (0, _resolveInternalDependencies.resolveInternalDependencies)(dependencies, workspaces);
|
|
39
|
+
expect(resolvedDependencies).toEqual([
|
|
40
|
+
"package-a"
|
|
41
|
+
]);
|
|
31
42
|
await monorepo.cleanup();
|
|
32
43
|
});
|
|
33
44
|
});
|
|
34
|
-
describe("filterInternalDependencies() for pnpm", ()
|
|
35
|
-
it("only lists internal dependencies", async ()
|
|
36
|
-
const results = await (0,
|
|
37
|
-
expect(results).toEqual([
|
|
45
|
+
describe("filterInternalDependencies() for pnpm", ()=>{
|
|
46
|
+
it("only lists internal dependencies", async ()=>{
|
|
47
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInPnpmFixture)("monorepo-pnpm", _resolveInternalDependencies.filterInternalDependencies);
|
|
48
|
+
expect(results).toEqual([
|
|
49
|
+
"package-a"
|
|
50
|
+
]);
|
|
38
51
|
});
|
|
39
|
-
it("lists no internal packages if there are no workspaces", async ()
|
|
40
|
-
const results = await (0,
|
|
52
|
+
it("lists no internal packages if there are no workspaces", async ()=>{
|
|
53
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInPnpmFixture)("basic", _resolveInternalDependencies.filterInternalDependencies);
|
|
41
54
|
expect(results).toEqual([]);
|
|
42
55
|
});
|
|
43
56
|
});
|
|
44
|
-
describe("resolveInternalDependencies() for pnpm", ()
|
|
45
|
-
it("adds internal dependency names to the processedPackages list", async ()
|
|
46
|
-
const monorepo = new
|
|
47
|
-
await monorepo.init(
|
|
57
|
+
describe("resolveInternalDependencies() for pnpm", ()=>{
|
|
58
|
+
it("adds internal dependency names to the processedPackages list", async ()=>{
|
|
59
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
60
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo-pnpm"));
|
|
48
61
|
const packageRoot = monorepo.root;
|
|
49
|
-
const workspaces = (0,
|
|
50
|
-
const dependencies = {
|
|
51
|
-
|
|
52
|
-
|
|
62
|
+
const workspaces = (0, _workspaceTools.getPnpmWorkspaces)(packageRoot);
|
|
63
|
+
const dependencies = {
|
|
64
|
+
"package-a": "1.0.0",
|
|
65
|
+
foo: "1.0.0"
|
|
66
|
+
};
|
|
67
|
+
const resolvedDependencies = (0, _resolveInternalDependencies.resolveInternalDependencies)(dependencies, workspaces);
|
|
68
|
+
expect(resolvedDependencies).toEqual([
|
|
69
|
+
"package-a"
|
|
70
|
+
]);
|
|
53
71
|
await monorepo.cleanup();
|
|
54
72
|
});
|
|
55
73
|
});
|
|
56
|
-
describe("filterInternalDependencies() for rush+pnpm", ()
|
|
57
|
-
it("only lists internal dependencies", async ()
|
|
58
|
-
const results = await (0,
|
|
59
|
-
expect(results).toEqual([
|
|
74
|
+
describe("filterInternalDependencies() for rush+pnpm", ()=>{
|
|
75
|
+
it("only lists internal dependencies", async ()=>{
|
|
76
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInRushFixture)("monorepo-rush-pnpm", _resolveInternalDependencies.filterInternalDependencies);
|
|
77
|
+
expect(results).toEqual([
|
|
78
|
+
"package-a"
|
|
79
|
+
]);
|
|
60
80
|
});
|
|
61
|
-
it("lists no internal packages if there are no workspaces", async ()
|
|
62
|
-
const results = await (0,
|
|
81
|
+
it("lists no internal packages if there are no workspaces", async ()=>{
|
|
82
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInRushFixture)("basic", _resolveInternalDependencies.filterInternalDependencies);
|
|
63
83
|
expect(results).toEqual([]);
|
|
64
84
|
});
|
|
65
85
|
});
|
|
66
|
-
describe("resolveInternalDependencies() for rush+pnpm", ()
|
|
67
|
-
it("adds internal dependency names to the processedPackages list", async ()
|
|
68
|
-
const monorepo = new
|
|
69
|
-
await monorepo.init(
|
|
86
|
+
describe("resolveInternalDependencies() for rush+pnpm", ()=>{
|
|
87
|
+
it("adds internal dependency names to the processedPackages list", async ()=>{
|
|
88
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
89
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo-rush-pnpm"));
|
|
70
90
|
const packageRoot = monorepo.root;
|
|
71
|
-
const workspaces = (0,
|
|
72
|
-
const dependencies = {
|
|
73
|
-
|
|
74
|
-
|
|
91
|
+
const workspaces = (0, _workspaceTools.getRushWorkspaces)(packageRoot);
|
|
92
|
+
const dependencies = {
|
|
93
|
+
"package-a": "1.0.0",
|
|
94
|
+
foo: "1.0.0"
|
|
95
|
+
};
|
|
96
|
+
const resolvedDependencies = (0, _resolveInternalDependencies.resolveInternalDependencies)(dependencies, workspaces);
|
|
97
|
+
expect(resolvedDependencies).toEqual([
|
|
98
|
+
"package-a"
|
|
99
|
+
]);
|
|
75
100
|
await monorepo.cleanup();
|
|
76
101
|
});
|
|
77
102
|
});
|
|
78
|
-
describe("filterInternalDependencies() for rush+yarn", ()
|
|
79
|
-
it("only lists internal dependencies", async ()
|
|
80
|
-
const results = await (0,
|
|
81
|
-
expect(results).toEqual([
|
|
103
|
+
describe("filterInternalDependencies() for rush+yarn", ()=>{
|
|
104
|
+
it("only lists internal dependencies", async ()=>{
|
|
105
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInRushFixture)("monorepo-rush-yarn", _resolveInternalDependencies.filterInternalDependencies);
|
|
106
|
+
expect(results).toEqual([
|
|
107
|
+
"package-a"
|
|
108
|
+
]);
|
|
82
109
|
});
|
|
83
|
-
it("lists no internal packages if there are no workspaces", async ()
|
|
84
|
-
const results = await (0,
|
|
110
|
+
it("lists no internal packages if there are no workspaces", async ()=>{
|
|
111
|
+
const results = await (0, _resolveDependenciesHelper.filterDependenciesInRushFixture)("basic", _resolveInternalDependencies.filterInternalDependencies);
|
|
85
112
|
expect(results).toEqual([]);
|
|
86
113
|
});
|
|
87
114
|
});
|
|
88
|
-
describe("resolveInternalDependencies() for rush+yarn", ()
|
|
89
|
-
it("adds internal dependency names to the processedPackages list", async ()
|
|
90
|
-
const monorepo = new
|
|
91
|
-
await monorepo.init(
|
|
115
|
+
describe("resolveInternalDependencies() for rush+yarn", ()=>{
|
|
116
|
+
it("adds internal dependency names to the processedPackages list", async ()=>{
|
|
117
|
+
const monorepo = new _monorepoFixture.Monorepo("monorepo");
|
|
118
|
+
await monorepo.init(_path.default.join(fixturesPath, "monorepo-rush-yarn"));
|
|
92
119
|
const packageRoot = monorepo.root;
|
|
93
|
-
const workspaces = (0,
|
|
94
|
-
const dependencies = {
|
|
95
|
-
|
|
96
|
-
|
|
120
|
+
const workspaces = (0, _workspaceTools.getRushWorkspaces)(packageRoot);
|
|
121
|
+
const dependencies = {
|
|
122
|
+
"package-a": "1.0.0",
|
|
123
|
+
foo: "1.0.0"
|
|
124
|
+
};
|
|
125
|
+
const resolvedDependencies = (0, _resolveInternalDependencies.resolveInternalDependencies)(dependencies, workspaces);
|
|
126
|
+
expect(resolvedDependencies).toEqual([
|
|
127
|
+
"package-a"
|
|
128
|
+
]);
|
|
97
129
|
await monorepo.cleanup();
|
|
98
130
|
});
|
|
99
131
|
});
|
|
100
|
-
//# sourceMappingURL=resolveInternalDependencies.test.js.map
|
|
@@ -1,41 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createPackageHashes", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>createPackageHashes
|
|
8
|
+
});
|
|
9
|
+
const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
10
|
+
function _interopRequireDefault(obj) {
|
|
11
|
+
return obj && obj.__esModule ? obj : {
|
|
12
|
+
default: obj
|
|
13
|
+
};
|
|
14
|
+
}
|
|
8
15
|
function createPackageHashes(root, workspaceInfo, repoHashes) {
|
|
9
16
|
const pathTree = {};
|
|
10
17
|
// Generate path tree of all packages in workspace (scale: ~2000 * ~3)
|
|
11
|
-
for (const workspace of workspaceInfo)
|
|
12
|
-
const pathParts =
|
|
18
|
+
for (const workspace of workspaceInfo){
|
|
19
|
+
const pathParts = _path.default.relative(root, workspace.path).split(/[\\/]/);
|
|
13
20
|
let currentNode = pathTree;
|
|
14
|
-
for (const part of pathParts)
|
|
21
|
+
for (const part of pathParts){
|
|
15
22
|
currentNode[part] = currentNode[part] || {};
|
|
16
23
|
currentNode = currentNode[part];
|
|
17
24
|
}
|
|
18
25
|
}
|
|
19
26
|
// key: path/to/package (packageRoot), value: array of a tuple of [file, hash]
|
|
20
27
|
const packageHashes = {};
|
|
21
|
-
for (const [entry, value] of Object.entries(repoHashes))
|
|
22
|
-
const
|
|
28
|
+
for (const [entry, value] of Object.entries(repoHashes)){
|
|
29
|
+
const pathParts1 = entry.split(/[\\/]/);
|
|
23
30
|
let node = pathTree;
|
|
24
31
|
const packagePathParts = [];
|
|
25
|
-
for (const
|
|
26
|
-
if (node[
|
|
27
|
-
node = node[
|
|
28
|
-
packagePathParts.push(
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
32
|
+
for (const part1 of pathParts1){
|
|
33
|
+
if (node[part1]) {
|
|
34
|
+
node = node[part1];
|
|
35
|
+
packagePathParts.push(part1);
|
|
36
|
+
} else {
|
|
31
37
|
break;
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
40
|
const packageRoot = packagePathParts.join("/");
|
|
35
41
|
packageHashes[packageRoot] = packageHashes[packageRoot] || [];
|
|
36
|
-
packageHashes[packageRoot].push([
|
|
42
|
+
packageHashes[packageRoot].push([
|
|
43
|
+
entry,
|
|
44
|
+
value
|
|
45
|
+
]);
|
|
37
46
|
}
|
|
38
47
|
return packageHashes;
|
|
39
48
|
}
|
|
40
|
-
exports.createPackageHashes = createPackageHashes;
|
|
41
|
-
//# sourceMappingURL=createPackageHashes.js.map
|