@docusaurus/utils 4.0.0-canary-6885 → 4.0.0-canary-6888
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/lib/dataFileUtils.d.ts.map +1 -1
- package/lib/dataFileUtils.js +4 -3
- package/lib/dataFileUtils.js.map +1 -1
- package/lib/emitUtils.d.ts.map +1 -1
- package/lib/emitUtils.js +12 -7
- package/lib/emitUtils.js.map +1 -1
- package/lib/vcs/gitUtils.d.ts.map +1 -1
- package/lib/vcs/gitUtils.js +6 -5
- package/lib/vcs/gitUtils.js.map +1 -1
- package/package.json +5 -5
- package/src/dataFileUtils.ts +3 -2
- package/src/emitUtils.ts +18 -5
- package/src/vcs/gitUtils.ts +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataFileUtils.d.ts","sourceRoot":"","sources":["../src/dataFileUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"dataFileUtils.d.ts","sourceRoot":"","sources":["../src/dataFileUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAElD,KAAK,cAAc,GAAG;IACpB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,EACpC,QAAQ,EACR,YAAY,GACb,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS9C;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAe3E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,CAIvE;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EAAE,EACrB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAI7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EAAE,EACrB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
package/lib/dataFileUtils.js
CHANGED
|
@@ -12,10 +12,11 @@ exports.getContentPathList = getContentPathList;
|
|
|
12
12
|
exports.findFolderContainingFile = findFolderContainingFile;
|
|
13
13
|
exports.getFolderContainingFile = getFolderContainingFile;
|
|
14
14
|
const tslib_1 = require("tslib");
|
|
15
|
-
const
|
|
15
|
+
const promises_1 = tslib_1.__importDefault(require("node:fs/promises"));
|
|
16
16
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
17
17
|
const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
|
|
18
18
|
const Yaml = tslib_1.__importStar(require("js-yaml"));
|
|
19
|
+
const fs_1 = require("@docusaurus/fs");
|
|
19
20
|
const index_1 = require("./index");
|
|
20
21
|
/**
|
|
21
22
|
* Looks for a data file in the potential content paths; loads a localized data
|
|
@@ -45,7 +46,7 @@ async function readDataFile(params) {
|
|
|
45
46
|
return undefined;
|
|
46
47
|
}
|
|
47
48
|
try {
|
|
48
|
-
const contentString = await
|
|
49
|
+
const contentString = await promises_1.default.readFile(filePath, { encoding: 'utf8' });
|
|
49
50
|
return Yaml.load(contentString);
|
|
50
51
|
}
|
|
51
52
|
catch (err) {
|
|
@@ -68,7 +69,7 @@ function getContentPathList(contentPaths) {
|
|
|
68
69
|
* none is found.
|
|
69
70
|
*/
|
|
70
71
|
async function findFolderContainingFile(folderPaths, relativeFilePath) {
|
|
71
|
-
return (0, index_1.findAsyncSequential)(folderPaths, (folderPath) =>
|
|
72
|
+
return (0, index_1.findAsyncSequential)(folderPaths, (folderPath) => (0, fs_1.pathExists)(node_path_1.default.join(folderPath, relativeFilePath)));
|
|
72
73
|
}
|
|
73
74
|
/**
|
|
74
75
|
* Fail-fast alternative to `findFolderContainingFile`.
|
package/lib/dataFileUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataFileUtils.js","sourceRoot":"","sources":["../src/dataFileUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"dataFileUtils.js","sourceRoot":"","sources":["../src/dataFileUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;AAEH,wEAAkC;AAClC,kEAA6B;AAC7B,wEAAwC;AACxC,MAAY,IAAI,4CAAgB;AAChC,uCAA0C;AAC1C,mCAA4C;AAa5C;;;;;GAKG;AACI,KAAK,0BAA0B,EACpC,QAAQ,EACR,YAAY,GACG;IACf,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAChD,kBAAkB,CAAC,YAAY,CAAC,EAChC,QAAQ,CACT,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,mBAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,uBAAuB,MAAsB;IACvD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,gBAAM,CAAC,WAAW,CAAA,oBAAoB,mBAAI,CAAC,QAAQ,CAC7D,OAAO,CAAC,GAAG,EAAE,EACb,QAAQ,CACT,qCAAqC,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,4BAAmC,YAA0B;IAC3D,OAAO,CAAC,YAAY,CAAC,oBAAoB,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CACzE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CACvB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,mCACV,WAAqB,EACrB,gBAAwB;IAExB,OAAO,IAAA,2BAAmB,EAAC,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE,CACrD,IAAA,eAAU,EAAC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,kCACV,WAAqB,EACrB,gBAAwB;IAExB,MAAM,eAAe,GAAG,MAAM,wBAAwB,CACpD,WAAW,EACX,gBAAgB,CACjB,CAAC;IACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,SAAS,gBAAgB;IAC3B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACzB,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
package/lib/emitUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitUtils.d.ts","sourceRoot":"","sources":["../src/emitUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"emitUtils.d.ts","sourceRoot":"","sources":["../src/emitUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAC5B,iBAAiB,EAAE,MAAM,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAA+C,GACzD,OAAO,CAAC,IAAI,CAAC,CAKf;AAyCD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,GAAG,SAAS,GACjC,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|
package/lib/emitUtils.js
CHANGED
|
@@ -10,8 +10,9 @@ exports.generate = generate;
|
|
|
10
10
|
exports.readOutputHTMLFile = readOutputHTMLFile;
|
|
11
11
|
const tslib_1 = require("tslib");
|
|
12
12
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
13
|
-
const
|
|
13
|
+
const promises_1 = tslib_1.__importDefault(require("node:fs/promises"));
|
|
14
14
|
const node_crypto_1 = require("node:crypto");
|
|
15
|
+
const fs_1 = require("@docusaurus/fs");
|
|
15
16
|
const jsUtils_1 = require("./jsUtils");
|
|
16
17
|
const fileHash = new Map();
|
|
17
18
|
const hashContent = (content) => {
|
|
@@ -29,9 +30,13 @@ const hashContent = (content) => {
|
|
|
29
30
|
* force-rewritten, skipping cache.
|
|
30
31
|
*/
|
|
31
32
|
async function generate(generatedFilesDir, file, content, skipCache = process.env.NODE_ENV === 'production') {
|
|
33
|
+
// Plugins can generate thousands of data files concurrently
|
|
34
|
+
return (0, fs_1.queueFileOperation)(() => doGenerate(generatedFilesDir, file, content, skipCache));
|
|
35
|
+
}
|
|
36
|
+
async function doGenerate(generatedFilesDir, file, content, skipCache) {
|
|
32
37
|
const filepath = node_path_1.default.resolve(generatedFilesDir, file);
|
|
33
38
|
if (skipCache) {
|
|
34
|
-
await
|
|
39
|
+
await (0, fs_1.outputFile)(filepath, content);
|
|
35
40
|
// Cache still needs to be reset, otherwise, writing "A", "B", and "A" where
|
|
36
41
|
// "B" skips cache will cause the last "A" not be able to overwrite as the
|
|
37
42
|
// first "A" remains in cache. But if the file never existed in cache, no
|
|
@@ -45,14 +50,14 @@ async function generate(generatedFilesDir, file, content, skipCache = process.en
|
|
|
45
50
|
// If file already exists but it's not in runtime cache yet, we try to
|
|
46
51
|
// calculate the content hash and then compare. This is to avoid unnecessary
|
|
47
52
|
// overwriting and we can reuse old file.
|
|
48
|
-
if (!lastHash && (await
|
|
49
|
-
const lastContent = await
|
|
53
|
+
if (!lastHash && (await (0, fs_1.pathExists)(filepath))) {
|
|
54
|
+
const lastContent = await promises_1.default.readFile(filepath, 'utf8');
|
|
50
55
|
lastHash = hashContent(lastContent);
|
|
51
56
|
fileHash.set(filepath, lastHash);
|
|
52
57
|
}
|
|
53
58
|
const currentHash = hashContent(content);
|
|
54
59
|
if (lastHash !== currentHash) {
|
|
55
|
-
await
|
|
60
|
+
await (0, fs_1.outputFile)(filepath, content);
|
|
56
61
|
fileHash.set(filepath, currentHash);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
@@ -78,10 +83,10 @@ async function readOutputHTMLFile(permalink, outDir, trailingSlash) {
|
|
|
78
83
|
trailingSlash !== false && withTrailingSlashPath,
|
|
79
84
|
trailingSlash !== true && withoutTrailingSlashPath,
|
|
80
85
|
].filter((p) => Boolean(p));
|
|
81
|
-
const HTMLPath = await (0, jsUtils_1.findAsyncSequential)(possibleHtmlPaths,
|
|
86
|
+
const HTMLPath = await (0, jsUtils_1.findAsyncSequential)(possibleHtmlPaths, fs_1.pathExists);
|
|
82
87
|
if (!HTMLPath) {
|
|
83
88
|
throw new Error(`Expected output HTML file to be found at ${withTrailingSlashPath} for permalink ${permalink}.`);
|
|
84
89
|
}
|
|
85
|
-
return
|
|
90
|
+
return promises_1.default.readFile(HTMLPath);
|
|
86
91
|
}
|
|
87
92
|
//# sourceMappingURL=emitUtils.js.map
|
package/lib/emitUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitUtils.js","sourceRoot":"","sources":["../src/emitUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,kEAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"emitUtils.js","sourceRoot":"","sources":["../src/emitUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../../src/vcs/gitUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../../src/vcs/gitUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkDH,uEAAuE;AACvE,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAEjD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB;AACrC,iCAAiC;AACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ;;;OAGG;IACH,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,uEAAuE;IACvE,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB,GACA,OAAO,CAAC;IACT,4BAA4B;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AACH;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB;AACrC,iCAAiC;AACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IACJ;;;OAGG;IACH,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,aAAa,EAAE,IAAI,CAAC;CACrB,GACA,OAAO,CAAC;IACT,4BAA4B;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAwFH,KAAK,aAAa,GAAG;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AA2CzD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAE/B;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAE/B;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAavE;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBjE;AAKD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BxB;AAGD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoCzE;AAGD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBvE;AAGD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,aAAa,CAAC;CAC3B,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAKtD,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,CAAC,CAwFzB"}
|
package/lib/vcs/gitUtils.js
CHANGED
|
@@ -18,12 +18,13 @@ exports.getGitAllRepoRoots = getGitAllRepoRoots;
|
|
|
18
18
|
exports.getGitRepositoryFilesInfo = getGitRepositoryFilesInfo;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
21
|
-
const
|
|
21
|
+
const promises_1 = tslib_1.__importDefault(require("node:fs/promises"));
|
|
22
22
|
const node_os_1 = tslib_1.__importDefault(require("node:os"));
|
|
23
23
|
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
24
24
|
const execa_1 = require("execa");
|
|
25
25
|
const p_queue_1 = tslib_1.__importDefault(require("p-queue"));
|
|
26
26
|
const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
|
|
27
|
+
const fs_1 = require("@docusaurus/fs");
|
|
27
28
|
// Quite high/conservative concurrency value (it was previously "Infinity")
|
|
28
29
|
// See https://github.com/facebook/docusaurus/pull/10915
|
|
29
30
|
const DefaultGitCommandConcurrency = node_os_1.default.availableParallelism() * 4;
|
|
@@ -64,7 +65,7 @@ async function getFileCommitDate(file, { age = 'oldest', includeAuthor = false,
|
|
|
64
65
|
if (!hasGit()) {
|
|
65
66
|
throw new GitNotFoundError(`Failed to retrieve git history for "${file}" because git is not installed.`);
|
|
66
67
|
}
|
|
67
|
-
if (!(await
|
|
68
|
+
if (!(await (0, fs_1.pathExists)(file))) {
|
|
68
69
|
throw new Error(`Failed to retrieve git history for "${file}" because the file does not exist.`);
|
|
69
70
|
}
|
|
70
71
|
// We add a "RESULT:" prefix to make parsing easier
|
|
@@ -169,7 +170,7 @@ async function getGitRepoRoot(cwd) {
|
|
|
169
170
|
Failure while running ${logger_1.default.code('git rev-parse --show-toplevel')} from cwd=${logger_1.default.path(cwd)}
|
|
170
171
|
The command executed throws an error: ${error.message}`, { cause: error });
|
|
171
172
|
});
|
|
172
|
-
return
|
|
173
|
+
return promises_1.default.realpath(result.stdout.trim());
|
|
173
174
|
}
|
|
174
175
|
// A Git "superproject" is a Git repository that contains submodules
|
|
175
176
|
// See https://git-scm.com/docs/git-rev-parse#Documentation/git-rev-parse.txt---show-superproject-working-tree
|
|
@@ -187,7 +188,7 @@ The command executed throws an error: ${error.message}`, { cause: error });
|
|
|
187
188
|
// this command only works when inside submodules
|
|
188
189
|
// otherwise it doesn't return anything when we are inside the main repo
|
|
189
190
|
if (output) {
|
|
190
|
-
return
|
|
191
|
+
return promises_1.default.realpath(output);
|
|
191
192
|
}
|
|
192
193
|
return getGitRepoRoot(cwd);
|
|
193
194
|
}
|
|
@@ -228,7 +229,7 @@ async function getGitAllRepoRoots(cwd) {
|
|
|
228
229
|
return [];
|
|
229
230
|
}
|
|
230
231
|
let submodulePaths = await getGitSubmodulePaths(superProjectRoot);
|
|
231
|
-
submodulePaths = await Promise.all(submodulePaths.map((submodulePath) =>
|
|
232
|
+
submodulePaths = await Promise.all(submodulePaths.map((submodulePath) => promises_1.default.realpath(node_path_1.default.resolve(superProjectRoot, submodulePath))));
|
|
232
233
|
return [superProjectRoot, ...submodulePaths];
|
|
233
234
|
}
|
|
234
235
|
catch (error) {
|
package/lib/vcs/gitUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../../src/vcs/gitUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;AAEH,kEAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../../src/vcs/gitUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/utils",
|
|
3
|
-
"version": "4.0.0-canary-
|
|
3
|
+
"version": "4.0.0-canary-6888",
|
|
4
4
|
"description": "Node utility functions for Docusaurus packages.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@11ty/gray-matter": "^3.0.0",
|
|
22
|
-
"@docusaurus/
|
|
23
|
-
"@docusaurus/
|
|
22
|
+
"@docusaurus/fs": "4.0.0-canary-6888",
|
|
23
|
+
"@docusaurus/logger": "4.0.0-canary-6888",
|
|
24
|
+
"@docusaurus/types": "4.0.0-canary-6888",
|
|
24
25
|
"execa": "^10.0.1",
|
|
25
26
|
"file-loader": "^6.2.0",
|
|
26
|
-
"fs-extra": "^11.4.0",
|
|
27
27
|
"github-slugger": "^2.0.0",
|
|
28
28
|
"jiti": "^2.7.0",
|
|
29
29
|
"js-yaml": "^5.4.1",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"@types/react-dom": "^19.3.0",
|
|
43
43
|
"dedent": "^1.7.2"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "5019a662590dcb2722926890c1ade27194bc3b70"
|
|
46
46
|
}
|
package/src/dataFileUtils.ts
CHANGED
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import fs from 'fs
|
|
8
|
+
import fs from 'node:fs/promises';
|
|
9
9
|
import path from 'node:path';
|
|
10
10
|
import logger from '@docusaurus/logger';
|
|
11
11
|
import * as Yaml from 'js-yaml';
|
|
12
|
+
import {pathExists} from '@docusaurus/fs';
|
|
12
13
|
import {findAsyncSequential} from './index';
|
|
13
14
|
import type {ContentPaths} from './markdownLinks';
|
|
14
15
|
|
|
@@ -90,7 +91,7 @@ export async function findFolderContainingFile(
|
|
|
90
91
|
relativeFilePath: string,
|
|
91
92
|
): Promise<string | undefined> {
|
|
92
93
|
return findAsyncSequential(folderPaths, (folderPath) =>
|
|
93
|
-
|
|
94
|
+
pathExists(path.join(folderPath, relativeFilePath)),
|
|
94
95
|
);
|
|
95
96
|
}
|
|
96
97
|
|
package/src/emitUtils.ts
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import path from 'node:path';
|
|
9
|
-
import fs from 'fs
|
|
9
|
+
import fs from 'node:fs/promises';
|
|
10
10
|
import {hash} from 'node:crypto';
|
|
11
|
+
import {pathExists, outputFile, queueFileOperation} from '@docusaurus/fs';
|
|
11
12
|
import {findAsyncSequential} from './jsUtils';
|
|
12
13
|
|
|
13
14
|
const fileHash = new Map<string, string>();
|
|
@@ -32,11 +33,23 @@ export async function generate(
|
|
|
32
33
|
file: string,
|
|
33
34
|
content: string,
|
|
34
35
|
skipCache: boolean = process.env.NODE_ENV === 'production',
|
|
36
|
+
): Promise<void> {
|
|
37
|
+
// Plugins can generate thousands of data files concurrently
|
|
38
|
+
return queueFileOperation(() =>
|
|
39
|
+
doGenerate(generatedFilesDir, file, content, skipCache),
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async function doGenerate(
|
|
44
|
+
generatedFilesDir: string,
|
|
45
|
+
file: string,
|
|
46
|
+
content: string,
|
|
47
|
+
skipCache: boolean,
|
|
35
48
|
): Promise<void> {
|
|
36
49
|
const filepath = path.resolve(generatedFilesDir, file);
|
|
37
50
|
|
|
38
51
|
if (skipCache) {
|
|
39
|
-
await
|
|
52
|
+
await outputFile(filepath, content);
|
|
40
53
|
// Cache still needs to be reset, otherwise, writing "A", "B", and "A" where
|
|
41
54
|
// "B" skips cache will cause the last "A" not be able to overwrite as the
|
|
42
55
|
// first "A" remains in cache. But if the file never existed in cache, no
|
|
@@ -52,7 +65,7 @@ export async function generate(
|
|
|
52
65
|
// If file already exists but it's not in runtime cache yet, we try to
|
|
53
66
|
// calculate the content hash and then compare. This is to avoid unnecessary
|
|
54
67
|
// overwriting and we can reuse old file.
|
|
55
|
-
if (!lastHash && (await
|
|
68
|
+
if (!lastHash && (await pathExists(filepath))) {
|
|
56
69
|
const lastContent = await fs.readFile(filepath, 'utf8');
|
|
57
70
|
lastHash = hashContent(lastContent);
|
|
58
71
|
fileHash.set(filepath, lastHash);
|
|
@@ -61,7 +74,7 @@ export async function generate(
|
|
|
61
74
|
const currentHash = hashContent(content);
|
|
62
75
|
|
|
63
76
|
if (lastHash !== currentHash) {
|
|
64
|
-
await
|
|
77
|
+
await outputFile(filepath, content);
|
|
65
78
|
fileHash.set(filepath, currentHash);
|
|
66
79
|
}
|
|
67
80
|
}
|
|
@@ -94,7 +107,7 @@ export async function readOutputHTMLFile(
|
|
|
94
107
|
trailingSlash !== true && withoutTrailingSlashPath,
|
|
95
108
|
].filter((p): p is string => Boolean(p));
|
|
96
109
|
|
|
97
|
-
const HTMLPath = await findAsyncSequential(possibleHtmlPaths,
|
|
110
|
+
const HTMLPath = await findAsyncSequential(possibleHtmlPaths, pathExists);
|
|
98
111
|
|
|
99
112
|
if (!HTMLPath) {
|
|
100
113
|
throw new Error(
|
package/src/vcs/gitUtils.ts
CHANGED
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import path from 'node:path';
|
|
9
|
-
import fs from 'fs
|
|
9
|
+
import fs from 'node:fs/promises';
|
|
10
10
|
import os from 'node:os';
|
|
11
11
|
import _ from 'lodash';
|
|
12
12
|
import {execa, execaSync} from 'execa';
|
|
13
13
|
import PQueue from 'p-queue';
|
|
14
14
|
import logger from '@docusaurus/logger';
|
|
15
|
+
import {pathExists} from '@docusaurus/fs';
|
|
15
16
|
|
|
16
17
|
// Quite high/conservative concurrency value (it was previously "Infinity")
|
|
17
18
|
// See https://github.com/facebook/docusaurus/pull/10915
|
|
@@ -133,7 +134,7 @@ export async function getFileCommitDate(
|
|
|
133
134
|
);
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
if (!(await
|
|
137
|
+
if (!(await pathExists(file))) {
|
|
137
138
|
throw new Error(
|
|
138
139
|
`Failed to retrieve git history for "${file}" because the file does not exist.`,
|
|
139
140
|
);
|
|
@@ -284,7 +285,7 @@ The command executed throws an error: ${error.message}`,
|
|
|
284
285
|
);
|
|
285
286
|
});
|
|
286
287
|
|
|
287
|
-
return fs.realpath
|
|
288
|
+
return fs.realpath(result.stdout.trim());
|
|
288
289
|
}
|
|
289
290
|
|
|
290
291
|
// A Git "superproject" is a Git repository that contains submodules
|
|
@@ -315,7 +316,7 @@ The command executed throws an error: ${error.message}`,
|
|
|
315
316
|
// this command only works when inside submodules
|
|
316
317
|
// otherwise it doesn't return anything when we are inside the main repo
|
|
317
318
|
if (output) {
|
|
318
|
-
return fs.realpath
|
|
319
|
+
return fs.realpath(output);
|
|
319
320
|
}
|
|
320
321
|
return getGitRepoRoot(cwd);
|
|
321
322
|
}
|
|
@@ -369,7 +370,7 @@ export async function getGitAllRepoRoots(cwd: string): Promise<string[]> {
|
|
|
369
370
|
let submodulePaths = await getGitSubmodulePaths(superProjectRoot);
|
|
370
371
|
submodulePaths = await Promise.all(
|
|
371
372
|
submodulePaths.map((submodulePath) =>
|
|
372
|
-
fs.realpath
|
|
373
|
+
fs.realpath(path.resolve(superProjectRoot, submodulePath)),
|
|
373
374
|
),
|
|
374
375
|
);
|
|
375
376
|
return [superProjectRoot, ...submodulePaths];
|