@docusaurus/mdx-loader 0.0.0-6094 → 0.0.0-6096
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/loader.d.ts.map +1 -1
- package/lib/loader.js +63 -17
- package/lib/loader.js.map +1 -1
- package/lib/options.d.ts +4 -1
- package/lib/options.d.ts.map +1 -1
- package/lib/remark/unusedDirectives/index.d.ts.map +1 -1
- package/lib/remark/unusedDirectives/index.js +1 -0
- package/lib/remark/unusedDirectives/index.js.map +1 -1
- package/lib/utils.d.ts +6 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +11 -0
- package/lib/utils.js.map +1 -1
- package/package.json +6 -6
- package/src/loader.ts +64 -17
- package/src/options.ts +4 -1
- package/src/remark/unusedDirectives/index.ts +1 -0
- package/src/utils.ts +17 -0
package/lib/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAK3C,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAuLlC,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
package/lib/loader.js
CHANGED
|
@@ -78,29 +78,75 @@ ${result.content}
|
|
|
78
78
|
// This is because client/server compilations might be triggered in parallel
|
|
79
79
|
// When this happens for the same file, we don't want to compile it twice
|
|
80
80
|
async function loadMDXWithCaching({ resource, fileContent, filePath, options, compilerName, }) {
|
|
81
|
+
const { crossCompilerCache } = options;
|
|
82
|
+
if (!crossCompilerCache) {
|
|
83
|
+
return loadMDX({
|
|
84
|
+
fileContent,
|
|
85
|
+
filePath,
|
|
86
|
+
options,
|
|
87
|
+
compilerName,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
81
90
|
// Note we "resource" as cache key, not "filePath" nor "fileContent"
|
|
82
91
|
// This is because:
|
|
83
92
|
// - the same file can be compiled in different variants (blog.mdx?truncated)
|
|
84
93
|
// - the same content can be processed differently (versioned docs links)
|
|
85
94
|
const cacheKey = resource;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
// We can clean up the cache and free memory after cache entry consumption
|
|
96
|
+
// We know there are only 2 compilations for the same file
|
|
97
|
+
// Note: once we introduce RSCs we'll probably have 3 compilations
|
|
98
|
+
// Note: we can't use string keys in WeakMap
|
|
99
|
+
// But we could eventually use WeakRef for the values
|
|
100
|
+
const deleteCacheEntry = () => crossCompilerCache.delete(cacheKey);
|
|
101
|
+
const cacheEntry = crossCompilerCache?.get(cacheKey);
|
|
102
|
+
// When deduplicating client/server compilations, we always use the client
|
|
103
|
+
// compilation and not the server compilation
|
|
104
|
+
// This is important because the server compilation usually skips some steps
|
|
105
|
+
// Notably: the server compilation does not emit file-loader assets
|
|
106
|
+
// Using the server compilation otherwise leads to broken images
|
|
107
|
+
// See https://github.com/facebook/docusaurus/issues/10544#issuecomment-2390943794
|
|
108
|
+
// See https://github.com/facebook/docusaurus/pull/10553
|
|
109
|
+
// TODO a problem with this: server bundle will use client inline loaders
|
|
110
|
+
// This means server bundle will use ?emit=true for assets
|
|
111
|
+
// We should try to get rid of inline loaders to cleanup this caching logic
|
|
112
|
+
if (compilerName === 'client') {
|
|
113
|
+
const promise = loadMDX({
|
|
114
|
+
fileContent,
|
|
115
|
+
filePath,
|
|
116
|
+
options,
|
|
117
|
+
compilerName,
|
|
118
|
+
});
|
|
119
|
+
if (cacheEntry) {
|
|
120
|
+
promise.then(cacheEntry.resolve, cacheEntry.reject);
|
|
121
|
+
deleteCacheEntry();
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const noop = () => {
|
|
125
|
+
throw new Error('this should never be called');
|
|
126
|
+
};
|
|
127
|
+
crossCompilerCache.set(cacheKey, {
|
|
128
|
+
promise,
|
|
129
|
+
resolve: noop,
|
|
130
|
+
reject: noop,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return promise;
|
|
134
|
+
}
|
|
135
|
+
// Server compilation always uses the result of the client compilation above
|
|
136
|
+
else if (compilerName === 'server') {
|
|
137
|
+
if (cacheEntry) {
|
|
138
|
+
deleteCacheEntry();
|
|
139
|
+
return cacheEntry.promise;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const { promise, resolve, reject } = (0, utils_2.promiseWithResolvers)();
|
|
143
|
+
crossCompilerCache.set(cacheKey, { promise, resolve, reject });
|
|
144
|
+
return promise;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
throw new Error(`Unexpected compilerName=${compilerName}`);
|
|
95
149
|
}
|
|
96
|
-
const promise = loadMDX({
|
|
97
|
-
fileContent,
|
|
98
|
-
filePath,
|
|
99
|
-
options,
|
|
100
|
-
compilerName,
|
|
101
|
-
});
|
|
102
|
-
options.crossCompilerCache?.set(cacheKey, promise);
|
|
103
|
-
return promise;
|
|
104
150
|
}
|
|
105
151
|
async function mdxLoader(fileContent) {
|
|
106
152
|
const compilerName = (0, utils_1.getWebpackLoaderCompilerName)(this);
|
package/lib/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgNH,8BAmBC;;AAjOD,wEAAwC;AACxC,6CAK2B;AAC3B,gFAA+C;AAC/C,mCAKiB;AAYjB,KAAK,UAAU,OAAO,CAAC,EACrB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,YAAY,GAMb;IACC,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAClE,QAAQ;QACR,WAAW;QACX,uBAAuB,EAAE,kCAA0B;KACpD,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAY,EAAC;QAChC,WAAW;QACX,QAAQ;QACR,WAAW;QACX,OAAO;QACP,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAA,+BAAuB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1D,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,YAAY,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG;;UAEf,QAAQ;EAChB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YACD,gBAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,SAAS,eAAe;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,MAAM,GACV,OAAO,CAAC,YAAY,IAAI,CAAC,YAAY;QACnC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,eAAe,GAAG,IAAA,0BAAkB,EAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;IAEtE,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,WAAW,GAAG;6BACO,IAAA,0BAAe,EAAC,WAAW,CAAC;8BAC3B,IAAA,0BAAe,EAAC,YAAY,CAAC;EAEzD,YAAY;QACV,CAAC,CAAC,sCAAsC,IAAA,uBAAe,EACnD,YAAY,EACZ,OAAO,CAAC,OAAO,CAChB,GAAG;QACN,CAAC,CAAC,EACN;EAEE,MAAM;QACJ,CAAC,CAAC,yBAAyB,IAAA,8BAAsB,EAAC;YAC9C,MAAM;YACN,kCAAkC,EAChC,eAAe,CAAC,OAAO,CAAC,kCAAkC;SAC7D,CAAC,GAAG;QACP,CAAC,CAAC,EACN;CACC,CAAC;IAEA,MAAM,IAAI,GAAG;EACb,WAAW;EACX,MAAM,CAAC,OAAO;CACf,CAAC;IAEA,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6CAA6C;AAC7C,4EAA4E;AAC5E,yEAAyE;AACzE,KAAK,UAAU,kBAAkB,CAAC,EAChC,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,OAAO,EACP,YAAY,GAOb;IACC,MAAM,EAAC,kBAAkB,EAAC,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;YACb,WAAW;YACX,QAAQ;YACR,OAAO;YACP,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,mBAAmB;IACnB,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAE1B,0EAA0E;IAC1E,0DAA0D;IAC1D,kEAAkE;IAClE,4CAA4C;IAC5C,qDAAqD;IACrD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,kBAAkB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErD,0EAA0E;IAC1E,6CAA6C;IAC7C,4EAA4E;IAC5E,mEAAmE;IACnE,gEAAgE;IAChE,kFAAkF;IAClF,wDAAwD;IACxD,yEAAyE;IACzE,2DAA2D;IAC3D,4EAA4E;IAC5E,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,OAAO,CAAC;YACtB,WAAW;YACX,QAAQ;YACR,OAAO;YACP,YAAY;SACb,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACpD,gBAAgB,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/B,OAAO;gBACP,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,4EAA4E;SACvE,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;YACnB,OAAO,UAAU,CAAC,OAAO,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC,GAAG,IAAA,4BAAoB,GAAU,CAAC;YAClE,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAE7B,WAAmB;IAEnB,MAAM,YAAY,GAAG,IAAA,oCAA4B,EAAC,IAAI,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAY,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,WAAW;YACX,OAAO;YACP,YAAY;SACb,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,KAAc,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
|
package/lib/options.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import type { MDXOptions, SimpleProcessors } from './processor';
|
|
8
8
|
import type { MarkdownConfig } from '@docusaurus/types';
|
|
9
9
|
import type { ResolveMarkdownLink } from './remark/resolveMarkdownLinks';
|
|
10
|
+
import type { PromiseWithResolvers } from './utils';
|
|
10
11
|
export type Options = Partial<MDXOptions> & {
|
|
11
12
|
markdownConfig: MarkdownConfig;
|
|
12
13
|
staticDirs: string[];
|
|
@@ -25,6 +26,8 @@ export type Options = Partial<MDXOptions> & {
|
|
|
25
26
|
};
|
|
26
27
|
resolveMarkdownLink?: ResolveMarkdownLink;
|
|
27
28
|
processors?: SimpleProcessors;
|
|
28
|
-
crossCompilerCache?: Map<string,
|
|
29
|
+
crossCompilerCache?: Map<string, CrossCompilerCacheEntry>;
|
|
29
30
|
};
|
|
31
|
+
type CrossCompilerCacheEntry = PromiseWithResolvers<string>;
|
|
32
|
+
export {};
|
|
30
33
|
//# sourceMappingURL=options.d.ts.map
|
package/lib/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAC1C,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,sCAAsC,CAAC,EAAE,OAAO,CAAC;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;KACvC,KAAK;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAG1C,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CAC3D,CAAC;AAEF,KAAK,uBAAuB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/unusedDirectives/index.ts"],"names":[],"mappings":"AAwBA,KAAK,MAAM,GAAG,GAAG,CAAC;AA4GlB,QAAA,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/unusedDirectives/index.ts"],"names":[],"mappings":"AAwBA,KAAK,MAAM,GAAG,GAAG,CAAC;AA4GlB,QAAA,MAAM,MAAM,EAAE,MAiCb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -105,6 +105,7 @@ const plugin = function plugin() {
|
|
|
105
105
|
// We only enable these warnings for the client compiler
|
|
106
106
|
// This avoids emitting duplicate warnings in prod mode
|
|
107
107
|
// Note: the client compiler is used in both dev/prod modes
|
|
108
|
+
// Also: the client compiler is what gets used when using crossCompilerCache
|
|
108
109
|
if (file.data.compilerName === 'client') {
|
|
109
110
|
logUnusedDirectivesWarning({
|
|
110
111
|
directives: unusedDirectives,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/unusedDirectives/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/unusedDirectives/index.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.d.ts
CHANGED
|
@@ -32,4 +32,10 @@ export declare function compileToJSX({ filePath, fileContent, frontMatter, optio
|
|
|
32
32
|
options: Options;
|
|
33
33
|
compilerName: WebpackCompilerName;
|
|
34
34
|
}): Promise<SimpleProcessorResult>;
|
|
35
|
+
export interface PromiseWithResolvers<T> {
|
|
36
|
+
promise: Promise<T>;
|
|
37
|
+
resolve: (value: T | PromiseLike<T>) => void;
|
|
38
|
+
reject: (reason?: any) => void;
|
|
39
|
+
}
|
|
40
|
+
export declare function promiseWithResolvers<T>(): PromiseWithResolvers<T>;
|
|
35
41
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAa,KAAK,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAe,KAAK,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAGrE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAEvC;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,kCAAkC,GACnC,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,kCAAkC,EAAE,MAAM,CAAC;CAC5C,GAAG,MAAM,CAuCT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GAAG,MAAM,GAAG,SAAS,CAErB;AAED,wBAAsB,YAAY,CAAC,EACjC,QAAQ,EACR,WAAW,EACX,WAAW,EACX,OAAO,EACP,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,mBAAmB,CAAC;CACnC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2CjC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAa,KAAK,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAe,KAAK,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAGrE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAEvC;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,kCAAkC,GACnC,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,kCAAkC,EAAE,MAAM,CAAC;CAC5C,GAAG,MAAM,CAuCT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GAAG,MAAM,GAAG,SAAS,CAErB;AAED,wBAAsB,YAAY,CAAC,EACjC,QAAQ,EACR,WAAW,EACX,WAAW,EACX,OAAO,EACP,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,mBAAmB,CAAC;CACnC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2CjC;AAGD,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAQjE"}
|
package/lib/utils.js
CHANGED
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.createAssetsExportCode = createAssetsExportCode;
|
|
10
10
|
exports.extractContentTitleData = extractContentTitleData;
|
|
11
11
|
exports.compileToJSX = compileToJSX;
|
|
12
|
+
exports.promiseWithResolvers = promiseWithResolvers;
|
|
12
13
|
const tslib_1 = require("tslib");
|
|
13
14
|
const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
|
|
14
15
|
const utils_1 = require("@docusaurus/utils");
|
|
@@ -94,4 +95,14 @@ async function compileToJSX({ filePath, fileContent, frontMatter, options, compi
|
|
|
94
95
|
{ cause: error });
|
|
95
96
|
}
|
|
96
97
|
}
|
|
98
|
+
// TODO Docusaurus v4, remove temporary polyfill when upgrading to Node 22+
|
|
99
|
+
function promiseWithResolvers() {
|
|
100
|
+
// @ts-expect-error: it's fine
|
|
101
|
+
const out = {};
|
|
102
|
+
out.promise = new Promise((resolve, reject) => {
|
|
103
|
+
out.resolve = resolve;
|
|
104
|
+
out.reject = reject;
|
|
105
|
+
});
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
97
108
|
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAiBH,wDA6CC;AAKD,0DAIC;AAED,oCAuDC;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/mdx-loader",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-6096",
|
|
4
4
|
"description": "Docusaurus Loader for MDX",
|
|
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": "0.0.0-
|
|
22
|
-
"@docusaurus/utils": "0.0.0-
|
|
23
|
-
"@docusaurus/utils-validation": "0.0.0-
|
|
21
|
+
"@docusaurus/logger": "0.0.0-6096",
|
|
22
|
+
"@docusaurus/utils": "0.0.0-6096",
|
|
23
|
+
"@docusaurus/utils-validation": "0.0.0-6096",
|
|
24
24
|
"@mdx-js/mdx": "^3.0.0",
|
|
25
25
|
"@slorber/remark-comment": "^1.0.0",
|
|
26
26
|
"escape-html": "^1.0.3",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"webpack": "^5.88.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@docusaurus/types": "0.0.0-
|
|
47
|
+
"@docusaurus/types": "0.0.0-6096",
|
|
48
48
|
"@types/escape-html": "^1.0.2",
|
|
49
49
|
"@types/mdast": "^4.0.2",
|
|
50
50
|
"@types/stringify-object": "^3.3.1",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"engines": {
|
|
65
65
|
"node": ">=18.0"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "4005addf94d2f52e3908088601f036b5aff7acd7"
|
|
68
68
|
}
|
package/src/loader.ts
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
compileToJSX,
|
|
18
18
|
createAssetsExportCode,
|
|
19
19
|
extractContentTitleData,
|
|
20
|
+
promiseWithResolvers,
|
|
20
21
|
} from './utils';
|
|
21
22
|
import type {WebpackCompilerName} from '@docusaurus/utils';
|
|
22
23
|
import type {Options} from './options';
|
|
@@ -138,30 +139,76 @@ async function loadMDXWithCaching({
|
|
|
138
139
|
options: Options;
|
|
139
140
|
compilerName: WebpackCompilerName;
|
|
140
141
|
}): Promise<string> {
|
|
142
|
+
const {crossCompilerCache} = options;
|
|
143
|
+
if (!crossCompilerCache) {
|
|
144
|
+
return loadMDX({
|
|
145
|
+
fileContent,
|
|
146
|
+
filePath,
|
|
147
|
+
options,
|
|
148
|
+
compilerName,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
141
152
|
// Note we "resource" as cache key, not "filePath" nor "fileContent"
|
|
142
153
|
// This is because:
|
|
143
154
|
// - the same file can be compiled in different variants (blog.mdx?truncated)
|
|
144
155
|
// - the same content can be processed differently (versioned docs links)
|
|
145
156
|
const cacheKey = resource;
|
|
146
157
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
158
|
+
// We can clean up the cache and free memory after cache entry consumption
|
|
159
|
+
// We know there are only 2 compilations for the same file
|
|
160
|
+
// Note: once we introduce RSCs we'll probably have 3 compilations
|
|
161
|
+
// Note: we can't use string keys in WeakMap
|
|
162
|
+
// But we could eventually use WeakRef for the values
|
|
163
|
+
const deleteCacheEntry = () => crossCompilerCache.delete(cacheKey);
|
|
164
|
+
|
|
165
|
+
const cacheEntry = crossCompilerCache?.get(cacheKey);
|
|
166
|
+
|
|
167
|
+
// When deduplicating client/server compilations, we always use the client
|
|
168
|
+
// compilation and not the server compilation
|
|
169
|
+
// This is important because the server compilation usually skips some steps
|
|
170
|
+
// Notably: the server compilation does not emit file-loader assets
|
|
171
|
+
// Using the server compilation otherwise leads to broken images
|
|
172
|
+
// See https://github.com/facebook/docusaurus/issues/10544#issuecomment-2390943794
|
|
173
|
+
// See https://github.com/facebook/docusaurus/pull/10553
|
|
174
|
+
// TODO a problem with this: server bundle will use client inline loaders
|
|
175
|
+
// This means server bundle will use ?emit=true for assets
|
|
176
|
+
// We should try to get rid of inline loaders to cleanup this caching logic
|
|
177
|
+
if (compilerName === 'client') {
|
|
178
|
+
const promise = loadMDX({
|
|
179
|
+
fileContent,
|
|
180
|
+
filePath,
|
|
181
|
+
options,
|
|
182
|
+
compilerName,
|
|
183
|
+
});
|
|
184
|
+
if (cacheEntry) {
|
|
185
|
+
promise.then(cacheEntry.resolve, cacheEntry.reject);
|
|
186
|
+
deleteCacheEntry();
|
|
187
|
+
} else {
|
|
188
|
+
const noop = () => {
|
|
189
|
+
throw new Error('this should never be called');
|
|
190
|
+
};
|
|
191
|
+
crossCompilerCache.set(cacheKey, {
|
|
192
|
+
promise,
|
|
193
|
+
resolve: noop,
|
|
194
|
+
reject: noop,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return promise;
|
|
198
|
+
}
|
|
199
|
+
// Server compilation always uses the result of the client compilation above
|
|
200
|
+
else if (compilerName === 'server') {
|
|
201
|
+
if (cacheEntry) {
|
|
202
|
+
deleteCacheEntry();
|
|
203
|
+
return cacheEntry.promise;
|
|
204
|
+
} else {
|
|
205
|
+
const {promise, resolve, reject} = promiseWithResolvers<string>();
|
|
206
|
+
crossCompilerCache.set(cacheKey, {promise, resolve, reject});
|
|
207
|
+
return promise;
|
|
208
|
+
}
|
|
209
|
+
} else {
|
|
210
|
+
throw new Error(`Unexpected compilerName=${compilerName}`);
|
|
156
211
|
}
|
|
157
|
-
const promise = loadMDX({
|
|
158
|
-
fileContent,
|
|
159
|
-
filePath,
|
|
160
|
-
options,
|
|
161
|
-
compilerName,
|
|
162
|
-
});
|
|
163
|
-
options.crossCompilerCache?.set(cacheKey, promise);
|
|
164
|
-
return promise;
|
|
165
212
|
}
|
|
166
213
|
|
|
167
214
|
export async function mdxLoader(
|
package/src/options.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import type {MDXOptions, SimpleProcessors} from './processor';
|
|
9
9
|
import type {MarkdownConfig} from '@docusaurus/types';
|
|
10
10
|
import type {ResolveMarkdownLink} from './remark/resolveMarkdownLinks';
|
|
11
|
+
import type {PromiseWithResolvers} from './utils';
|
|
11
12
|
|
|
12
13
|
export type Options = Partial<MDXOptions> & {
|
|
13
14
|
markdownConfig: MarkdownConfig;
|
|
@@ -25,5 +26,7 @@ export type Options = Partial<MDXOptions> & {
|
|
|
25
26
|
|
|
26
27
|
// Will usually be created by "createMDXLoaderItem"
|
|
27
28
|
processors?: SimpleProcessors;
|
|
28
|
-
crossCompilerCache?: Map<string,
|
|
29
|
+
crossCompilerCache?: Map<string, CrossCompilerCacheEntry>; // MDX => Promise<JSX> cache
|
|
29
30
|
};
|
|
31
|
+
|
|
32
|
+
type CrossCompilerCacheEntry = PromiseWithResolvers<string>;
|
|
@@ -155,6 +155,7 @@ const plugin: Plugin = function plugin(this: Processor): Transformer {
|
|
|
155
155
|
// We only enable these warnings for the client compiler
|
|
156
156
|
// This avoids emitting duplicate warnings in prod mode
|
|
157
157
|
// Note: the client compiler is used in both dev/prod modes
|
|
158
|
+
// Also: the client compiler is what gets used when using crossCompilerCache
|
|
158
159
|
if (file.data.compilerName === 'client') {
|
|
159
160
|
logUnusedDirectivesWarning({
|
|
160
161
|
directives: unusedDirectives,
|
package/src/utils.ts
CHANGED
|
@@ -132,3 +132,20 @@ export async function compileToJSX({
|
|
|
132
132
|
);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
+
|
|
136
|
+
// TODO Docusaurus v4, remove temporary polyfill when upgrading to Node 22+
|
|
137
|
+
export interface PromiseWithResolvers<T> {
|
|
138
|
+
promise: Promise<T>;
|
|
139
|
+
resolve: (value: T | PromiseLike<T>) => void;
|
|
140
|
+
reject: (reason?: any) => void;
|
|
141
|
+
}
|
|
142
|
+
// TODO Docusaurus v4, remove temporary polyfill when upgrading to Node 22+
|
|
143
|
+
export function promiseWithResolvers<T>(): PromiseWithResolvers<T> {
|
|
144
|
+
// @ts-expect-error: it's fine
|
|
145
|
+
const out: PromiseWithResolvers<T> = {};
|
|
146
|
+
out.promise = new Promise((resolve, reject) => {
|
|
147
|
+
out.resolve = resolve;
|
|
148
|
+
out.reject = reject;
|
|
149
|
+
});
|
|
150
|
+
return out;
|
|
151
|
+
}
|