@redocly/openapi-core 0.0.0-snapshot.1778237731 → 0.0.0-snapshot.1778250423
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins-cache.d.ts","sourceRoot":"","sources":["../../src/config/plugins-cache.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins-cache.d.ts","sourceRoot":"","sources":["../../src/config/plugins-cache.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAiGzC,wBAAgB,eAAe,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAEjF;AAED,wBAAgB,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAEpF;AAqBD,eAAO,MAAM,iBAAiB,QAAO,IASpC,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC"}
|
|
@@ -3,11 +3,16 @@ import module from 'node:module';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import * as url from 'node:url';
|
|
5
5
|
const pluginsCache = new Map();
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
const
|
|
9
|
-
//
|
|
10
|
-
//
|
|
6
|
+
// Memoizes the directory walk that produces the plugin's cache-bust mtime.
|
|
7
|
+
// Cleared in `clearPluginsCache()` so the next load picks up any file edits.
|
|
8
|
+
const pluginMtimeCache = new Map();
|
|
9
|
+
// URL search-param key that does double duty: its presence flags a URL as
|
|
10
|
+
// plugin-scoped (so the global resolve hook only acts on our imports), and
|
|
11
|
+
// its value is the file's mtime in ms (the cache-bust key).
|
|
12
|
+
const PLUGIN_MTIME_PARAM = 'redocly-mtime';
|
|
13
|
+
// `module.registerHooks` is process-wide. The check on `PLUGIN_MTIME_PARAM`
|
|
14
|
+
// scopes our rewrite to plugin imports and propagates it down the graph.
|
|
15
|
+
// Requires Node >=22.15.
|
|
11
16
|
function registerEsmCacheBustHook() {
|
|
12
17
|
if (typeof module.registerHooks !== 'function')
|
|
13
18
|
return;
|
|
@@ -18,12 +23,12 @@ function registerEsmCacheBustHook() {
|
|
|
18
23
|
return result;
|
|
19
24
|
if (!context.parentURL)
|
|
20
25
|
return result;
|
|
21
|
-
if (!new URL(context.parentURL).searchParams.has(
|
|
26
|
+
if (!new URL(context.parentURL).searchParams.has(PLUGIN_MTIME_PARAM))
|
|
22
27
|
return result;
|
|
23
28
|
const childURL = new URL(result.url);
|
|
24
29
|
if (childURL.pathname.includes('/node_modules/'))
|
|
25
30
|
return result;
|
|
26
|
-
if (childURL.searchParams.has(
|
|
31
|
+
if (childURL.searchParams.has(PLUGIN_MTIME_PARAM))
|
|
27
32
|
return result;
|
|
28
33
|
let mtimeMs;
|
|
29
34
|
try {
|
|
@@ -32,18 +37,24 @@ function registerEsmCacheBustHook() {
|
|
|
32
37
|
catch {
|
|
33
38
|
return result;
|
|
34
39
|
}
|
|
35
|
-
childURL.searchParams.set(
|
|
36
|
-
childURL.searchParams.set('v', String(mtimeMs));
|
|
40
|
+
childURL.searchParams.set(PLUGIN_MTIME_PARAM, String(Math.floor(mtimeMs)));
|
|
37
41
|
return { ...result, url: childURL.href, shortCircuit: true };
|
|
38
42
|
},
|
|
39
43
|
});
|
|
40
44
|
}
|
|
41
45
|
registerEsmCacheBustHook();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
function getPluginMtime(entryPath) {
|
|
47
|
+
let mtime = pluginMtimeCache.get(entryPath);
|
|
48
|
+
if (mtime === undefined) {
|
|
49
|
+
mtime = Math.floor(computePluginMaxMtime(entryPath));
|
|
50
|
+
pluginMtimeCache.set(entryPath, mtime);
|
|
51
|
+
}
|
|
52
|
+
return mtime;
|
|
53
|
+
}
|
|
54
|
+
// Largest mtime under the plugin's directory — used as the entry URL's
|
|
55
|
+
// `?redocly-mtime=`. Over-conservative (e.g. README edits also bump it), but
|
|
56
|
+
// unchanged children still reuse their cached graphs via the per-file hook.
|
|
57
|
+
function computePluginMaxMtime(entryPath) {
|
|
47
58
|
// node_modules plugins are immutable for the process — skip the walk.
|
|
48
59
|
if (entryPath.includes(`${path.sep}node_modules${path.sep}`)) {
|
|
49
60
|
return safeMtime(entryPath);
|
|
@@ -112,20 +123,17 @@ function evictPluginFromRequireCache(pluginPath) {
|
|
|
112
123
|
}
|
|
113
124
|
export const clearPluginsCache = () => {
|
|
114
125
|
// CJS: evict matching entries from `require.cache` (skip node_modules).
|
|
115
|
-
// ESM:
|
|
126
|
+
// ESM: drop the mtime map so the next load re-walks the directory; if any
|
|
127
|
+
// file changed on disk, the new `?redocly-mtime=` busts Node's ESM cache.
|
|
116
128
|
for (const pluginPath of pluginsCache.keys()) {
|
|
117
129
|
evictPluginFromRequireCache(pluginPath);
|
|
118
130
|
}
|
|
119
131
|
pluginsCache.clear();
|
|
132
|
+
pluginMtimeCache.clear();
|
|
120
133
|
};
|
|
121
134
|
export async function loadPluginModule(absolutePluginPath) {
|
|
122
135
|
const pluginUrl = url.pathToFileURL(absolutePluginPath);
|
|
123
|
-
|
|
124
|
-
pluginUrl.searchParams.set(PLUGIN_SCOPE_PARAM, '1');
|
|
125
|
-
// Cache key — bumps whenever any file in the plugin changes.
|
|
126
|
-
const version = computePluginVersion(absolutePluginPath);
|
|
127
|
-
if (version)
|
|
128
|
-
pluginUrl.searchParams.set('v', String(version));
|
|
136
|
+
pluginUrl.searchParams.set(PLUGIN_MTIME_PARAM, String(getPluginMtime(absolutePluginPath)));
|
|
129
137
|
// `webpackIgnore` keeps this a native ESM `import()` so bundlers don't
|
|
130
138
|
// rewrite it into their build-time module map.
|
|
131
139
|
return import(/* webpackIgnore: true */ pluginUrl.href);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins-cache.js","sourceRoot":"","sources":["../../src/config/plugins-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,MAAM,YAAY,GAA0B,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins-cache.js","sourceRoot":"","sources":["../../src/config/plugins-cache.ts"],"names":[],"mappings":"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"}
|