@docusaurus/utils 3.8.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/gitUtils.js +6 -4
- package/lib/gitUtils.js.map +1 -1
- package/lib/lastUpdateUtils.d.ts +13 -4
- package/lib/lastUpdateUtils.d.ts.map +1 -1
- package/lib/lastUpdateUtils.js +21 -4
- package/lib/lastUpdateUtils.js.map +1 -1
- package/package.json +5 -5
- package/src/gitUtils.ts +4 -4
- package/src/lastUpdateUtils.ts +33 -7
package/lib/gitUtils.js
CHANGED
|
@@ -70,10 +70,12 @@ async function getFileCommitDate(file, { age = 'oldest', includeAuthor = false,
|
|
|
70
70
|
.filter(Boolean)
|
|
71
71
|
.join(' ');
|
|
72
72
|
const command = `git -c log.showSignature=false log ${args} -- "${path_1.default.basename(file)}"`;
|
|
73
|
-
const result = (await GitCommandQueue.add(() =>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
const result = (await GitCommandQueue.add(() => {
|
|
74
|
+
return (0, execa_1.default)(command, {
|
|
75
|
+
cwd: path_1.default.dirname(file),
|
|
76
|
+
shell: true,
|
|
77
|
+
});
|
|
78
|
+
}));
|
|
77
79
|
if (result.exitCode !== 0) {
|
|
78
80
|
throw new Error(`Failed to retrieve the git history for file "${file}" with exit code ${result.exitCode}: ${result.stderr}`);
|
|
79
81
|
}
|
package/lib/gitUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../src/gitUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA6GH,8CAqFC;;AAhMD,wDAAwB;AACxB,gEAA0B;AAC1B,oDAAoB;AACpB,4DAAuB;AACvB,0DAA0B;AAC1B,8DAA6B;AAE7B,2EAA2E;AAC3E,wDAAwD;AACxD,MAAM,4BAA4B;AAChC,0EAA0E;AAC1E,CAAC,OAAO,YAAE,CAAC,oBAAoB,KAAK,UAAU;IAC5C,CAAC,CAAC,YAAE,CAAC,oBAAoB,EAAE;IAC3B,CAAC,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAE5B,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,kCAAkC;IAC7E,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAE,CAAC;IAC9D,CAAC,CAAC,SAAS,CAAC;AAEd,MAAM,qBAAqB,GACzB,wBAAwB,IAAI,wBAAwB,GAAG,CAAC;IACtD,CAAC,CAAC,wBAAwB;IAC1B,CAAC,CAAC,4BAA4B,CAAC;AAEnC,2EAA2E;AAC3E,0DAA0D;AAC1D,MAAM,eAAe,GAAG,IAAI,iBAAM,CAAC;IACjC,WAAW,EAAE,qBAAqB;CACnC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,IAAI,CAAC;QACH,OAAO,eAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,qDAAqD;AACrD,gEAAgE;AAChE,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAE3E,2DAA2D;AAC3D,MAAa,gBAAiB,SAAQ,KAAK;CAAG;AAA9C,4CAA8C;AAE9C,uEAAuE;AACvE,MAAa,mBAAoB,SAAQ,KAAK;CAAG;AAAjD,kDAAiD;AA4D1C,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,EACE,GAAG,GAAG,QAAQ,EACd,aAAa,GAAG,KAAK,GAItB;IAMD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACd,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,IAAI,iCAAiC,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,oCAAoC,CAChF,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,6DAA6D;IAC7D,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;IAErE,MAAM,IAAI,GAAG;QACX,YAAY,YAAY,EAAE;QAC1B,eAAe;QACf,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS;KAC1D;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,sCAAsC,IAAI,QAAQ,cAAI,CAAC,QAAQ,CAC7E,IAAI,CACL,GAAG,CAAC;IAEL,MAAM,MAAM,GAAG,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../src/gitUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA6GH,8CAqFC;;AAhMD,wDAAwB;AACxB,gEAA0B;AAC1B,oDAAoB;AACpB,4DAAuB;AACvB,0DAA0B;AAC1B,8DAA6B;AAE7B,2EAA2E;AAC3E,wDAAwD;AACxD,MAAM,4BAA4B;AAChC,0EAA0E;AAC1E,CAAC,OAAO,YAAE,CAAC,oBAAoB,KAAK,UAAU;IAC5C,CAAC,CAAC,YAAE,CAAC,oBAAoB,EAAE;IAC3B,CAAC,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAE5B,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,kCAAkC;IAC7E,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAE,CAAC;IAC9D,CAAC,CAAC,SAAS,CAAC;AAEd,MAAM,qBAAqB,GACzB,wBAAwB,IAAI,wBAAwB,GAAG,CAAC;IACtD,CAAC,CAAC,wBAAwB;IAC1B,CAAC,CAAC,4BAA4B,CAAC;AAEnC,2EAA2E;AAC3E,0DAA0D;AAC1D,MAAM,eAAe,GAAG,IAAI,iBAAM,CAAC;IACjC,WAAW,EAAE,qBAAqB;CACnC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,IAAI,CAAC;QACH,OAAO,eAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,qDAAqD;AACrD,gEAAgE;AAChE,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAE3E,2DAA2D;AAC3D,MAAa,gBAAiB,SAAQ,KAAK;CAAG;AAA9C,4CAA8C;AAE9C,uEAAuE;AACvE,MAAa,mBAAoB,SAAQ,KAAK;CAAG;AAAjD,kDAAiD;AA4D1C,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,EACE,GAAG,GAAG,QAAQ,EACd,aAAa,GAAG,KAAK,GAItB;IAMD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACd,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,IAAI,iCAAiC,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,oCAAoC,CAChF,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,6DAA6D;IAC7D,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;IAErE,MAAM,IAAI,GAAG;QACX,YAAY,YAAY,EAAE;QAC1B,eAAe;QACf,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS;KAC1D;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,sCAAsC,IAAI,QAAQ,cAAI,CAAC,QAAQ,CAC7E,IAAI,CACL,GAAG,CAAC;IAEL,MAAM,MAAM,GAAG,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;QAC7C,OAAO,IAAA,eAAK,EAAC,OAAO,EAAE;YACpB,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAE,CAAC;IAEL,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,gDAAgD,IAAI,oBAAoB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAC5G,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,4DAA4D;IAC5D,MAAM,KAAK,GAAG,aAAa;QACzB,CAAC,CAAC,wDAAwD;QAC1D,CAAC,CAAC,0CAA0C,CAAC;IAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAmB,CAC3B,gDAAgD,IAAI,2CAA2C,CAChG,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,gDAAgD,IAAI,6BAA6B,MAAM,EAAE,CAC1F,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAO,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,kBAAkB,GAAG,IAAK,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAO,CAAC,MAAO,EAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;AAC3B,CAAC"}
|
package/lib/lastUpdateUtils.d.ts
CHANGED
|
@@ -6,13 +6,22 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { PluginOptions } from '@docusaurus/types';
|
|
8
8
|
export type LastUpdateData = {
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
/**
|
|
10
|
+
* A timestamp in **milliseconds**, usually read from `git log`
|
|
11
|
+
* `undefined`: not read
|
|
12
|
+
* `null`: no value to read (usual for untracked files)
|
|
13
|
+
*/
|
|
14
|
+
lastUpdatedAt: number | undefined | null;
|
|
15
|
+
/**
|
|
16
|
+
* The author's name, usually coming from `git log`
|
|
17
|
+
* `undefined`: not read
|
|
18
|
+
* `null`: no value to read (usual for untracked files)
|
|
19
|
+
*/
|
|
20
|
+
lastUpdatedBy: string | undefined | null;
|
|
13
21
|
};
|
|
14
22
|
export declare function getGitLastUpdate(filePath: string): Promise<LastUpdateData | null>;
|
|
15
23
|
export declare const LAST_UPDATE_FALLBACK: LastUpdateData;
|
|
24
|
+
export declare const LAST_UPDATE_UNTRACKED_GIT_FILEPATH: string;
|
|
16
25
|
export declare function getLastUpdate(filePath: string): Promise<LastUpdateData | null>;
|
|
17
26
|
type LastUpdateOptions = Pick<PluginOptions, 'showLastUpdateAuthor' | 'showLastUpdateTime'>;
|
|
18
27
|
export type FrontMatterLastUpdate = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lastUpdateUtils.d.ts","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B
|
|
1
|
+
{"version":3,"file":"lastUpdateUtils.d.ts","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC1C,CAAC;AAKF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmChC;AAED,eAAO,MAAM,oBAAoB,EAAE,cAGlC,CAAC;AAGF,eAAO,MAAM,kCAAkC,QAAmC,CAAC;AAEnF,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAYhC;AAED,KAAK,iBAAiB,GAAG,IAAI,CAC3B,aAAa,EACb,sBAAsB,GAAG,oBAAoB,CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,GACvD,OAAO,CAAC,cAAc,CAAC,CA6CzB"}
|
package/lib/lastUpdateUtils.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.LAST_UPDATE_FALLBACK = void 0;
|
|
9
|
+
exports.LAST_UPDATE_UNTRACKED_GIT_FILEPATH = exports.LAST_UPDATE_FALLBACK = void 0;
|
|
10
10
|
exports.getGitLastUpdate = getGitLastUpdate;
|
|
11
11
|
exports.getLastUpdate = getLastUpdate;
|
|
12
12
|
exports.readLastUpdateData = readLastUpdateData;
|
|
@@ -52,7 +52,12 @@ exports.LAST_UPDATE_FALLBACK = {
|
|
|
52
52
|
lastUpdatedAt: 1539502055000,
|
|
53
53
|
lastUpdatedBy: 'Author',
|
|
54
54
|
};
|
|
55
|
+
// Not proud of this, but convenient for tests :/
|
|
56
|
+
exports.LAST_UPDATE_UNTRACKED_GIT_FILEPATH = `file/path/${Math.random()}.mdx`;
|
|
55
57
|
async function getLastUpdate(filePath) {
|
|
58
|
+
if (filePath === exports.LAST_UPDATE_UNTRACKED_GIT_FILEPATH) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
56
61
|
if (process.env.NODE_ENV !== 'production' ||
|
|
57
62
|
process.env.DOCUSAURUS_DISABLE_LAST_UPDATE === 'true') {
|
|
58
63
|
// Use fake data in dev/test for faster development.
|
|
@@ -63,7 +68,7 @@ async function getLastUpdate(filePath) {
|
|
|
63
68
|
async function readLastUpdateData(filePath, options, lastUpdateFrontMatter) {
|
|
64
69
|
const { showLastUpdateAuthor, showLastUpdateTime } = options;
|
|
65
70
|
if (!showLastUpdateAuthor && !showLastUpdateTime) {
|
|
66
|
-
return {};
|
|
71
|
+
return { lastUpdatedBy: undefined, lastUpdatedAt: undefined };
|
|
67
72
|
}
|
|
68
73
|
const frontMatterAuthor = lastUpdateFrontMatter?.author;
|
|
69
74
|
const frontMatterTimestamp = lastUpdateFrontMatter?.date
|
|
@@ -73,8 +78,20 @@ async function readLastUpdateData(filePath, options, lastUpdateFrontMatter) {
|
|
|
73
78
|
// We call it at most once
|
|
74
79
|
// If all the data is provided as front matter, we do not call it
|
|
75
80
|
const getLastUpdateMemoized = lodash_1.default.memoize(() => getLastUpdate(filePath));
|
|
76
|
-
const getLastUpdateBy = () => getLastUpdateMemoized().then((update) =>
|
|
77
|
-
|
|
81
|
+
const getLastUpdateBy = () => getLastUpdateMemoized().then((update) => {
|
|
82
|
+
// Important, see https://github.com/facebook/docusaurus/pull/11211
|
|
83
|
+
if (update === null) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return update?.lastUpdatedBy;
|
|
87
|
+
});
|
|
88
|
+
const getLastUpdateAt = () => getLastUpdateMemoized().then((update) => {
|
|
89
|
+
// Important, see https://github.com/facebook/docusaurus/pull/11211
|
|
90
|
+
if (update === null) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return update?.lastUpdatedAt;
|
|
94
|
+
});
|
|
78
95
|
const lastUpdatedBy = showLastUpdateAuthor
|
|
79
96
|
? frontMatterAuthor ?? (await getLastUpdateBy())
|
|
80
97
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lastUpdateUtils.js","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"lastUpdateUtils.js","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/utils",
|
|
3
|
-
"version": "3.8.
|
|
3
|
+
"version": "3.8.1",
|
|
4
4
|
"description": "Node utility functions for Docusaurus packages.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@docusaurus/logger": "3.8.
|
|
22
|
-
"@docusaurus/types": "3.8.
|
|
23
|
-
"@docusaurus/utils-common": "3.8.
|
|
21
|
+
"@docusaurus/logger": "3.8.1",
|
|
22
|
+
"@docusaurus/types": "3.8.1",
|
|
23
|
+
"@docusaurus/utils-common": "3.8.1",
|
|
24
24
|
"escape-string-regexp": "^4.0.0",
|
|
25
25
|
"execa": "5.1.1",
|
|
26
26
|
"file-loader": "^6.2.0",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"dedent": "^0.7.0",
|
|
52
52
|
"tmp-promise": "^3.0.3"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "fa8ae13e668fcbc0481ce10c0a734e2a5b397293"
|
|
55
55
|
}
|
package/src/gitUtils.ts
CHANGED
|
@@ -154,12 +154,12 @@ export async function getFileCommitDate(
|
|
|
154
154
|
file,
|
|
155
155
|
)}"`;
|
|
156
156
|
|
|
157
|
-
const result = (await GitCommandQueue.add(() =>
|
|
158
|
-
execa(command, {
|
|
157
|
+
const result = (await GitCommandQueue.add(() => {
|
|
158
|
+
return execa(command, {
|
|
159
159
|
cwd: path.dirname(file),
|
|
160
160
|
shell: true,
|
|
161
|
-
})
|
|
162
|
-
))!;
|
|
161
|
+
});
|
|
162
|
+
}))!;
|
|
163
163
|
|
|
164
164
|
if (result.exitCode !== 0) {
|
|
165
165
|
throw new Error(
|
package/src/lastUpdateUtils.ts
CHANGED
|
@@ -15,10 +15,18 @@ import {
|
|
|
15
15
|
import type {PluginOptions} from '@docusaurus/types';
|
|
16
16
|
|
|
17
17
|
export type LastUpdateData = {
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
/**
|
|
19
|
+
* A timestamp in **milliseconds**, usually read from `git log`
|
|
20
|
+
* `undefined`: not read
|
|
21
|
+
* `null`: no value to read (usual for untracked files)
|
|
22
|
+
*/
|
|
23
|
+
lastUpdatedAt: number | undefined | null;
|
|
24
|
+
/**
|
|
25
|
+
* The author's name, usually coming from `git log`
|
|
26
|
+
* `undefined`: not read
|
|
27
|
+
* `null`: no value to read (usual for untracked files)
|
|
28
|
+
*/
|
|
29
|
+
lastUpdatedBy: string | undefined | null;
|
|
22
30
|
};
|
|
23
31
|
|
|
24
32
|
let showedGitRequirementError = false;
|
|
@@ -68,9 +76,15 @@ export const LAST_UPDATE_FALLBACK: LastUpdateData = {
|
|
|
68
76
|
lastUpdatedBy: 'Author',
|
|
69
77
|
};
|
|
70
78
|
|
|
79
|
+
// Not proud of this, but convenient for tests :/
|
|
80
|
+
export const LAST_UPDATE_UNTRACKED_GIT_FILEPATH = `file/path/${Math.random()}.mdx`;
|
|
81
|
+
|
|
71
82
|
export async function getLastUpdate(
|
|
72
83
|
filePath: string,
|
|
73
84
|
): Promise<LastUpdateData | null> {
|
|
85
|
+
if (filePath === LAST_UPDATE_UNTRACKED_GIT_FILEPATH) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
74
88
|
if (
|
|
75
89
|
process.env.NODE_ENV !== 'production' ||
|
|
76
90
|
process.env.DOCUSAURUS_DISABLE_LAST_UPDATE === 'true'
|
|
@@ -103,7 +117,7 @@ export async function readLastUpdateData(
|
|
|
103
117
|
const {showLastUpdateAuthor, showLastUpdateTime} = options;
|
|
104
118
|
|
|
105
119
|
if (!showLastUpdateAuthor && !showLastUpdateTime) {
|
|
106
|
-
return {};
|
|
120
|
+
return {lastUpdatedBy: undefined, lastUpdatedAt: undefined};
|
|
107
121
|
}
|
|
108
122
|
|
|
109
123
|
const frontMatterAuthor = lastUpdateFrontMatter?.author;
|
|
@@ -116,9 +130,21 @@ export async function readLastUpdateData(
|
|
|
116
130
|
// If all the data is provided as front matter, we do not call it
|
|
117
131
|
const getLastUpdateMemoized = _.memoize(() => getLastUpdate(filePath));
|
|
118
132
|
const getLastUpdateBy = () =>
|
|
119
|
-
getLastUpdateMemoized().then((update) =>
|
|
133
|
+
getLastUpdateMemoized().then((update) => {
|
|
134
|
+
// Important, see https://github.com/facebook/docusaurus/pull/11211
|
|
135
|
+
if (update === null) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return update?.lastUpdatedBy;
|
|
139
|
+
});
|
|
120
140
|
const getLastUpdateAt = () =>
|
|
121
|
-
getLastUpdateMemoized().then((update) =>
|
|
141
|
+
getLastUpdateMemoized().then((update) => {
|
|
142
|
+
// Important, see https://github.com/facebook/docusaurus/pull/11211
|
|
143
|
+
if (update === null) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
return update?.lastUpdatedAt;
|
|
147
|
+
});
|
|
122
148
|
|
|
123
149
|
const lastUpdatedBy = showLastUpdateAuthor
|
|
124
150
|
? frontMatterAuthor ?? (await getLastUpdateBy())
|