@nrwl/workspace 13.4.4 → 13.4.5-beta.4
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +5 -6
- package/src/command-line/affected.js +5 -5
- package/src/command-line/affected.js.map +1 -1
- package/src/command-line/dep-graph.js +1 -2
- package/src/command-line/dep-graph.js.map +1 -1
- package/src/command-line/format.js +4 -3
- package/src/command-line/format.js.map +1 -1
- package/src/command-line/reset.d.ts +1 -1
- package/src/command-line/reset.js +8 -12
- package/src/command-line/reset.js.map +1 -1
- package/src/command-line/run-many.js +2 -2
- package/src/command-line/run-many.js.map +1 -1
- package/src/command-line/run-one.js +2 -2
- package/src/command-line/run-one.js.map +1 -1
- package/src/core/file-map-utils.d.ts +10 -0
- package/src/core/file-map-utils.js +94 -0
- package/src/core/file-map-utils.js.map +1 -0
- package/src/core/file-utils.d.ts +3 -14
- package/src/core/file-utils.js +16 -188
- package/src/core/file-utils.js.map +1 -1
- package/src/core/hasher/file-hasher-base.d.ts +12 -0
- package/src/core/hasher/file-hasher-base.js +66 -0
- package/src/core/hasher/file-hasher-base.js.map +1 -0
- package/src/core/hasher/file-hasher.d.ts +2 -24
- package/src/core/hasher/file-hasher.js +12 -86
- package/src/core/hasher/file-hasher.js.map +1 -1
- package/src/core/hasher/git-based-file-hasher.d.ts +10 -0
- package/src/core/hasher/git-based-file-hasher.js +50 -0
- package/src/core/hasher/git-based-file-hasher.js.map +1 -0
- package/src/core/hasher/git-hasher.d.ts +6 -24
- package/src/core/hasher/git-hasher.js +89 -147
- package/src/core/hasher/git-hasher.js.map +1 -1
- package/src/core/hasher/hasher.js +1 -0
- package/src/core/hasher/hasher.js.map +1 -1
- package/src/core/hasher/node-based-file-hasher.d.ts +7 -0
- package/src/core/hasher/node-based-file-hasher.js +78 -0
- package/src/core/hasher/node-based-file-hasher.js.map +1 -0
- package/src/core/nx-deps/nx-deps-cache.d.ts +0 -1
- package/src/core/nx-deps/nx-deps-cache.js +6 -8
- package/src/core/nx-deps/nx-deps-cache.js.map +1 -1
- package/src/core/project-graph/build-project-graph.js +3 -1
- package/src/core/project-graph/build-project-graph.js.map +1 -1
- package/src/core/project-graph/daemon/client/client.js +3 -0
- package/src/core/project-graph/daemon/client/client.js.map +1 -1
- package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js +49 -44
- package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js.map +1 -1
- package/src/core/project-graph/daemon/server/server.js +3 -1
- package/src/core/project-graph/daemon/server/server.js.map +1 -1
- package/src/core/project-graph/daemon/tmp-dir.d.ts +0 -4
- package/src/core/project-graph/daemon/tmp-dir.js +2 -45
- package/src/core/project-graph/daemon/tmp-dir.js.map +1 -1
- package/src/core/project-graph/project-graph.js +2 -0
- package/src/core/project-graph/project-graph.js.map +1 -1
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js +3 -1
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js.map +1 -1
- package/src/generators/convert-to-nx-project/schema.d.ts +1 -0
- package/src/generators/convert-to-nx-project/schema.json +5 -0
- package/src/generators/workspace/files/__workspaceFile__.json__tmpl__ +0 -5
- package/src/generators/workspace/files/package.json__tmpl__ +1 -1
- package/src/tasks-runner/cache.js +2 -3
- package/src/tasks-runner/cache.js.map +1 -1
- package/src/utilities/cache-directory.d.ts +1 -2
- package/src/utilities/cache-directory.js +3 -3
- package/src/utilities/cache-directory.js.map +1 -1
- package/src/utilities/is_ci.js +1 -0
- package/src/utilities/is_ci.js.map +1 -1
- package/src/utilities/perf-logging.js +1 -1
- package/src/utilities/perf-logging.js.map +1 -1
- package/src/utils/perf-logging.js +1 -1
- package/src/utils/perf-logging.js.map +1 -1
- package/src/utils/versions.js +1 -1
- package/src/core/hasher/spawn-process.d.ts +0 -6
- package/src/core/hasher/spawn-process.js +0 -27
- package/src/core/hasher/spawn-process.js.map +0 -1
package/src/core/file-utils.js
CHANGED
@@ -1,17 +1,14 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.normalizedProjectRoot = exports.readEnvironment = exports.
|
3
|
+
exports.normalizedProjectRoot = exports.readEnvironment = exports.workspaceLayout = exports.readNxJson = exports.readPackageJson = exports.defaultFileRead = exports.workspaceFileName = exports.readWorkspaceConfig = exports.readWorkspaceJson = exports.TEN_MEGABYTES = exports.calculateFileChanges = exports.readFileIfExisting = exports.isWholeFileChange = exports.WholeFileChange = void 0;
|
4
4
|
const workspace_1 = require("@nrwl/tao/src/shared/workspace");
|
5
5
|
const devkit_1 = require("@nrwl/devkit");
|
6
6
|
const child_process_1 = require("child_process");
|
7
7
|
const fs_1 = require("fs");
|
8
8
|
const path_1 = require("path");
|
9
|
-
const perf_hooks_1 = require("perf_hooks");
|
10
9
|
const app_root_1 = require("@nrwl/tao/src/utils/app-root");
|
11
|
-
const array_1 = require("../utilities/array");
|
12
10
|
const fileutils_1 = require("../utilities/fileutils");
|
13
11
|
const json_diff_1 = require("../utilities/json-diff");
|
14
|
-
const file_hasher_1 = require("./hasher/file-hasher");
|
15
12
|
const ignore = require('ignore');
|
16
13
|
class WholeFileChange {
|
17
14
|
constructor() {
|
@@ -23,13 +20,22 @@ function isWholeFileChange(change) {
|
|
23
20
|
return change.type === 'WholeFileChange';
|
24
21
|
}
|
25
22
|
exports.isWholeFileChange = isWholeFileChange;
|
26
|
-
function
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
function readFileIfExisting(path) {
|
24
|
+
return (0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path, 'utf-8') : '';
|
25
|
+
}
|
26
|
+
exports.readFileIfExisting = readFileIfExisting;
|
27
|
+
function getIgnoredGlobs() {
|
28
|
+
const ig = ignore();
|
29
|
+
ig.add(readFileIfExisting(`${app_root_1.appRootPath}/.gitignore`));
|
30
|
+
ig.add(readFileIfExisting(`${app_root_1.appRootPath}/.nxignore`));
|
31
|
+
return ig;
|
32
|
+
}
|
33
|
+
function calculateFileChanges(files, allWorkspaceFiles, nxArgs, readFileAtRevision = defaultReadFileAtRevision, ignore = getIgnoredGlobs()) {
|
34
|
+
files = files.filter((f) => !ignore.ignores(f));
|
30
35
|
return files.map((f) => {
|
31
36
|
const ext = (0, path_1.extname)(f);
|
32
|
-
const
|
37
|
+
const file = allWorkspaceFiles.find((fileData) => fileData.file == f);
|
38
|
+
const hash = file === null || file === void 0 ? void 0 : file.hash;
|
33
39
|
return {
|
34
40
|
file: f,
|
35
41
|
ext,
|
@@ -81,51 +87,6 @@ function defaultReadFileAtRevision(file, revision) {
|
|
81
87
|
return '';
|
82
88
|
}
|
83
89
|
}
|
84
|
-
function getFileData(filePath) {
|
85
|
-
const file = (0, path_1.relative)(app_root_1.appRootPath, filePath).split(path_1.sep).join('/');
|
86
|
-
return {
|
87
|
-
file,
|
88
|
-
hash: file_hasher_1.defaultFileHasher.hashFile(filePath),
|
89
|
-
};
|
90
|
-
}
|
91
|
-
function allFilesInDir(dirName, recurse = true, ignoredGlobs) {
|
92
|
-
const relDirName = (0, path_1.relative)(app_root_1.appRootPath, dirName);
|
93
|
-
if (relDirName && ignoredGlobs.ignores(relDirName)) {
|
94
|
-
return [];
|
95
|
-
}
|
96
|
-
let res = [];
|
97
|
-
try {
|
98
|
-
(0, fs_1.readdirSync)(dirName).forEach((c) => {
|
99
|
-
const child = (0, path_1.join)(dirName, c);
|
100
|
-
if (ignoredGlobs.ignores((0, path_1.relative)(app_root_1.appRootPath, child))) {
|
101
|
-
return;
|
102
|
-
}
|
103
|
-
try {
|
104
|
-
const s = (0, fs_1.statSync)(child);
|
105
|
-
if (!s.isDirectory()) {
|
106
|
-
// add starting with "apps/myapp/..." or "libs/mylib/..."
|
107
|
-
res.push(getFileData(child));
|
108
|
-
}
|
109
|
-
else if (s.isDirectory() && recurse) {
|
110
|
-
res = [...res, ...allFilesInDir(child, true, ignoredGlobs)];
|
111
|
-
}
|
112
|
-
}
|
113
|
-
catch (e) { }
|
114
|
-
});
|
115
|
-
}
|
116
|
-
catch (e) { }
|
117
|
-
return res;
|
118
|
-
}
|
119
|
-
function getIgnoredGlobs() {
|
120
|
-
const ig = ignore();
|
121
|
-
ig.add(readFileIfExisting(`${app_root_1.appRootPath}/.gitignore`));
|
122
|
-
ig.add(readFileIfExisting(`${app_root_1.appRootPath}/.nxignore`));
|
123
|
-
return ig;
|
124
|
-
}
|
125
|
-
function readFileIfExisting(path) {
|
126
|
-
return (0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path, 'utf-8') : '';
|
127
|
-
}
|
128
|
-
exports.readFileIfExisting = readFileIfExisting;
|
129
90
|
function readWorkspaceJson() {
|
130
91
|
return readWorkspaceConfig({
|
131
92
|
format: 'nx',
|
@@ -199,140 +160,7 @@ function workspaceLayout() {
|
|
199
160
|
};
|
200
161
|
}
|
201
162
|
exports.workspaceLayout = workspaceLayout;
|
202
|
-
|
203
|
-
function rootWorkspaceFileNames() {
|
204
|
-
return [`package.json`, workspaceFileName(), `nx.json`, `tsconfig.base.json`];
|
205
|
-
}
|
206
|
-
exports.rootWorkspaceFileNames = rootWorkspaceFileNames;
|
207
|
-
function rootWorkspaceFileData() {
|
208
|
-
return rootWorkspaceFileNames().map((f) => getFileData(`${app_root_1.appRootPath}/${f}`));
|
209
|
-
}
|
210
|
-
exports.rootWorkspaceFileData = rootWorkspaceFileData;
|
211
|
-
function readWorkspaceFiles() {
|
212
|
-
file_hasher_1.defaultFileHasher.ensureInitialized();
|
213
|
-
perf_hooks_1.performance.mark('read workspace files:start');
|
214
|
-
if (file_hasher_1.defaultFileHasher.usesGitForHashing) {
|
215
|
-
const ignoredGlobs = getIgnoredGlobs();
|
216
|
-
const r = Array.from(file_hasher_1.defaultFileHasher.workspaceFiles)
|
217
|
-
.filter((f) => !ignoredGlobs.ignores(f))
|
218
|
-
.map((f) => getFileData(`${app_root_1.appRootPath}/${f}`));
|
219
|
-
perf_hooks_1.performance.mark('read workspace files:end');
|
220
|
-
perf_hooks_1.performance.measure('read workspace files', 'read workspace files:start', 'read workspace files:end');
|
221
|
-
r.sort((x, y) => x.file.localeCompare(y.file));
|
222
|
-
return r;
|
223
|
-
}
|
224
|
-
else {
|
225
|
-
const r = [];
|
226
|
-
const ignoredGlobs = getIgnoredGlobs();
|
227
|
-
ignoredGlobs.add((0, devkit_1.stripIndents) `
|
228
|
-
node_modules
|
229
|
-
tmp
|
230
|
-
dist
|
231
|
-
build
|
232
|
-
`);
|
233
|
-
(0, array_1.appendArray)(r, allFilesInDir(app_root_1.appRootPath, true, ignoredGlobs));
|
234
|
-
perf_hooks_1.performance.mark('read workspace files:end');
|
235
|
-
perf_hooks_1.performance.measure('read workspace files', 'read workspace files:start', 'read workspace files:end');
|
236
|
-
r.sort((x, y) => x.file.localeCompare(y.file));
|
237
|
-
return r;
|
238
|
-
}
|
239
|
-
}
|
240
|
-
function sortProjects(workspaceJson) {
|
241
|
-
// Sorting here so `apps/client-e2e` comes before `apps/client` and has
|
242
|
-
// a chance to match prefix first.
|
243
|
-
return Object.keys(workspaceJson.projects).sort((a, b) => {
|
244
|
-
const projectA = workspaceJson.projects[a];
|
245
|
-
const projectB = workspaceJson.projects[b];
|
246
|
-
if (!projectA.root)
|
247
|
-
return -1;
|
248
|
-
if (!projectB.root)
|
249
|
-
return -1;
|
250
|
-
return projectA.root.length > projectB.root.length ? -1 : 1;
|
251
|
-
});
|
252
|
-
}
|
253
|
-
function createProjectFileMap(workspaceJson, allWorkspaceFiles) {
|
254
|
-
allWorkspaceFiles = allWorkspaceFiles || readWorkspaceFiles();
|
255
|
-
const projectFileMap = {};
|
256
|
-
const sortedProjects = sortProjects(workspaceJson);
|
257
|
-
const seen = new Set();
|
258
|
-
for (const projectName of sortedProjects) {
|
259
|
-
projectFileMap[projectName] = [];
|
260
|
-
}
|
261
|
-
for (const f of allWorkspaceFiles) {
|
262
|
-
if (seen.has(f.file))
|
263
|
-
continue;
|
264
|
-
seen.add(f.file);
|
265
|
-
for (const projectName of sortedProjects) {
|
266
|
-
const p = workspaceJson.projects[projectName];
|
267
|
-
if (f.file.startsWith(p.root || p.sourceRoot)) {
|
268
|
-
projectFileMap[projectName].push(f);
|
269
|
-
break;
|
270
|
-
}
|
271
|
-
}
|
272
|
-
}
|
273
|
-
return { projectFileMap, allWorkspaceFiles };
|
274
|
-
}
|
275
|
-
exports.createProjectFileMap = createProjectFileMap;
|
276
|
-
function updateProjectFileMap(workspaceJson, projectFileMap, allWorkspaceFiles, updatedFiles, deletedFiles) {
|
277
|
-
const ignore = getIgnoredGlobs();
|
278
|
-
const sortedProjects = sortProjects(workspaceJson);
|
279
|
-
for (let projectName of sortedProjects) {
|
280
|
-
if (!projectFileMap[projectName]) {
|
281
|
-
projectFileMap[projectName] = [];
|
282
|
-
}
|
283
|
-
}
|
284
|
-
for (const f of updatedFiles.keys()) {
|
285
|
-
if (ignore.ignores(f))
|
286
|
-
continue;
|
287
|
-
for (const projectName of sortedProjects) {
|
288
|
-
const p = workspaceJson.projects[projectName];
|
289
|
-
if (f.startsWith(p.root || p.sourceRoot)) {
|
290
|
-
const fileData = projectFileMap[projectName].find((t) => t.file === f);
|
291
|
-
if (fileData) {
|
292
|
-
fileData.hash = updatedFiles.get(f);
|
293
|
-
}
|
294
|
-
else {
|
295
|
-
projectFileMap[projectName].push({
|
296
|
-
file: f,
|
297
|
-
hash: updatedFiles.get(f),
|
298
|
-
});
|
299
|
-
}
|
300
|
-
break;
|
301
|
-
}
|
302
|
-
}
|
303
|
-
const fileData = allWorkspaceFiles.find((t) => t.file === f);
|
304
|
-
if (fileData) {
|
305
|
-
fileData.hash = updatedFiles.get(f);
|
306
|
-
}
|
307
|
-
else {
|
308
|
-
allWorkspaceFiles.push({
|
309
|
-
file: f,
|
310
|
-
hash: updatedFiles.get(f),
|
311
|
-
});
|
312
|
-
}
|
313
|
-
}
|
314
|
-
for (const f of deletedFiles) {
|
315
|
-
if (ignore.ignores(f))
|
316
|
-
continue;
|
317
|
-
for (const projectName of sortedProjects) {
|
318
|
-
const p = workspaceJson.projects[projectName];
|
319
|
-
if (f.startsWith(p.root || p.sourceRoot)) {
|
320
|
-
const index = projectFileMap[projectName].findIndex((t) => t.file === f);
|
321
|
-
if (index > -1) {
|
322
|
-
projectFileMap[projectName].splice(index, 1);
|
323
|
-
}
|
324
|
-
break;
|
325
|
-
}
|
326
|
-
}
|
327
|
-
const index = allWorkspaceFiles.findIndex((t) => t.file === f);
|
328
|
-
if (index > -1) {
|
329
|
-
allWorkspaceFiles.splice(index, 1);
|
330
|
-
}
|
331
|
-
}
|
332
|
-
return { projectFileMap, allWorkspaceFiles };
|
333
|
-
}
|
334
|
-
exports.updateProjectFileMap = updateProjectFileMap;
|
335
|
-
function readEnvironment(target, projects) {
|
163
|
+
function readEnvironment() {
|
336
164
|
const nxJson = readNxJson();
|
337
165
|
const workspaceJson = readWorkspaceJson();
|
338
166
|
return { nxJson, workspaceJson, workspaceResults: null };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/core/file-utils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/core/file-utils.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { FileData } from '@nrwl/tao/src/shared/project-graph';
|
2
|
+
export declare abstract class FileHasherBase {
|
3
|
+
protected fileHashes: Map<string, string>;
|
4
|
+
protected isInitialized: boolean;
|
5
|
+
clear(): void;
|
6
|
+
abstract init(): Promise<void>;
|
7
|
+
abstract hashFiles(files: string[]): Promise<Map<string, string>>;
|
8
|
+
ensureInitialized(): Promise<void>;
|
9
|
+
allFileData(): FileData[];
|
10
|
+
incrementalUpdate(updatedFiles: Map<string, string>, deletedFiles?: string[]): void;
|
11
|
+
hashFile(path: string): string;
|
12
|
+
}
|
@@ -0,0 +1,66 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FileHasherBase = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const app_root_1 = require("@nrwl/tao/src/utils/app-root");
|
6
|
+
const perf_hooks_1 = require("perf_hooks");
|
7
|
+
const hashing_impl_1 = require("./hashing-impl");
|
8
|
+
class FileHasherBase {
|
9
|
+
constructor() {
|
10
|
+
this.isInitialized = false;
|
11
|
+
}
|
12
|
+
clear() {
|
13
|
+
this.fileHashes = new Map();
|
14
|
+
this.isInitialized = false;
|
15
|
+
}
|
16
|
+
ensureInitialized() {
|
17
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
18
|
+
if (!this.isInitialized) {
|
19
|
+
yield this.init();
|
20
|
+
}
|
21
|
+
});
|
22
|
+
}
|
23
|
+
allFileData() {
|
24
|
+
const res = [];
|
25
|
+
this.fileHashes.forEach((hash, file) => {
|
26
|
+
res.push({
|
27
|
+
file,
|
28
|
+
hash,
|
29
|
+
});
|
30
|
+
});
|
31
|
+
res.sort((x, y) => x.file.localeCompare(y.file));
|
32
|
+
return res;
|
33
|
+
}
|
34
|
+
incrementalUpdate(updatedFiles, deletedFiles = []) {
|
35
|
+
perf_hooks_1.performance.mark('incremental hashing:start');
|
36
|
+
updatedFiles.forEach((hash, filename) => {
|
37
|
+
this.fileHashes.set(filename, hash);
|
38
|
+
});
|
39
|
+
for (const deletedFile of deletedFiles) {
|
40
|
+
this.fileHashes.delete(deletedFile);
|
41
|
+
}
|
42
|
+
perf_hooks_1.performance.mark('incremental hashing:end');
|
43
|
+
perf_hooks_1.performance.measure('incremental hashing', 'incremental hashing:start', 'incremental hashing:end');
|
44
|
+
}
|
45
|
+
hashFile(path) {
|
46
|
+
if (!this.fileHashes) {
|
47
|
+
throw new Error('FileHasher is invoked before being initialized');
|
48
|
+
}
|
49
|
+
const relativePath = path.startsWith(app_root_1.appRootPath)
|
50
|
+
? path.substr(app_root_1.appRootPath.length + 1)
|
51
|
+
: path;
|
52
|
+
if (this.fileHashes[relativePath]) {
|
53
|
+
return this.fileHashes[relativePath];
|
54
|
+
}
|
55
|
+
else {
|
56
|
+
try {
|
57
|
+
return hashing_impl_1.defaultHashing.hashFile(path);
|
58
|
+
}
|
59
|
+
catch (_a) {
|
60
|
+
return '';
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
exports.FileHasherBase = FileHasherBase;
|
66
|
+
//# sourceMappingURL=file-hasher-base.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"file-hasher-base.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/core/hasher/file-hasher-base.ts"],"names":[],"mappings":";;;;AAAA,2DAA2D;AAC3D,2CAAyC;AAEzC,iDAAgD;AAIhD,MAAsB,cAAc;IAApC;QAEY,kBAAa,GAAG,KAAK,CAAC;IAoElC,CAAC;IAlEC,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAMK,iBAAiB;;YACrB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;aACnB;QACH,CAAC;KAAA;IAED,WAAW;QACT,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACrC,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iBAAiB,CACf,YAAiC,EACjC,eAAyB,EAAE;QAE3B,wBAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAE9C,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACrC;QAED,wBAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,wBAAW,CAAC,OAAO,CACjB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACnE;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAW,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SACtC;aAAM;YACL,IAAI;gBACF,OAAO,6BAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACtC;YAAC,WAAM;gBACN,OAAO,EAAE,CAAC;aACX;SACF;IACH,CAAC;CACF;AAtED,wCAsEC"}
|
@@ -1,24 +1,2 @@
|
|
1
|
-
import {
|
2
|
-
export declare
|
3
|
-
private readonly hashing;
|
4
|
-
fileHashes: {
|
5
|
-
[path: string]: string;
|
6
|
-
};
|
7
|
-
workspaceFiles: Set<string>;
|
8
|
-
usesGitForHashing: boolean;
|
9
|
-
private isInitialized;
|
10
|
-
constructor(hashing: HashingImpl);
|
11
|
-
clear(): void;
|
12
|
-
/**
|
13
|
-
* For the project graph daemon server use-case we can potentially skip expensive work
|
14
|
-
* by leveraging knowledge of the uncommitted and untracked files, so the init() method
|
15
|
-
* returns a Map containing this data.
|
16
|
-
*/
|
17
|
-
init(): Map<string, string>;
|
18
|
-
incrementalUpdate(updatedFiles: Map<string, string>, deletedFiles?: string[]): void;
|
19
|
-
hashFile(path: string): string;
|
20
|
-
ensureInitialized(): void;
|
21
|
-
private applyFileHashes;
|
22
|
-
private processPath;
|
23
|
-
}
|
24
|
-
export declare const defaultFileHasher: FileHasher;
|
1
|
+
import { FileHasherBase } from './file-hasher-base';
|
2
|
+
export declare const defaultFileHasher: FileHasherBase;
|
@@ -1,93 +1,19 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.defaultFileHasher =
|
3
|
+
exports.defaultFileHasher = void 0;
|
4
|
+
const git_based_file_hasher_1 = require("./git-based-file-hasher");
|
5
|
+
const devkit_1 = require("@nrwl/devkit");
|
4
6
|
const app_root_1 = require("@nrwl/tao/src/utils/app-root");
|
5
|
-
const
|
6
|
-
const
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
this.fileHashes = {};
|
12
|
-
this.workspaceFiles = new Set();
|
13
|
-
this.usesGitForHashing = false;
|
14
|
-
this.isInitialized = false;
|
7
|
+
const node_based_file_hasher_1 = require("./node-based-file-hasher");
|
8
|
+
const fs_1 = require("fs");
|
9
|
+
function createFileHasher() {
|
10
|
+
try {
|
11
|
+
(0, fs_1.statSync)((0, devkit_1.joinPathFragments)(app_root_1.appRootPath, '.git')).isDirectory();
|
12
|
+
return new git_based_file_hasher_1.GitBasedFileHasher();
|
15
13
|
}
|
16
|
-
|
17
|
-
|
18
|
-
this.workspaceFiles = new Set();
|
19
|
-
this.usesGitForHashing = false;
|
20
|
-
this.isInitialized = false;
|
21
|
-
}
|
22
|
-
/**
|
23
|
-
* For the project graph daemon server use-case we can potentially skip expensive work
|
24
|
-
* by leveraging knowledge of the uncommitted and untracked files, so the init() method
|
25
|
-
* returns a Map containing this data.
|
26
|
-
*/
|
27
|
-
init() {
|
28
|
-
perf_hooks_1.performance.mark('init hashing:start');
|
29
|
-
this.clear();
|
30
|
-
const getFileHashesResult = (0, git_hasher_1.getFileHashes)(app_root_1.appRootPath);
|
31
|
-
this.applyFileHashes(getFileHashesResult.allFiles);
|
32
|
-
this.usesGitForHashing = Object.keys(this.fileHashes).length > 0;
|
33
|
-
this.isInitialized = true;
|
34
|
-
perf_hooks_1.performance.mark('init hashing:end');
|
35
|
-
perf_hooks_1.performance.measure('init hashing', 'init hashing:start', 'init hashing:end');
|
36
|
-
return getFileHashesResult.untrackedUncommittedFiles;
|
37
|
-
}
|
38
|
-
incrementalUpdate(updatedFiles, deletedFiles = []) {
|
39
|
-
this.ensureInitialized();
|
40
|
-
perf_hooks_1.performance.mark('incremental hashing:start');
|
41
|
-
updatedFiles.forEach((hash, filename) => {
|
42
|
-
this.fileHashes[filename] = hash;
|
43
|
-
/**
|
44
|
-
* we have to store it separately because fileHashes can be modified
|
45
|
-
* later on and can contain files that do not exist in the workspace
|
46
|
-
*/
|
47
|
-
this.workspaceFiles.add(filename);
|
48
|
-
});
|
49
|
-
for (const deletedFile of deletedFiles) {
|
50
|
-
delete this.fileHashes[deletedFile];
|
51
|
-
this.workspaceFiles.delete(deletedFile);
|
52
|
-
}
|
53
|
-
perf_hooks_1.performance.mark('incremental hashing:end');
|
54
|
-
perf_hooks_1.performance.measure('incremental hashing', 'incremental hashing:start', 'incremental hashing:end');
|
55
|
-
}
|
56
|
-
hashFile(path) {
|
57
|
-
this.ensureInitialized();
|
58
|
-
const relativePath = path.startsWith(app_root_1.appRootPath)
|
59
|
-
? path.substr(app_root_1.appRootPath.length + 1)
|
60
|
-
: path;
|
61
|
-
if (!this.fileHashes[relativePath]) {
|
62
|
-
this.fileHashes[relativePath] = this.processPath(path);
|
63
|
-
}
|
64
|
-
return this.fileHashes[relativePath];
|
65
|
-
}
|
66
|
-
ensureInitialized() {
|
67
|
-
if (!this.isInitialized) {
|
68
|
-
this.init();
|
69
|
-
}
|
70
|
-
}
|
71
|
-
applyFileHashes(allFiles) {
|
72
|
-
const sliceIndex = app_root_1.appRootPath.length + 1;
|
73
|
-
allFiles.forEach((hash, filename) => {
|
74
|
-
this.fileHashes[filename.substr(sliceIndex)] = hash;
|
75
|
-
/**
|
76
|
-
* we have to store it separately because fileHashes can be modified
|
77
|
-
* later on and can contain files that do not exist in the workspace
|
78
|
-
*/
|
79
|
-
this.workspaceFiles.add(filename.substr(sliceIndex));
|
80
|
-
});
|
81
|
-
}
|
82
|
-
processPath(path) {
|
83
|
-
try {
|
84
|
-
return this.hashing.hashFile(path);
|
85
|
-
}
|
86
|
-
catch (_a) {
|
87
|
-
return '';
|
88
|
-
}
|
14
|
+
catch (err) {
|
15
|
+
return new node_based_file_hasher_1.NodeBasedFileHasher();
|
89
16
|
}
|
90
17
|
}
|
91
|
-
exports.
|
92
|
-
exports.defaultFileHasher = new FileHasher(hashing_impl_1.defaultHashing);
|
18
|
+
exports.defaultFileHasher = createFileHasher();
|
93
19
|
//# sourceMappingURL=file-hasher.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file-hasher.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/core/hasher/file-hasher.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"file-hasher.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/core/hasher/file-hasher.ts"],"names":[],"mappings":";;;AAAA,mEAA6D;AAC7D,yCAAiD;AACjD,2DAA2D;AAC3D,qEAA+D;AAE/D,2BAA8B;AAE9B,SAAS,gBAAgB;IACvB,IAAI;QACF,IAAA,aAAQ,EAAC,IAAA,0BAAiB,EAAC,sBAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,OAAO,IAAI,0CAAkB,EAAE,CAAC;KACjC;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,IAAI,4CAAmB,EAAE,CAAC;KAClC;AACH,CAAC;AAEY,QAAA,iBAAiB,GAAG,gBAAgB,EAAE,CAAC"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { FileHasherBase } from './file-hasher-base';
|
2
|
+
export declare class GitBasedFileHasher extends FileHasherBase {
|
3
|
+
/**
|
4
|
+
* For the project graph daemon server use-case we can potentially skip expensive work
|
5
|
+
* by leveraging knowledge of the uncommitted and untracked files, so the init() method
|
6
|
+
* returns a Map containing this data.
|
7
|
+
*/
|
8
|
+
init(): Promise<void>;
|
9
|
+
hashFiles(files: string[]): Promise<Map<string, string>>;
|
10
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.GitBasedFileHasher = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const app_root_1 = require("@nrwl/tao/src/utils/app-root");
|
6
|
+
const perf_hooks_1 = require("perf_hooks");
|
7
|
+
const git_hasher_1 = require("./git-hasher");
|
8
|
+
const fs_1 = require("fs");
|
9
|
+
const file_hasher_base_1 = require("./file-hasher-base");
|
10
|
+
const ignore = require('ignore');
|
11
|
+
class GitBasedFileHasher extends file_hasher_base_1.FileHasherBase {
|
12
|
+
/**
|
13
|
+
* For the project graph daemon server use-case we can potentially skip expensive work
|
14
|
+
* by leveraging knowledge of the uncommitted and untracked files, so the init() method
|
15
|
+
* returns a Map containing this data.
|
16
|
+
*/
|
17
|
+
init() {
|
18
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
19
|
+
perf_hooks_1.performance.mark('init hashing:start');
|
20
|
+
this.clear();
|
21
|
+
const gitResult = yield (0, git_hasher_1.getFileHashes)(app_root_1.appRootPath);
|
22
|
+
const ignore = getIgnoredGlobs();
|
23
|
+
gitResult.allFiles.forEach((hash, filename) => {
|
24
|
+
if (!ignore.ignores(filename)) {
|
25
|
+
this.fileHashes.set(filename, hash);
|
26
|
+
}
|
27
|
+
});
|
28
|
+
this.isInitialized = true;
|
29
|
+
perf_hooks_1.performance.mark('init hashing:end');
|
30
|
+
perf_hooks_1.performance.measure('init hashing', 'init hashing:start', 'init hashing:end');
|
31
|
+
});
|
32
|
+
}
|
33
|
+
hashFiles(files) {
|
34
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
35
|
+
return (yield (0, git_hasher_1.getGitHashForFiles)(files, app_root_1.appRootPath)).hashes;
|
36
|
+
});
|
37
|
+
}
|
38
|
+
}
|
39
|
+
exports.GitBasedFileHasher = GitBasedFileHasher;
|
40
|
+
function getIgnoredGlobs() {
|
41
|
+
if ((0, fs_1.existsSync)(`${app_root_1.appRootPath}/.nxignore`)) {
|
42
|
+
const ig = ignore();
|
43
|
+
ig.add((0, fs_1.readFileSync)(`${app_root_1.appRootPath}/.nxignore`, 'utf-8'));
|
44
|
+
return ig;
|
45
|
+
}
|
46
|
+
else {
|
47
|
+
return { ignores: (file) => false };
|
48
|
+
}
|
49
|
+
}
|
50
|
+
//# sourceMappingURL=git-based-file-hasher.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"git-based-file-hasher.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/core/hasher/git-based-file-hasher.ts"],"names":[],"mappings":";;;;AAAA,2DAA2D;AAC3D,2CAAyC;AACzC,6CAAiE;AACjE,2BAA8C;AAC9C,yDAAoD;AAEpD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC,MAAa,kBAAmB,SAAQ,iCAAc;IACpD;;;;OAIG;IACG,IAAI;;YACR,wBAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,MAAM,SAAS,GAAG,MAAM,IAAA,0BAAa,EAAC,sBAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;YACjC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACrC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,wBAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrC,wBAAW,CAAC,OAAO,CACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,CACnB,CAAC;QACJ,CAAC;KAAA;IAEK,SAAS,CAAC,KAAe;;YAC7B,OAAO,CAAC,MAAM,IAAA,+BAAkB,EAAC,KAAK,EAAE,sBAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/D,CAAC;KAAA;CACF;AA7BD,gDA6BC;AAED,SAAS,eAAe;IACtB,IAAI,IAAA,eAAU,EAAC,GAAG,sBAAW,YAAY,CAAC,EAAE;QAC1C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,EAAE,CAAC,GAAG,CAAC,IAAA,iBAAY,EAAC,GAAG,sBAAW,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC;KACX;SAAM;QACL,OAAO,EAAE,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;KAC7C;AACH,CAAC"}
|
@@ -1,25 +1,7 @@
|
|
1
|
-
export declare function getGitHashForFiles(
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
*
|
7
|
-
* For some utilities the origin of a file hash (i.e. was it committed or not) is unimportant,
|
8
|
-
* but for other tooling like the project graph daemon server it can leverage this distinction
|
9
|
-
* when figuring out what expensive work to skip during project graph construction.
|
10
|
-
*
|
11
|
-
* We therefore return both a Map of all filenames to their hashes, as well as a Map of just
|
12
|
-
* the uncommitted/untracked filenames to hashes.
|
13
|
-
*/
|
14
|
-
export declare function getFileHashes(path: string): {
|
1
|
+
export declare function getGitHashForFiles(potentialFilesToHash: string[], path: string): Promise<{
|
2
|
+
hashes: Map<string, string>;
|
3
|
+
deleted: string[];
|
4
|
+
}>;
|
5
|
+
export declare function getFileHashes(path: string): Promise<{
|
15
6
|
allFiles: Map<string, string>;
|
16
|
-
|
17
|
-
};
|
18
|
-
/**
|
19
|
-
* This utility is used to return a Map of filenames to hashes, where those filenames come from
|
20
|
-
* git's knowledge of:
|
21
|
-
*
|
22
|
-
* - files which are untracked (newly created)
|
23
|
-
* - files which are modified in some way (but NOT deleted) and either staged or unstaged
|
24
|
-
*/
|
25
|
-
export declare function getUntrackedAndUncommittedFileHashes(path: string): Map<string, string>;
|
7
|
+
}>;
|