@docusaurus/utils 0.0.0-5865 → 0.0.0-5868
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.d.ts +2 -2
- package/lib/gitUtils.d.ts.map +1 -1
- package/lib/gitUtils.js +3 -2
- package/lib/gitUtils.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -1
- package/lib/index.js.map +1 -1
- package/lib/lastUpdateUtils.d.ts +30 -0
- package/lib/lastUpdateUtils.d.ts.map +1 -0
- package/lib/lastUpdateUtils.js +89 -0
- package/lib/lastUpdateUtils.js.map +1 -0
- package/package.json +4 -4
- package/src/gitUtils.ts +5 -4
- package/src/index.ts +9 -0
- package/src/lastUpdateUtils.ts +132 -0
package/lib/gitUtils.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ file: string, args: {
|
|
|
33
33
|
}): Promise<{
|
|
34
34
|
/** Relevant commit date. */
|
|
35
35
|
date: Date;
|
|
36
|
-
/** Timestamp
|
|
36
|
+
/** Timestamp returned from git, converted to **milliseconds**. */
|
|
37
37
|
timestamp: number;
|
|
38
38
|
}>;
|
|
39
39
|
/**
|
|
@@ -58,7 +58,7 @@ file: string, args: {
|
|
|
58
58
|
}): Promise<{
|
|
59
59
|
/** Relevant commit date. */
|
|
60
60
|
date: Date;
|
|
61
|
-
/** Timestamp
|
|
61
|
+
/** Timestamp returned from git, converted to **milliseconds**. */
|
|
62
62
|
timestamp: number;
|
|
63
63
|
/** The author's name, as returned from git. */
|
|
64
64
|
author: string;
|
package/lib/gitUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../src/gitUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,2DAA2D;AAC3D,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,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,
|
|
1
|
+
{"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../src/gitUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,2DAA2D;AAC3D,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,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"}
|
package/lib/gitUtils.js
CHANGED
|
@@ -56,8 +56,9 @@ async function getFileCommitDate(file, { age = 'oldest', includeAuthor = false,
|
|
|
56
56
|
if (!match) {
|
|
57
57
|
throw new Error(`Failed to retrieve the git history for file "${file}" with unexpected output: ${output}`);
|
|
58
58
|
}
|
|
59
|
-
const
|
|
60
|
-
const
|
|
59
|
+
const timestampInSeconds = Number(match.groups.timestamp);
|
|
60
|
+
const timestamp = timestampInSeconds * 1000;
|
|
61
|
+
const date = new Date(timestamp);
|
|
61
62
|
if (includeAuthor) {
|
|
62
63
|
return { date, timestamp, author: match.groups.author };
|
|
63
64
|
}
|
package/lib/gitUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../src/gitUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wDAAwB;AACxB,8DAA4B;AAE5B,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,iBAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,IAAI,iCAAiC,CAC7E,CAAC;KACH;IAED,IAAI,CAAC,iBAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,oCAAoC,CAChF,CAAC;KACH;IAED,MAAM,IAAI,GAAG;QACX,eAAe,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,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,MAAM,GAAG,MAAM,IAAI,OAAO,CAI7B,CAAC,OAAO,EAAE,EAAE;QACb,iBAAK,CAAC,IAAI,CACR,WAAW,IAAI,QAAQ,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAC7C;YACE,kFAAkF;YAClF,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,IAAI;SACb,EACD,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACvB,OAAO,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;QAClC,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,gDAAgD,IAAI,oBAAoB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CACxG,CAAC;KACH;IACD,IAAI,KAAK,GAAG,qBAAqB,CAAC;IAClC,IAAI,aAAa,EAAE;QACjB,KAAK,GAAG,mCAAmC,CAAC;KAC7C;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,mBAAmB,CAC3B,gDAAgD,IAAI,2CAA2C,CAChG,CAAC;KACH;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CACb,gDAAgD,IAAI,6BAA6B,MAAM,EAAE,CAC1F,CAAC;KACH;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../src/gitUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wDAAwB;AACxB,8DAA4B;AAE5B,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,iBAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,IAAI,iCAAiC,CAC7E,CAAC;KACH;IAED,IAAI,CAAC,iBAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,oCAAoC,CAChF,CAAC;KACH;IAED,MAAM,IAAI,GAAG;QACX,eAAe,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,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,MAAM,GAAG,MAAM,IAAI,OAAO,CAI7B,CAAC,OAAO,EAAE,EAAE;QACb,iBAAK,CAAC,IAAI,CACR,WAAW,IAAI,QAAQ,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAC7C;YACE,kFAAkF;YAClF,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,IAAI;SACb,EACD,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACvB,OAAO,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;QAClC,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,gDAAgD,IAAI,oBAAoB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CACxG,CAAC;KACH;IACD,IAAI,KAAK,GAAG,qBAAqB,CAAC;IAClC,IAAI,aAAa,EAAE;QACjB,KAAK,GAAG,mCAAmC,CAAC;KAC7C;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,mBAAmB,CAC3B,gDAAgD,IAAI,2CAA2C,CAChG,CAAC;KACH;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CACb,gDAAgD,IAAI,6BAA6B,MAAM,EAAE,CAC1F,CAAC;KACH;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;QACjB,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAO,CAAC,MAAO,EAAC,CAAC;KACzD;IACD,OAAO,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;AAC3B,CAAC;AAtFD,8CAsFC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -25,4 +25,5 @@ export { getDataFilePath, getDataFileData, getContentPathList, findFolderContain
|
|
|
25
25
|
export { isDraft, isUnlisted } from './contentVisibilityUtils';
|
|
26
26
|
export { escapeRegexp } from './regExpUtils';
|
|
27
27
|
export { askPreferredLanguage } from './cliUtils';
|
|
28
|
+
export { getFileLastUpdate, type LastUpdateData, type FrontMatterLastUpdate, readLastUpdateData, GIT_FALLBACK_LAST_UPDATE_AUTHOR, GIT_FALLBACK_LAST_UPDATE_DATE, } from './lastUpdateUtils';
|
|
28
29
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,uBAAuB,EACvB,6BAA6B,EAC7B,UAAU,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,+BAA+B,EAC/B,aAAa,EACb,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,aAAa,EAAC,MAAM,WAAW,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,SAAS,EACT,SAAS,EACT,yBAAyB,EACzB,eAAe,EACf,UAAU,EACV,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,aAAa,EACb,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,OAAO,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAC,oBAAoB,EAAC,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,uBAAuB,EACvB,6BAA6B,EAC7B,UAAU,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EACL,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,+BAA+B,EAC/B,aAAa,EACb,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,aAAa,EAAC,MAAM,WAAW,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,SAAS,EACT,SAAS,EACT,yBAAyB,EACzB,eAAe,EACf,UAAU,EACV,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,aAAa,EACb,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,OAAO,EAAE,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAC,oBAAoB,EAAC,MAAM,YAAY,CAAC;AAEhD,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,kBAAkB,EAClB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.admonitionTitleToDirectiveLabel = exports.unwrapMdxCodeBlocks = exports.escapeMarkdownHeadingIds = exports.parseMarkdownHeadingId = exports.getTagVisibility = exports.groupTaggedItems = exports.normalizeFrontMatterTags = exports.buildSshUrl = exports.buildHttpsUrl = exports.hasSSHProtocol = exports.removeTrailingSlash = exports.addTrailingSlash = exports.addLeadingSlash = exports.serializeURLPath = exports.parseURLPath = exports.resolvePathname = exports.isValidPathname = exports.encodePath = exports.fileToPath = exports.getEditUrl = exports.normalizeUrl = exports.findAsyncSequential = exports.mapAsyncSequential = exports.removePrefix = exports.removeSuffix = exports.localizePath = exports.getPluginI18nPath = exports.updateTranslationFileMessages = exports.mergeTranslations = exports.GitNotFoundError = exports.FileNotTrackedError = exports.getFileCommitDate = exports.readOutputHTMLFile = exports.generate = exports.WEBPACK_URL_LOADER_LIMIT = exports.DEFAULT_PLUGIN_ID = exports.DEFAULT_PORT = exports.CODE_TRANSLATIONS_FILE_NAME = exports.DEFAULT_I18N_DIR_NAME = exports.THEME_PATH = exports.OUTPUT_STATIC_ASSETS_DIR_NAME = exports.DEFAULT_STATIC_DIR_NAME = exports.SRC_DIR_NAME = exports.GENERATED_FILES_DIR_NAME = exports.BABEL_CONFIG_FILE_NAME = exports.DEFAULT_CONFIG_FILE_NAME = exports.DEFAULT_BUILD_DIR_NAME = exports.DOCUSAURUS_VERSION = exports.NODE_MINOR_VERSION = exports.NODE_MAJOR_VERSION = void 0;
|
|
10
|
-
exports.askPreferredLanguage = exports.escapeRegexp = exports.isUnlisted = exports.isDraft = exports.getFolderContainingFile = exports.findFolderContainingFile = exports.getContentPathList = exports.getDataFileData = exports.getDataFilePath = exports.loadFreshModule = exports.escapeShellArg = exports.getWebpackLoaderCompilerName = exports.getFileLoaderUtils = exports.createAbsoluteFilePathMatcher = exports.createMatcher = exports.GlobExcludeDefault = exports.Globby = exports.docuHash = exports.simpleHash = exports.md5Hash = exports.addTrailingPathSeparator = exports.escapePath = exports.aliasedSitePath = exports.toMessageRelativeFilePath = exports.posixPath = exports.shortName = exports.isNameTooLong = exports.createSlugger = exports.replaceMarkdownLinks = exports.writeMarkdownHeadingId = exports.parseMarkdownFile = exports.parseMarkdownContentTitle = exports.DEFAULT_PARSE_FRONT_MATTER = exports.createExcerpt = void 0;
|
|
10
|
+
exports.GIT_FALLBACK_LAST_UPDATE_DATE = exports.GIT_FALLBACK_LAST_UPDATE_AUTHOR = exports.readLastUpdateData = exports.getFileLastUpdate = exports.askPreferredLanguage = exports.escapeRegexp = exports.isUnlisted = exports.isDraft = exports.getFolderContainingFile = exports.findFolderContainingFile = exports.getContentPathList = exports.getDataFileData = exports.getDataFilePath = exports.loadFreshModule = exports.escapeShellArg = exports.getWebpackLoaderCompilerName = exports.getFileLoaderUtils = exports.createAbsoluteFilePathMatcher = exports.createMatcher = exports.GlobExcludeDefault = exports.Globby = exports.docuHash = exports.simpleHash = exports.md5Hash = exports.addTrailingPathSeparator = exports.escapePath = exports.aliasedSitePath = exports.toMessageRelativeFilePath = exports.posixPath = exports.shortName = exports.isNameTooLong = exports.createSlugger = exports.replaceMarkdownLinks = exports.writeMarkdownHeadingId = exports.parseMarkdownFile = exports.parseMarkdownContentTitle = exports.DEFAULT_PARSE_FRONT_MATTER = exports.createExcerpt = void 0;
|
|
11
11
|
var constants_1 = require("./constants");
|
|
12
12
|
Object.defineProperty(exports, "NODE_MAJOR_VERSION", { enumerable: true, get: function () { return constants_1.NODE_MAJOR_VERSION; } });
|
|
13
13
|
Object.defineProperty(exports, "NODE_MINOR_VERSION", { enumerable: true, get: function () { return constants_1.NODE_MINOR_VERSION; } });
|
|
@@ -112,4 +112,9 @@ var regExpUtils_1 = require("./regExpUtils");
|
|
|
112
112
|
Object.defineProperty(exports, "escapeRegexp", { enumerable: true, get: function () { return regExpUtils_1.escapeRegexp; } });
|
|
113
113
|
var cliUtils_1 = require("./cliUtils");
|
|
114
114
|
Object.defineProperty(exports, "askPreferredLanguage", { enumerable: true, get: function () { return cliUtils_1.askPreferredLanguage; } });
|
|
115
|
+
var lastUpdateUtils_1 = require("./lastUpdateUtils");
|
|
116
|
+
Object.defineProperty(exports, "getFileLastUpdate", { enumerable: true, get: function () { return lastUpdateUtils_1.getFileLastUpdate; } });
|
|
117
|
+
Object.defineProperty(exports, "readLastUpdateData", { enumerable: true, get: function () { return lastUpdateUtils_1.readLastUpdateData; } });
|
|
118
|
+
Object.defineProperty(exports, "GIT_FALLBACK_LAST_UPDATE_AUTHOR", { enumerable: true, get: function () { return lastUpdateUtils_1.GIT_FALLBACK_LAST_UPDATE_AUTHOR; } });
|
|
119
|
+
Object.defineProperty(exports, "GIT_FALLBACK_LAST_UPDATE_DATE", { enumerable: true, get: function () { return lastUpdateUtils_1.GIT_FALLBACK_LAST_UPDATE_DATE; } });
|
|
115
120
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { PluginOptions } from '@docusaurus/types';
|
|
8
|
+
export declare const GIT_FALLBACK_LAST_UPDATE_DATE = 1539502055000;
|
|
9
|
+
export declare const GIT_FALLBACK_LAST_UPDATE_AUTHOR = "Author";
|
|
10
|
+
export type LastUpdateData = {
|
|
11
|
+
/** A timestamp in **milliseconds**, usually read from `git log` */
|
|
12
|
+
lastUpdatedAt?: number;
|
|
13
|
+
/** The author's name, usually coming from `git log` */
|
|
14
|
+
lastUpdatedBy?: string;
|
|
15
|
+
};
|
|
16
|
+
export type FrontMatterLastUpdate = {
|
|
17
|
+
author?: string;
|
|
18
|
+
/** Date can be any
|
|
19
|
+
* [parsable date string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).
|
|
20
|
+
*/
|
|
21
|
+
date?: Date | string;
|
|
22
|
+
};
|
|
23
|
+
export declare function getFileLastUpdate(filePath: string): Promise<{
|
|
24
|
+
timestamp: number;
|
|
25
|
+
author: string;
|
|
26
|
+
} | null>;
|
|
27
|
+
type LastUpdateOptions = Pick<PluginOptions, 'showLastUpdateAuthor' | 'showLastUpdateTime'>;
|
|
28
|
+
export declare function readLastUpdateData(filePath: string, options: LastUpdateOptions, lastUpdateFrontMatter: FrontMatterLastUpdate | undefined): Promise<LastUpdateData>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=lastUpdateUtils.d.ts.map
|
|
@@ -0,0 +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,eAAO,MAAM,6BAA6B,gBAAgB,CAAC;AAE3D,eAAO,MAAM,+BAA+B,WAAW,CAAC;AAcxD,MAAM,MAAM,cAAc,GAAG;IAC3B,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CACtB,CAAC;AAKF,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CAAC,CAmCrD;AAED,KAAK,iBAAiB,GAAG,IAAI,CAC3B,aAAa,EACb,sBAAsB,GAAG,oBAAoB,CAC9C,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,GACvD,OAAO,CAAC,cAAc,CAAC,CAiCzB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.readLastUpdateData = exports.getFileLastUpdate = exports.GIT_FALLBACK_LAST_UPDATE_AUTHOR = exports.GIT_FALLBACK_LAST_UPDATE_DATE = void 0;
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
12
|
+
const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
|
|
13
|
+
const gitUtils_1 = require("./gitUtils");
|
|
14
|
+
exports.GIT_FALLBACK_LAST_UPDATE_DATE = 1539502055000;
|
|
15
|
+
exports.GIT_FALLBACK_LAST_UPDATE_AUTHOR = 'Author';
|
|
16
|
+
async function getGitLastUpdate(filePath) {
|
|
17
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
18
|
+
// Use fake data in dev/test for faster development.
|
|
19
|
+
return {
|
|
20
|
+
lastUpdatedBy: exports.GIT_FALLBACK_LAST_UPDATE_AUTHOR,
|
|
21
|
+
lastUpdatedAt: exports.GIT_FALLBACK_LAST_UPDATE_DATE,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const { author, timestamp } = (await getFileLastUpdate(filePath)) ?? {};
|
|
25
|
+
return { lastUpdatedBy: author, lastUpdatedAt: timestamp };
|
|
26
|
+
}
|
|
27
|
+
let showedGitRequirementError = false;
|
|
28
|
+
let showedFileNotTrackedError = false;
|
|
29
|
+
async function getFileLastUpdate(filePath) {
|
|
30
|
+
if (!filePath) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
// Wrap in try/catch in case the shell commands fail
|
|
34
|
+
// (e.g. project doesn't use Git, etc).
|
|
35
|
+
try {
|
|
36
|
+
const result = await (0, gitUtils_1.getFileCommitDate)(filePath, {
|
|
37
|
+
age: 'newest',
|
|
38
|
+
includeAuthor: true,
|
|
39
|
+
});
|
|
40
|
+
return { timestamp: result.timestamp, author: result.author };
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
if (err instanceof gitUtils_1.GitNotFoundError) {
|
|
44
|
+
if (!showedGitRequirementError) {
|
|
45
|
+
logger_1.default.warn('Sorry, the last update options require Git.');
|
|
46
|
+
showedGitRequirementError = true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (err instanceof gitUtils_1.FileNotTrackedError) {
|
|
50
|
+
if (!showedFileNotTrackedError) {
|
|
51
|
+
logger_1.default.warn('Cannot infer the update date for some files, as they are not tracked by git.');
|
|
52
|
+
showedFileNotTrackedError = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
throw new Error(`An error occurred when trying to get the last update date`, { cause: err });
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.getFileLastUpdate = getFileLastUpdate;
|
|
62
|
+
async function readLastUpdateData(filePath, options, lastUpdateFrontMatter) {
|
|
63
|
+
const { showLastUpdateAuthor, showLastUpdateTime } = options;
|
|
64
|
+
if (!showLastUpdateAuthor && !showLastUpdateTime) {
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
67
|
+
const frontMatterAuthor = lastUpdateFrontMatter?.author;
|
|
68
|
+
const frontMatterTimestamp = lastUpdateFrontMatter?.date
|
|
69
|
+
? new Date(lastUpdateFrontMatter.date).getTime()
|
|
70
|
+
: undefined;
|
|
71
|
+
// We try to minimize git last update calls
|
|
72
|
+
// We call it at most once
|
|
73
|
+
// If all the data is provided as front matter, we do not call it
|
|
74
|
+
const getGitLastUpdateMemoized = lodash_1.default.memoize(() => getGitLastUpdate(filePath));
|
|
75
|
+
const getGitLastUpdateBy = () => getGitLastUpdateMemoized().then((update) => update.lastUpdatedBy);
|
|
76
|
+
const getGitLastUpdateAt = () => getGitLastUpdateMemoized().then((update) => update.lastUpdatedAt);
|
|
77
|
+
const lastUpdatedBy = showLastUpdateAuthor
|
|
78
|
+
? frontMatterAuthor ?? (await getGitLastUpdateBy())
|
|
79
|
+
: undefined;
|
|
80
|
+
const lastUpdatedAt = showLastUpdateTime
|
|
81
|
+
? frontMatterTimestamp ?? (await getGitLastUpdateAt())
|
|
82
|
+
: undefined;
|
|
83
|
+
return {
|
|
84
|
+
lastUpdatedBy,
|
|
85
|
+
lastUpdatedAt,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
exports.readLastUpdateData = readLastUpdateData;
|
|
89
|
+
//# sourceMappingURL=lastUpdateUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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": "0.0.0-
|
|
3
|
+
"version": "0.0.0-5868",
|
|
4
4
|
"description": "Node utility functions for Docusaurus packages.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@docusaurus/logger": "0.0.0-
|
|
21
|
+
"@docusaurus/logger": "0.0.0-5868",
|
|
22
22
|
"@svgr/webpack": "^6.5.1",
|
|
23
23
|
"escape-string-regexp": "^4.0.0",
|
|
24
24
|
"file-loader": "^6.2.0",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"node": ">=18.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@docusaurus/types": "0.0.0-
|
|
44
|
+
"@docusaurus/types": "0.0.0-5868",
|
|
45
45
|
"@types/dedent": "^0.7.0",
|
|
46
46
|
"@types/github-slugger": "^1.3.0",
|
|
47
47
|
"@types/micromatch": "^4.0.2",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"optional": true
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "82bedf4154c3c66e27563a6735763c5b08518820"
|
|
61
61
|
}
|
package/src/gitUtils.ts
CHANGED
|
@@ -39,7 +39,7 @@ export async function getFileCommitDate(
|
|
|
39
39
|
): Promise<{
|
|
40
40
|
/** Relevant commit date. */
|
|
41
41
|
date: Date;
|
|
42
|
-
/** Timestamp
|
|
42
|
+
/** Timestamp returned from git, converted to **milliseconds**. */
|
|
43
43
|
timestamp: number;
|
|
44
44
|
}>;
|
|
45
45
|
/**
|
|
@@ -66,7 +66,7 @@ export async function getFileCommitDate(
|
|
|
66
66
|
): Promise<{
|
|
67
67
|
/** Relevant commit date. */
|
|
68
68
|
date: Date;
|
|
69
|
-
/** Timestamp
|
|
69
|
+
/** Timestamp returned from git, converted to **milliseconds**. */
|
|
70
70
|
timestamp: number;
|
|
71
71
|
/** The author's name, as returned from git. */
|
|
72
72
|
author: string;
|
|
@@ -150,8 +150,9 @@ export async function getFileCommitDate(
|
|
|
150
150
|
);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
const
|
|
154
|
-
const
|
|
153
|
+
const timestampInSeconds = Number(match.groups!.timestamp);
|
|
154
|
+
const timestamp = timestampInSeconds * 1_000;
|
|
155
|
+
const date = new Date(timestamp);
|
|
155
156
|
|
|
156
157
|
if (includeAuthor) {
|
|
157
158
|
return {date, timestamp, author: match.groups!.author!};
|
package/src/index.ts
CHANGED
|
@@ -118,3 +118,12 @@ export {
|
|
|
118
118
|
export {isDraft, isUnlisted} from './contentVisibilityUtils';
|
|
119
119
|
export {escapeRegexp} from './regExpUtils';
|
|
120
120
|
export {askPreferredLanguage} from './cliUtils';
|
|
121
|
+
|
|
122
|
+
export {
|
|
123
|
+
getFileLastUpdate,
|
|
124
|
+
type LastUpdateData,
|
|
125
|
+
type FrontMatterLastUpdate,
|
|
126
|
+
readLastUpdateData,
|
|
127
|
+
GIT_FALLBACK_LAST_UPDATE_AUTHOR,
|
|
128
|
+
GIT_FALLBACK_LAST_UPDATE_DATE,
|
|
129
|
+
} from './lastUpdateUtils';
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import _ from 'lodash';
|
|
9
|
+
import logger from '@docusaurus/logger';
|
|
10
|
+
import {
|
|
11
|
+
FileNotTrackedError,
|
|
12
|
+
GitNotFoundError,
|
|
13
|
+
getFileCommitDate,
|
|
14
|
+
} from './gitUtils';
|
|
15
|
+
import type {PluginOptions} from '@docusaurus/types';
|
|
16
|
+
|
|
17
|
+
export const GIT_FALLBACK_LAST_UPDATE_DATE = 1539502055000;
|
|
18
|
+
|
|
19
|
+
export const GIT_FALLBACK_LAST_UPDATE_AUTHOR = 'Author';
|
|
20
|
+
|
|
21
|
+
async function getGitLastUpdate(filePath: string): Promise<LastUpdateData> {
|
|
22
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
23
|
+
// Use fake data in dev/test for faster development.
|
|
24
|
+
return {
|
|
25
|
+
lastUpdatedBy: GIT_FALLBACK_LAST_UPDATE_AUTHOR,
|
|
26
|
+
lastUpdatedAt: GIT_FALLBACK_LAST_UPDATE_DATE,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const {author, timestamp} = (await getFileLastUpdate(filePath)) ?? {};
|
|
30
|
+
return {lastUpdatedBy: author, lastUpdatedAt: timestamp};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export type LastUpdateData = {
|
|
34
|
+
/** A timestamp in **milliseconds**, usually read from `git log` */
|
|
35
|
+
lastUpdatedAt?: number;
|
|
36
|
+
/** The author's name, usually coming from `git log` */
|
|
37
|
+
lastUpdatedBy?: string;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export type FrontMatterLastUpdate = {
|
|
41
|
+
author?: string;
|
|
42
|
+
/** Date can be any
|
|
43
|
+
* [parsable date string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).
|
|
44
|
+
*/
|
|
45
|
+
date?: Date | string;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
let showedGitRequirementError = false;
|
|
49
|
+
let showedFileNotTrackedError = false;
|
|
50
|
+
|
|
51
|
+
export async function getFileLastUpdate(
|
|
52
|
+
filePath: string,
|
|
53
|
+
): Promise<{timestamp: number; author: string} | null> {
|
|
54
|
+
if (!filePath) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Wrap in try/catch in case the shell commands fail
|
|
59
|
+
// (e.g. project doesn't use Git, etc).
|
|
60
|
+
try {
|
|
61
|
+
const result = await getFileCommitDate(filePath, {
|
|
62
|
+
age: 'newest',
|
|
63
|
+
includeAuthor: true,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
return {timestamp: result.timestamp, author: result.author};
|
|
67
|
+
} catch (err) {
|
|
68
|
+
if (err instanceof GitNotFoundError) {
|
|
69
|
+
if (!showedGitRequirementError) {
|
|
70
|
+
logger.warn('Sorry, the last update options require Git.');
|
|
71
|
+
showedGitRequirementError = true;
|
|
72
|
+
}
|
|
73
|
+
} else if (err instanceof FileNotTrackedError) {
|
|
74
|
+
if (!showedFileNotTrackedError) {
|
|
75
|
+
logger.warn(
|
|
76
|
+
'Cannot infer the update date for some files, as they are not tracked by git.',
|
|
77
|
+
);
|
|
78
|
+
showedFileNotTrackedError = true;
|
|
79
|
+
}
|
|
80
|
+
} else {
|
|
81
|
+
throw new Error(
|
|
82
|
+
`An error occurred when trying to get the last update date`,
|
|
83
|
+
{cause: err},
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
type LastUpdateOptions = Pick<
|
|
91
|
+
PluginOptions,
|
|
92
|
+
'showLastUpdateAuthor' | 'showLastUpdateTime'
|
|
93
|
+
>;
|
|
94
|
+
|
|
95
|
+
export async function readLastUpdateData(
|
|
96
|
+
filePath: string,
|
|
97
|
+
options: LastUpdateOptions,
|
|
98
|
+
lastUpdateFrontMatter: FrontMatterLastUpdate | undefined,
|
|
99
|
+
): Promise<LastUpdateData> {
|
|
100
|
+
const {showLastUpdateAuthor, showLastUpdateTime} = options;
|
|
101
|
+
|
|
102
|
+
if (!showLastUpdateAuthor && !showLastUpdateTime) {
|
|
103
|
+
return {};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const frontMatterAuthor = lastUpdateFrontMatter?.author;
|
|
107
|
+
const frontMatterTimestamp = lastUpdateFrontMatter?.date
|
|
108
|
+
? new Date(lastUpdateFrontMatter.date).getTime()
|
|
109
|
+
: undefined;
|
|
110
|
+
|
|
111
|
+
// We try to minimize git last update calls
|
|
112
|
+
// We call it at most once
|
|
113
|
+
// If all the data is provided as front matter, we do not call it
|
|
114
|
+
const getGitLastUpdateMemoized = _.memoize(() => getGitLastUpdate(filePath));
|
|
115
|
+
const getGitLastUpdateBy = () =>
|
|
116
|
+
getGitLastUpdateMemoized().then((update) => update.lastUpdatedBy);
|
|
117
|
+
const getGitLastUpdateAt = () =>
|
|
118
|
+
getGitLastUpdateMemoized().then((update) => update.lastUpdatedAt);
|
|
119
|
+
|
|
120
|
+
const lastUpdatedBy = showLastUpdateAuthor
|
|
121
|
+
? frontMatterAuthor ?? (await getGitLastUpdateBy())
|
|
122
|
+
: undefined;
|
|
123
|
+
|
|
124
|
+
const lastUpdatedAt = showLastUpdateTime
|
|
125
|
+
? frontMatterTimestamp ?? (await getGitLastUpdateAt())
|
|
126
|
+
: undefined;
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
lastUpdatedBy,
|
|
130
|
+
lastUpdatedAt,
|
|
131
|
+
};
|
|
132
|
+
}
|