one 1.2.59 → 1.2.61
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/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +4 -44
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js +4 -48
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +5 -62
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.js +4 -48
- package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +4 -44
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +4 -61
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/package.json +9 -9
- package/src/vite/plugins/SSRCSSPlugin.ts +0 -104
- package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
|
@@ -36,43 +36,17 @@ __export(SSRCSSPlugin_exports, {
|
|
|
36
36
|
});
|
|
37
37
|
module.exports = __toCommonJS(SSRCSSPlugin_exports);
|
|
38
38
|
var import_constants = require("../../constants.cjs");
|
|
39
|
-
let cssCache = null,
|
|
40
|
-
routesPreWarmed = !1;
|
|
41
|
-
const CSS_CACHE_TTL = 1e3;
|
|
42
39
|
function SSRCSSPlugin(pluginOpts) {
|
|
43
40
|
let server;
|
|
44
41
|
return {
|
|
45
42
|
name: "one-plugin-ssr-css",
|
|
46
43
|
apply: "serve",
|
|
47
44
|
configureServer(server_) {
|
|
48
|
-
server = server_
|
|
49
|
-
const preWarmRoutes = async () => {
|
|
50
|
-
if (!routesPreWarmed) {
|
|
51
|
-
routesPreWarmed = !0;
|
|
52
|
-
try {
|
|
53
|
-
await server.transformRequest(pluginOpts.entries[0]);
|
|
54
|
-
const routeFiles = await collectRouteFiles(server, pluginOpts.entries);
|
|
55
|
-
await Promise.all(routeFiles.map(file => server.transformRequest(file).catch(() => {}))), process.env.ONE_DEBUG && console.log(`[one] Pre-warmed ${routeFiles.length} route modules for CSS collection`);
|
|
56
|
-
} catch (err) {
|
|
57
|
-
console.error("[one] Error pre-warming routes:", err);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
server.watcher.on("change", () => {
|
|
62
|
-
cssCache = null;
|
|
63
|
-
}), server.middlewares.use(async (req, res, next) => {
|
|
45
|
+
server = server_, server.middlewares.use(async (req, res, next) => {
|
|
64
46
|
if (req.url?.includes(import_constants.VIRTUAL_SSR_CSS_HREF)) {
|
|
65
|
-
|
|
66
|
-
const now = Date.now();
|
|
67
|
-
if (cssCache && now - cssCache.timestamp < CSS_CACHE_TTL) {
|
|
68
|
-
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(cssCache.css), res.end();
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
47
|
+
invalidateModule(server, "\0" + import_constants.VIRTUAL_SSR_CSS_ENTRY + "?direct");
|
|
71
48
|
const code = await collectStyle(server, pluginOpts.entries);
|
|
72
|
-
|
|
73
|
-
css: code,
|
|
74
|
-
timestamp: now
|
|
75
|
-
}, res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
49
|
+
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
76
50
|
return;
|
|
77
51
|
}
|
|
78
52
|
next();
|
|
@@ -171,18 +145,4 @@ async function collectStyleUrls(server, entries) {
|
|
|
171
145
|
}
|
|
172
146
|
return await Promise.all(entries.map(e => server.transformRequest(e))), await Promise.all(entries.map(url => traverse(url))), [...visited].filter(url => url.match(CSS_LANGS_RE));
|
|
173
147
|
}
|
|
174
|
-
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)
|
|
175
|
-
DYNAMIC_IMPORT_RE = /import\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
176
|
-
async function collectRouteFiles(server, entries) {
|
|
177
|
-
const routeFiles = [];
|
|
178
|
-
for (const entry of entries) try {
|
|
179
|
-
const result = await server.transformRequest(entry);
|
|
180
|
-
if (!result?.code) continue;
|
|
181
|
-
let match;
|
|
182
|
-
for (; (match = DYNAMIC_IMPORT_RE.exec(result.code)) !== null;) {
|
|
183
|
-
const importPath = match[1];
|
|
184
|
-
importPath && !importPath.includes("node_modules") && !importPath.startsWith("\0") && !importPath.startsWith("virtual:") && (importPath.endsWith(".tsx") || importPath.endsWith(".ts") || importPath.endsWith(".jsx") || importPath.endsWith(".js")) && routeFiles.push(importPath);
|
|
185
|
-
}
|
|
186
|
-
} catch {}
|
|
187
|
-
return routeFiles;
|
|
188
|
-
}
|
|
148
|
+
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
|
@@ -27,46 +27,17 @@ __export(SSRCSSPlugin_exports, {
|
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(SSRCSSPlugin_exports);
|
|
29
29
|
var import_constants = require("../../constants");
|
|
30
|
-
let cssCache = null, routesPreWarmed = !1;
|
|
31
|
-
const CSS_CACHE_TTL = 1e3;
|
|
32
30
|
function SSRCSSPlugin(pluginOpts) {
|
|
33
31
|
let server;
|
|
34
32
|
return {
|
|
35
33
|
name: "one-plugin-ssr-css",
|
|
36
34
|
apply: "serve",
|
|
37
35
|
configureServer(server_) {
|
|
38
|
-
server = server_
|
|
39
|
-
const preWarmRoutes = async () => {
|
|
40
|
-
if (!routesPreWarmed) {
|
|
41
|
-
routesPreWarmed = !0;
|
|
42
|
-
try {
|
|
43
|
-
await server.transformRequest(pluginOpts.entries[0]);
|
|
44
|
-
const routeFiles = await collectRouteFiles(server, pluginOpts.entries);
|
|
45
|
-
await Promise.all(
|
|
46
|
-
routeFiles.map(
|
|
47
|
-
(file) => server.transformRequest(file).catch(() => {
|
|
48
|
-
})
|
|
49
|
-
)
|
|
50
|
-
), process.env.ONE_DEBUG && console.log(
|
|
51
|
-
`[one] Pre-warmed ${routeFiles.length} route modules for CSS collection`
|
|
52
|
-
);
|
|
53
|
-
} catch (err) {
|
|
54
|
-
console.error("[one] Error pre-warming routes:", err);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
server.watcher.on("change", () => {
|
|
59
|
-
cssCache = null;
|
|
60
|
-
}), server.middlewares.use(async (req, res, next) => {
|
|
36
|
+
server = server_, server.middlewares.use(async (req, res, next) => {
|
|
61
37
|
if (req.url?.includes(import_constants.VIRTUAL_SSR_CSS_HREF)) {
|
|
62
|
-
|
|
63
|
-
const now = Date.now();
|
|
64
|
-
if (cssCache && now - cssCache.timestamp < CSS_CACHE_TTL) {
|
|
65
|
-
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(cssCache.css), res.end();
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
38
|
+
invalidateModule(server, "\0" + import_constants.VIRTUAL_SSR_CSS_ENTRY + "?direct");
|
|
68
39
|
const code = await collectStyle(server, pluginOpts.entries);
|
|
69
|
-
|
|
40
|
+
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
70
41
|
return;
|
|
71
42
|
}
|
|
72
43
|
next();
|
|
@@ -168,20 +139,5 @@ async function collectStyleUrls(server, entries) {
|
|
|
168
139
|
}
|
|
169
140
|
return await Promise.all(entries.map((e) => server.transformRequest(e))), await Promise.all(entries.map((url) => traverse(url))), [...visited].filter((url) => url.match(CSS_LANGS_RE));
|
|
170
141
|
}
|
|
171
|
-
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)
|
|
172
|
-
async function collectRouteFiles(server, entries) {
|
|
173
|
-
const routeFiles = [];
|
|
174
|
-
for (const entry of entries)
|
|
175
|
-
try {
|
|
176
|
-
const result = await server.transformRequest(entry);
|
|
177
|
-
if (!result?.code) continue;
|
|
178
|
-
let match;
|
|
179
|
-
for (; (match = DYNAMIC_IMPORT_RE.exec(result.code)) !== null; ) {
|
|
180
|
-
const importPath = match[1];
|
|
181
|
-
importPath && !importPath.includes("node_modules") && !importPath.startsWith("\0") && !importPath.startsWith("virtual:") && (importPath.endsWith(".tsx") || importPath.endsWith(".ts") || importPath.endsWith(".jsx") || importPath.endsWith(".js")) && routeFiles.push(importPath);
|
|
182
|
-
}
|
|
183
|
-
} catch {
|
|
184
|
-
}
|
|
185
|
-
return routeFiles;
|
|
186
|
-
}
|
|
142
|
+
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
|
187
143
|
//# sourceMappingURL=SSRCSSPlugin.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/vite/plugins/SSRCSSPlugin.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAA4D;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAA4D;AAIrD,SAAS,aAAa,YAA2C;AACtE,MAAI;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,gBAAgB,SAAS;AACvB,eAAS,SAGT,OAAO,YAAY,IAAI,OAAO,KAAK,KAAK,SAAS;AAC/C,YAAI,IAAI,KAAK,SAAS,qCAAoB,GAAG;AAC3C,2BAAiB,QAAQ,OAAO,yCAAwB,SAAS;AAEjE,gBAAM,OAAO,MAAM,aAAa,QAAQ,WAAW,OAAO;AAE1D,cAAI,UAAU,gBAAgB,UAAU,GACxC,IAAI,UAAU,iBAAiB,UAAU,GACzC,IAAI,UAAU,QAAQ,GAAG,GACzB,IAAI,MAAM,IAAI,GACd,IAAI,IAAI;AACR;AAAA,QACF;AACA,aAAK;AAAA,MACP,CAAC;AAAA,IACH;AAAA;AAAA;AAAA,IAIA,UAAU,QAAQ,WAAW,UAAU;AACrC,aAAO,OAAO,WAAW,sCAAqB,IAAI,OAAO,SAAS;AAAA,IACpE;AAAA,IAEA,MAAM,KAAK,IAAI,UAAU;AACvB,UAAI,GAAG,WAAW,OAAO,sCAAqB,GAAG;AAC/C,cAAM,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,oBAAoB;AACrD,YAAI,OAAO,MAAM,aAAa,QAAQ,WAAW,OAAO;AACxD,eAAK,IAAI,aAAa,IAAI,QAAQ,MAChC,OAAO,kBAAkB,KAAK,UAAU,IAAI,CAAC,KAExC;AAAA,MACT;AAAA,IAGF;AAAA;AAAA,IAGA,oBAAoB;AAAA,MAClB,SAAS,YACA;AAAA,QACL;AAAA,UACE,KAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO;AAAA,YACL,KAAK;AAAA,YACL,MAAM;AAAA,YACN,gBAAgB;AAAA,UAClB;AAAA,QACF;AAAA,QAEA;AAAA,UACE,KAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO,EAAE,MAAM,SAAS;AAAA,UACxB;AAAA;AAAA,YAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASrB;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,QAAuB,IAAY;AAC3D,QAAM,MAAM,OAAO,YAAY,cAAc,EAAE;AAC/C,EAAI,OACF,OAAO,YAAY,iBAAiB,GAAG;AAE3C;AAMA,eAAsB,aAAa,QAAuB,SAAmB;AAC3E,QAAM,EAAE,UAAU,IAAI,MAAM,OAAO,cAAc,GAE3C,OAAO,MAAM,iBAAiB,QAAQ,OAAO;AA6BnD,MAAI,OA5BU,MAAM,QAAQ;AAAA,IAC1B,KAAK,IAAI,OAAO,QAAQ;AAEtB,YAAM,QADM,MAAM,OAAO,iBAAiB,MAAM,SAAS,IACvC,QAAQ,IACpB,SAAS,qBAAqB,GAAG;AAEvC,UAAI;AACF,cAAM,SAAS,OAAO,KAAK,IAAI,GACzB,UAAU,IAAI;AAAA,UAClB,OAAO;AAAA,UACP,OAAO;AAAA,UACP,OAAO;AAAA,QACT,GAEM,YAAY,UAAU;AAAA,UAC1B,UAAU;AAAA,UACV,MAAM;AAAA,UACN,GAAG,OAAO,OAAO,IAAI;AAAA,QACvB,CAAC,EAAE,KAAK,SAAS;AAEjB,eAAO,CAAC,QAAQ,SAAS;AAAA,MAC3B,SAAS,KAAK;AACZ,uBAAQ,MAAM,2DAA2D,GAAG,EAAE,GACvE,CAAC,QAAQ,IAAI;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH,GAEgB,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAElD,MAAI;AAEF,UAAM,SAAS,OAAO,KAAK,GAAG,GACxB,UAAU,IAAI,WAAW,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAClF,UAAM,UAAU;AAAA,MACd,UAAU;AAAA,MACV,MAAM;AAAA,MACN,GAAG,OAAO,OAAO,IAAI;AAAA,IACvB,CAAC,EAAE,KAAK,SAAS;AAAA,EACnB,QAAc;AACZ,YAAQ,MAAM,+DAA+D;AAAA,EAC/E;AAEA,SAAO;AACT;AAEA,eAAe,iBACb,QACA,SACmB;AACnB,QAAM,UAAU,oBAAI,IAAY;AAEhC,iBAAe,SAAS,KAAa;AACnC,UAAM,CAAC,EAAE,EAAE,IAAI,MAAM,OAAO,YAAY,WAAW,GAAG;AACtD,QAAI,QAAQ,IAAI,EAAE;AAChB;AAEF,YAAQ,IAAI,EAAE;AACd,UAAM,MAAM,OAAO,YAAY,cAAc,EAAE;AAC/C,IAAK,OAGL,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,aAAa,SAAS,SAAS,GAAG,CAAC,CAAC;AAAA,EACtF;AAGA,eAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAGhE,MAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,GAG9C,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,YAAY,CAAC;AAC7D;AAGA,MAAM,eAAe;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -37,47 +37,19 @@ __export(SSRCSSPlugin_exports, {
|
|
|
37
37
|
collectStyle: () => collectStyle
|
|
38
38
|
});
|
|
39
39
|
module.exports = __toCommonJS(SSRCSSPlugin_exports);
|
|
40
|
-
var import_constants = require("../../constants.native.js")
|
|
41
|
-
cssCache = null,
|
|
42
|
-
routesPreWarmed = !1,
|
|
43
|
-
CSS_CACHE_TTL = 1e3;
|
|
40
|
+
var import_constants = require("../../constants.native.js");
|
|
44
41
|
function SSRCSSPlugin(pluginOpts) {
|
|
45
42
|
var server;
|
|
46
43
|
return {
|
|
47
44
|
name: "one-plugin-ssr-css",
|
|
48
45
|
apply: "serve",
|
|
49
46
|
configureServer(server_) {
|
|
50
|
-
server = server_
|
|
51
|
-
var preWarmRoutes = async function () {
|
|
52
|
-
if (!routesPreWarmed) {
|
|
53
|
-
routesPreWarmed = !0;
|
|
54
|
-
try {
|
|
55
|
-
await server.transformRequest(pluginOpts.entries[0]);
|
|
56
|
-
var routeFiles = await collectRouteFiles(server, pluginOpts.entries);
|
|
57
|
-
await Promise.all(routeFiles.map(function (file) {
|
|
58
|
-
return server.transformRequest(file).catch(function () {});
|
|
59
|
-
})), process.env.ONE_DEBUG && console.log(`[one] Pre-warmed ${routeFiles.length} route modules for CSS collection`);
|
|
60
|
-
} catch (err) {
|
|
61
|
-
console.error("[one] Error pre-warming routes:", err);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
server.watcher.on("change", function () {
|
|
66
|
-
cssCache = null;
|
|
67
|
-
}), server.middlewares.use(async function (req, res, next) {
|
|
47
|
+
server = server_, server.middlewares.use(async function (req, res, next) {
|
|
68
48
|
var _req_url;
|
|
69
49
|
if (!((_req_url = req.url) === null || _req_url === void 0) && _req_url.includes(import_constants.VIRTUAL_SSR_CSS_HREF)) {
|
|
70
|
-
|
|
71
|
-
var now = Date.now();
|
|
72
|
-
if (cssCache && now - cssCache.timestamp < CSS_CACHE_TTL) {
|
|
73
|
-
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(cssCache.css), res.end();
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
50
|
+
invalidateModule(server, "\0" + import_constants.VIRTUAL_SSR_CSS_ENTRY + "?direct");
|
|
76
51
|
var code = await collectStyle(server, pluginOpts.entries);
|
|
77
|
-
|
|
78
|
-
css: code,
|
|
79
|
-
timestamp: now
|
|
80
|
-
}, res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
52
|
+
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
81
53
|
return;
|
|
82
54
|
}
|
|
83
55
|
next();
|
|
@@ -189,34 +161,5 @@ async function collectStyleUrls(server, entries) {
|
|
|
189
161
|
return url.match(CSS_LANGS_RE);
|
|
190
162
|
});
|
|
191
163
|
}
|
|
192
|
-
var CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)
|
|
193
|
-
DYNAMIC_IMPORT_RE = /import\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
194
|
-
async function collectRouteFiles(server, entries) {
|
|
195
|
-
var routeFiles = [],
|
|
196
|
-
_iteratorNormalCompletion = !0,
|
|
197
|
-
_didIteratorError = !1,
|
|
198
|
-
_iteratorError = void 0;
|
|
199
|
-
try {
|
|
200
|
-
for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
201
|
-
var entry = _step.value;
|
|
202
|
-
try {
|
|
203
|
-
var result = await server.transformRequest(entry);
|
|
204
|
-
if (!result?.code) continue;
|
|
205
|
-
for (var match = void 0; (match = DYNAMIC_IMPORT_RE.exec(result.code)) !== null;) {
|
|
206
|
-
var importPath = match[1];
|
|
207
|
-
importPath && !importPath.includes("node_modules") && !importPath.startsWith("\0") && !importPath.startsWith("virtual:") && (importPath.endsWith(".tsx") || importPath.endsWith(".ts") || importPath.endsWith(".jsx") || importPath.endsWith(".js")) && routeFiles.push(importPath);
|
|
208
|
-
}
|
|
209
|
-
} catch {}
|
|
210
|
-
}
|
|
211
|
-
} catch (err) {
|
|
212
|
-
_didIteratorError = !0, _iteratorError = err;
|
|
213
|
-
} finally {
|
|
214
|
-
try {
|
|
215
|
-
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
216
|
-
} finally {
|
|
217
|
-
if (_didIteratorError) throw _iteratorError;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
return routeFiles;
|
|
221
|
-
}
|
|
164
|
+
var CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
|
222
165
|
//# sourceMappingURL=SSRCSSPlugin.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","SSRCSSPlugin_exports","__export","SSRCSSPlugin","collectStyle","module","exports","import_constants","require","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","SSRCSSPlugin_exports","__export","SSRCSSPlugin","collectStyle","module","exports","import_constants","require","pluginOpts","server","name","apply","configureServer","server_","middlewares","use","req","res","next","_req_url","url","includes","VIRTUAL_SSR_CSS_HREF","invalidateModule","VIRTUAL_SSR_CSS_ENTRY","code","entries","setHeader","write","end","resolveId","source","_importer","_options","startsWith","load","id","URL","slice","searchParams","has","JSON","stringify","transformIndexHtml","handler","tag","injectTo","attrs","rel","href","type","children","moduleGraph","getModuleById","transform","urls","collectStyleUrls","codes","Promise","all","map","transformRequest","prefix","buffer2","Buffer","from","codeOut2","Uint8Array","buffer","byteOffset","byteLength","processed","filename","config","css","lightningcss","toString","err","console","error","out","flat","filter","Boolean","join","codeOut","visited","Set","traverse","resolveUrl","add","importedModules"],"sources":["../../../../src/vite/plugins/SSRCSSPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,44 +1,15 @@
|
|
|
1
1
|
import { VIRTUAL_SSR_CSS_ENTRY, VIRTUAL_SSR_CSS_HREF } from "../../constants";
|
|
2
|
-
let cssCache = null, routesPreWarmed = !1;
|
|
3
|
-
const CSS_CACHE_TTL = 1e3;
|
|
4
2
|
function SSRCSSPlugin(pluginOpts) {
|
|
5
3
|
let server;
|
|
6
4
|
return {
|
|
7
5
|
name: "one-plugin-ssr-css",
|
|
8
6
|
apply: "serve",
|
|
9
7
|
configureServer(server_) {
|
|
10
|
-
server = server_
|
|
11
|
-
const preWarmRoutes = async () => {
|
|
12
|
-
if (!routesPreWarmed) {
|
|
13
|
-
routesPreWarmed = !0;
|
|
14
|
-
try {
|
|
15
|
-
await server.transformRequest(pluginOpts.entries[0]);
|
|
16
|
-
const routeFiles = await collectRouteFiles(server, pluginOpts.entries);
|
|
17
|
-
await Promise.all(
|
|
18
|
-
routeFiles.map(
|
|
19
|
-
(file) => server.transformRequest(file).catch(() => {
|
|
20
|
-
})
|
|
21
|
-
)
|
|
22
|
-
), process.env.ONE_DEBUG && console.log(
|
|
23
|
-
`[one] Pre-warmed ${routeFiles.length} route modules for CSS collection`
|
|
24
|
-
);
|
|
25
|
-
} catch (err) {
|
|
26
|
-
console.error("[one] Error pre-warming routes:", err);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
server.watcher.on("change", () => {
|
|
31
|
-
cssCache = null;
|
|
32
|
-
}), server.middlewares.use(async (req, res, next) => {
|
|
8
|
+
server = server_, server.middlewares.use(async (req, res, next) => {
|
|
33
9
|
if (req.url?.includes(VIRTUAL_SSR_CSS_HREF)) {
|
|
34
|
-
|
|
35
|
-
const now = Date.now();
|
|
36
|
-
if (cssCache && now - cssCache.timestamp < CSS_CACHE_TTL) {
|
|
37
|
-
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(cssCache.css), res.end();
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
10
|
+
invalidateModule(server, "\0" + VIRTUAL_SSR_CSS_ENTRY + "?direct");
|
|
40
11
|
const code = await collectStyle(server, pluginOpts.entries);
|
|
41
|
-
|
|
12
|
+
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
42
13
|
return;
|
|
43
14
|
}
|
|
44
15
|
next();
|
|
@@ -140,22 +111,7 @@ async function collectStyleUrls(server, entries) {
|
|
|
140
111
|
}
|
|
141
112
|
return await Promise.all(entries.map((e) => server.transformRequest(e))), await Promise.all(entries.map((url) => traverse(url))), [...visited].filter((url) => url.match(CSS_LANGS_RE));
|
|
142
113
|
}
|
|
143
|
-
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)
|
|
144
|
-
async function collectRouteFiles(server, entries) {
|
|
145
|
-
const routeFiles = [];
|
|
146
|
-
for (const entry of entries)
|
|
147
|
-
try {
|
|
148
|
-
const result = await server.transformRequest(entry);
|
|
149
|
-
if (!result?.code) continue;
|
|
150
|
-
let match;
|
|
151
|
-
for (; (match = DYNAMIC_IMPORT_RE.exec(result.code)) !== null; ) {
|
|
152
|
-
const importPath = match[1];
|
|
153
|
-
importPath && !importPath.includes("node_modules") && !importPath.startsWith("\0") && !importPath.startsWith("virtual:") && (importPath.endsWith(".tsx") || importPath.endsWith(".ts") || importPath.endsWith(".jsx") || importPath.endsWith(".js")) && routeFiles.push(importPath);
|
|
154
|
-
}
|
|
155
|
-
} catch {
|
|
156
|
-
}
|
|
157
|
-
return routeFiles;
|
|
158
|
-
}
|
|
114
|
+
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
|
159
115
|
export {
|
|
160
116
|
SSRCSSPlugin,
|
|
161
117
|
collectStyle
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/vite/plugins/SSRCSSPlugin.ts"],
|
|
4
|
-
"mappings": "AACA,SAAS,uBAAuB,4BAA4B;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,41 +1,15 @@
|
|
|
1
1
|
import { VIRTUAL_SSR_CSS_ENTRY, VIRTUAL_SSR_CSS_HREF } from "../../constants.mjs";
|
|
2
|
-
let cssCache = null,
|
|
3
|
-
routesPreWarmed = !1;
|
|
4
|
-
const CSS_CACHE_TTL = 1e3;
|
|
5
2
|
function SSRCSSPlugin(pluginOpts) {
|
|
6
3
|
let server;
|
|
7
4
|
return {
|
|
8
5
|
name: "one-plugin-ssr-css",
|
|
9
6
|
apply: "serve",
|
|
10
7
|
configureServer(server_) {
|
|
11
|
-
server = server_
|
|
12
|
-
const preWarmRoutes = async () => {
|
|
13
|
-
if (!routesPreWarmed) {
|
|
14
|
-
routesPreWarmed = !0;
|
|
15
|
-
try {
|
|
16
|
-
await server.transformRequest(pluginOpts.entries[0]);
|
|
17
|
-
const routeFiles = await collectRouteFiles(server, pluginOpts.entries);
|
|
18
|
-
await Promise.all(routeFiles.map(file => server.transformRequest(file).catch(() => {}))), process.env.ONE_DEBUG && console.log(`[one] Pre-warmed ${routeFiles.length} route modules for CSS collection`);
|
|
19
|
-
} catch (err) {
|
|
20
|
-
console.error("[one] Error pre-warming routes:", err);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
server.watcher.on("change", () => {
|
|
25
|
-
cssCache = null;
|
|
26
|
-
}), server.middlewares.use(async (req, res, next) => {
|
|
8
|
+
server = server_, server.middlewares.use(async (req, res, next) => {
|
|
27
9
|
if (req.url?.includes(VIRTUAL_SSR_CSS_HREF)) {
|
|
28
|
-
|
|
29
|
-
const now = Date.now();
|
|
30
|
-
if (cssCache && now - cssCache.timestamp < CSS_CACHE_TTL) {
|
|
31
|
-
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(cssCache.css), res.end();
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
10
|
+
invalidateModule(server, "\0" + VIRTUAL_SSR_CSS_ENTRY + "?direct");
|
|
34
11
|
const code = await collectStyle(server, pluginOpts.entries);
|
|
35
|
-
|
|
36
|
-
css: code,
|
|
37
|
-
timestamp: now
|
|
38
|
-
}, res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
12
|
+
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
39
13
|
return;
|
|
40
14
|
}
|
|
41
15
|
next();
|
|
@@ -134,20 +108,6 @@ async function collectStyleUrls(server, entries) {
|
|
|
134
108
|
}
|
|
135
109
|
return await Promise.all(entries.map(e => server.transformRequest(e))), await Promise.all(entries.map(url => traverse(url))), [...visited].filter(url => url.match(CSS_LANGS_RE));
|
|
136
110
|
}
|
|
137
|
-
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)
|
|
138
|
-
DYNAMIC_IMPORT_RE = /import\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
139
|
-
async function collectRouteFiles(server, entries) {
|
|
140
|
-
const routeFiles = [];
|
|
141
|
-
for (const entry of entries) try {
|
|
142
|
-
const result = await server.transformRequest(entry);
|
|
143
|
-
if (!result?.code) continue;
|
|
144
|
-
let match;
|
|
145
|
-
for (; (match = DYNAMIC_IMPORT_RE.exec(result.code)) !== null;) {
|
|
146
|
-
const importPath = match[1];
|
|
147
|
-
importPath && !importPath.includes("node_modules") && !importPath.startsWith("\0") && !importPath.startsWith("virtual:") && (importPath.endsWith(".tsx") || importPath.endsWith(".ts") || importPath.endsWith(".jsx") || importPath.endsWith(".js")) && routeFiles.push(importPath);
|
|
148
|
-
}
|
|
149
|
-
} catch {}
|
|
150
|
-
return routeFiles;
|
|
151
|
-
}
|
|
111
|
+
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
|
152
112
|
export { SSRCSSPlugin, collectStyle };
|
|
153
113
|
//# sourceMappingURL=SSRCSSPlugin.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","
|
|
1
|
+
{"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","SSRCSSPlugin","pluginOpts","server","name","apply","configureServer","server_","middlewares","use","req","res","next","url","includes","invalidateModule","code","collectStyle","entries","setHeader","write","end","resolveId","source","_importer","_options","startsWith","load","id","URL","slice","searchParams","has","JSON","stringify","transformIndexHtml","handler","tag","injectTo","attrs","rel","href","type","children","mod","moduleGraph","getModuleById","transform","urls","collectStyleUrls","out","Promise","all","map","transformRequest","prefix","buffer","Buffer","from","codeOut","Uint8Array","byteOffset","byteLength","processed","filename","config","css","lightningcss","toString","err","console","error","flat","filter","Boolean","join","visited","Set","traverse","resolveUrl","add","importedModules","childMod","e","match","CSS_LANGS_RE"],"sources":["../../../../src/vite/plugins/SSRCSSPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,44 +1,16 @@
|
|
|
1
1
|
import { VIRTUAL_SSR_CSS_ENTRY, VIRTUAL_SSR_CSS_HREF } from "../../constants.native.js";
|
|
2
|
-
var cssCache = null,
|
|
3
|
-
routesPreWarmed = !1,
|
|
4
|
-
CSS_CACHE_TTL = 1e3;
|
|
5
2
|
function SSRCSSPlugin(pluginOpts) {
|
|
6
3
|
var server;
|
|
7
4
|
return {
|
|
8
5
|
name: "one-plugin-ssr-css",
|
|
9
6
|
apply: "serve",
|
|
10
7
|
configureServer(server_) {
|
|
11
|
-
server = server_
|
|
12
|
-
var preWarmRoutes = async function () {
|
|
13
|
-
if (!routesPreWarmed) {
|
|
14
|
-
routesPreWarmed = !0;
|
|
15
|
-
try {
|
|
16
|
-
await server.transformRequest(pluginOpts.entries[0]);
|
|
17
|
-
var routeFiles = await collectRouteFiles(server, pluginOpts.entries);
|
|
18
|
-
await Promise.all(routeFiles.map(function (file) {
|
|
19
|
-
return server.transformRequest(file).catch(function () {});
|
|
20
|
-
})), process.env.ONE_DEBUG && console.log(`[one] Pre-warmed ${routeFiles.length} route modules for CSS collection`);
|
|
21
|
-
} catch (err) {
|
|
22
|
-
console.error("[one] Error pre-warming routes:", err);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
server.watcher.on("change", function () {
|
|
27
|
-
cssCache = null;
|
|
28
|
-
}), server.middlewares.use(async function (req, res, next) {
|
|
8
|
+
server = server_, server.middlewares.use(async function (req, res, next) {
|
|
29
9
|
var _req_url;
|
|
30
10
|
if (!((_req_url = req.url) === null || _req_url === void 0) && _req_url.includes(VIRTUAL_SSR_CSS_HREF)) {
|
|
31
|
-
|
|
32
|
-
var now = Date.now();
|
|
33
|
-
if (cssCache && now - cssCache.timestamp < CSS_CACHE_TTL) {
|
|
34
|
-
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(cssCache.css), res.end();
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
11
|
+
invalidateModule(server, "\0" + VIRTUAL_SSR_CSS_ENTRY + "?direct");
|
|
37
12
|
var code = await collectStyle(server, pluginOpts.entries);
|
|
38
|
-
|
|
39
|
-
css: code,
|
|
40
|
-
timestamp: now
|
|
41
|
-
}, res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
13
|
+
res.setHeader("Content-Type", "text/css"), res.setHeader("Cache-Control", "no-store"), res.setHeader("Vary", "*"), res.write(code), res.end();
|
|
42
14
|
return;
|
|
43
15
|
}
|
|
44
16
|
next();
|
|
@@ -150,35 +122,6 @@ async function collectStyleUrls(server, entries) {
|
|
|
150
122
|
return url.match(CSS_LANGS_RE);
|
|
151
123
|
});
|
|
152
124
|
}
|
|
153
|
-
var CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)
|
|
154
|
-
DYNAMIC_IMPORT_RE = /import\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g;
|
|
155
|
-
async function collectRouteFiles(server, entries) {
|
|
156
|
-
var routeFiles = [],
|
|
157
|
-
_iteratorNormalCompletion = !0,
|
|
158
|
-
_didIteratorError = !1,
|
|
159
|
-
_iteratorError = void 0;
|
|
160
|
-
try {
|
|
161
|
-
for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
162
|
-
var entry = _step.value;
|
|
163
|
-
try {
|
|
164
|
-
var result = await server.transformRequest(entry);
|
|
165
|
-
if (!result?.code) continue;
|
|
166
|
-
for (var match = void 0; (match = DYNAMIC_IMPORT_RE.exec(result.code)) !== null;) {
|
|
167
|
-
var importPath = match[1];
|
|
168
|
-
importPath && !importPath.includes("node_modules") && !importPath.startsWith("\0") && !importPath.startsWith("virtual:") && (importPath.endsWith(".tsx") || importPath.endsWith(".ts") || importPath.endsWith(".jsx") || importPath.endsWith(".js")) && routeFiles.push(importPath);
|
|
169
|
-
}
|
|
170
|
-
} catch {}
|
|
171
|
-
}
|
|
172
|
-
} catch (err) {
|
|
173
|
-
_didIteratorError = !0, _iteratorError = err;
|
|
174
|
-
} finally {
|
|
175
|
-
try {
|
|
176
|
-
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
177
|
-
} finally {
|
|
178
|
-
if (_didIteratorError) throw _iteratorError;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return routeFiles;
|
|
182
|
-
}
|
|
125
|
+
var CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
|
183
126
|
export { SSRCSSPlugin, collectStyle };
|
|
184
127
|
//# sourceMappingURL=SSRCSSPlugin.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","
|
|
1
|
+
{"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","SSRCSSPlugin","pluginOpts","server","name","apply","configureServer","server_","middlewares","use","req","res","next","_req_url","url","includes","invalidateModule","code","collectStyle","entries","setHeader","write","end","resolveId","source","_importer","_options","startsWith","load","id","URL","slice","searchParams","has","JSON","stringify","transformIndexHtml","handler","tag","injectTo","attrs","rel","href","type","children","mod","moduleGraph","getModuleById","transform","urls","collectStyleUrls","codes","Promise","all","map","transformRequest","prefix","buffer2","Buffer","from","codeOut2","Uint8Array","buffer","byteOffset","byteLength","processed","filename","config","css","lightningcss","toString","err","console","error","out","flat","filter","Boolean","join","codeOut","visited","Set","traverse","resolveUrl","add","importedModules","childMod"],"sources":["../../../../src/vite/plugins/SSRCSSPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.61",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -135,17 +135,17 @@
|
|
|
135
135
|
"@react-navigation/routers": "~7.5.1",
|
|
136
136
|
"@swc/core": "^1.14.0",
|
|
137
137
|
"@ungap/structured-clone": "^1.2.0",
|
|
138
|
-
"@vxrn/color-scheme": "
|
|
139
|
-
"@vxrn/compiler": "
|
|
140
|
-
"@vxrn/resolve": "
|
|
141
|
-
"@vxrn/tslib-lite": "
|
|
142
|
-
"@vxrn/use-isomorphic-layout-effect": "
|
|
143
|
-
"@vxrn/vite-plugin-metro": "
|
|
138
|
+
"@vxrn/color-scheme": "1.2.61",
|
|
139
|
+
"@vxrn/compiler": "1.2.61",
|
|
140
|
+
"@vxrn/resolve": "1.2.61",
|
|
141
|
+
"@vxrn/tslib-lite": "1.2.61",
|
|
142
|
+
"@vxrn/use-isomorphic-layout-effect": "1.2.61",
|
|
143
|
+
"@vxrn/vite-plugin-metro": "1.2.61",
|
|
144
144
|
"babel-dead-code-elimination": "1.0.10",
|
|
145
145
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
146
146
|
"citty": "^0.1.6",
|
|
147
147
|
"core-js": "^3.38.1",
|
|
148
|
-
"create-vxrn": "
|
|
148
|
+
"create-vxrn": "1.2.61",
|
|
149
149
|
"escape-string-regexp": "^5.0.0",
|
|
150
150
|
"expo-linking": "~8.0.8",
|
|
151
151
|
"expo-modules-core": "~3.0.24",
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"vite": "7.1.12",
|
|
174
174
|
"vite-plugin-barrel": "^0.4.1",
|
|
175
175
|
"vite-tsconfig-paths": "^5.1.4",
|
|
176
|
-
"vxrn": "
|
|
176
|
+
"vxrn": "1.2.61",
|
|
177
177
|
"ws": "^8.18.0",
|
|
178
178
|
"xxhashjs": "^0.2.2"
|
|
179
179
|
},
|
|
@@ -3,11 +3,6 @@ import { VIRTUAL_SSR_CSS_ENTRY, VIRTUAL_SSR_CSS_HREF } from '../../constants'
|
|
|
3
3
|
|
|
4
4
|
// thanks to hi-ogawa https://github.com/hi-ogawa/vite-plugins/tree/main/packages/ssr-css
|
|
5
5
|
|
|
6
|
-
// Track if we've pre-warmed routes and cached CSS
|
|
7
|
-
let cssCache: { css: string; timestamp: number } | null = null
|
|
8
|
-
let routesPreWarmed = false
|
|
9
|
-
const CSS_CACHE_TTL = 1000 // 1 second cache for dev mode
|
|
10
|
-
|
|
11
6
|
export function SSRCSSPlugin(pluginOpts: { entries: string[] }): Plugin {
|
|
12
7
|
let server: ViteDevServer
|
|
13
8
|
|
|
@@ -17,64 +12,12 @@ export function SSRCSSPlugin(pluginOpts: { entries: string[] }): Plugin {
|
|
|
17
12
|
configureServer(server_) {
|
|
18
13
|
server = server_
|
|
19
14
|
|
|
20
|
-
// Pre-warm route modules on first request to populate the module graph
|
|
21
|
-
// This ensures CSS from all routes is collected even for lazy imports
|
|
22
|
-
const preWarmRoutes = async () => {
|
|
23
|
-
if (routesPreWarmed) return
|
|
24
|
-
routesPreWarmed = true
|
|
25
|
-
|
|
26
|
-
try {
|
|
27
|
-
// Transform the virtual entry to get route module paths
|
|
28
|
-
await server.transformRequest(pluginOpts.entries[0])
|
|
29
|
-
|
|
30
|
-
// Get all route files from the module graph
|
|
31
|
-
const routeFiles = await collectRouteFiles(server, pluginOpts.entries)
|
|
32
|
-
|
|
33
|
-
// Transform each route file to warm its CSS dependencies
|
|
34
|
-
await Promise.all(
|
|
35
|
-
routeFiles.map((file) =>
|
|
36
|
-
server.transformRequest(file).catch(() => {
|
|
37
|
-
// Ignore errors - some routes may have issues
|
|
38
|
-
})
|
|
39
|
-
)
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
if (process.env.ONE_DEBUG) {
|
|
43
|
-
console.log(
|
|
44
|
-
`[one] Pre-warmed ${routeFiles.length} route modules for CSS collection`
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
} catch (err) {
|
|
48
|
-
console.error('[one] Error pre-warming routes:', err)
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Invalidate CSS cache on HMR
|
|
53
|
-
server.watcher.on('change', () => {
|
|
54
|
-
cssCache = null
|
|
55
|
-
})
|
|
56
|
-
|
|
57
15
|
// invalidate virtual modules for each direct request
|
|
58
16
|
server.middlewares.use(async (req, res, next) => {
|
|
59
17
|
if (req.url?.includes(VIRTUAL_SSR_CSS_HREF)) {
|
|
60
|
-
// Pre-warm routes on first CSS request
|
|
61
|
-
await preWarmRoutes()
|
|
62
|
-
|
|
63
18
|
invalidateModule(server, '\0' + VIRTUAL_SSR_CSS_ENTRY + '?direct')
|
|
64
19
|
|
|
65
|
-
// Use cached CSS if fresh
|
|
66
|
-
const now = Date.now()
|
|
67
|
-
if (cssCache && now - cssCache.timestamp < CSS_CACHE_TTL) {
|
|
68
|
-
res.setHeader('Content-Type', 'text/css')
|
|
69
|
-
res.setHeader('Cache-Control', 'no-store')
|
|
70
|
-
res.setHeader('Vary', '*')
|
|
71
|
-
res.write(cssCache.css)
|
|
72
|
-
res.end()
|
|
73
|
-
return
|
|
74
|
-
}
|
|
75
|
-
|
|
76
20
|
const code = await collectStyle(server, pluginOpts.entries)
|
|
77
|
-
cssCache = { css: code, timestamp: now }
|
|
78
21
|
|
|
79
22
|
res.setHeader('Content-Type', 'text/css')
|
|
80
23
|
res.setHeader('Cache-Control', 'no-store')
|
|
@@ -232,50 +175,3 @@ async function collectStyleUrls(
|
|
|
232
175
|
|
|
233
176
|
// cf. https://github.com/vitejs/vite/blob/d6bde8b03d433778aaed62afc2be0630c8131908/packages/vite/src/node/constants.ts#L49C23-L50
|
|
234
177
|
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/
|
|
235
|
-
|
|
236
|
-
// Match route files from dynamic imports in virtual entry
|
|
237
|
-
// Vite transforms import.meta.glob to:
|
|
238
|
-
// const routes = { "./path/to/file.tsx": () => import("./path/to/file.tsx") }
|
|
239
|
-
const DYNAMIC_IMPORT_RE = /import\s*\(\s*["'`]([^"'`]+)["'`]\s*\)/g
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Collect all route file paths from the module graph.
|
|
243
|
-
* This is used to pre-warm route modules so their CSS is included.
|
|
244
|
-
*/
|
|
245
|
-
async function collectRouteFiles(
|
|
246
|
-
server: ViteDevServer,
|
|
247
|
-
entries: string[]
|
|
248
|
-
): Promise<string[]> {
|
|
249
|
-
const routeFiles: string[] = []
|
|
250
|
-
|
|
251
|
-
for (const entry of entries) {
|
|
252
|
-
try {
|
|
253
|
-
// Get the transformed code for the entry
|
|
254
|
-
const result = await server.transformRequest(entry)
|
|
255
|
-
if (!result?.code) continue
|
|
256
|
-
|
|
257
|
-
// Extract dynamic import paths from the transformed code
|
|
258
|
-
let match
|
|
259
|
-
while ((match = DYNAMIC_IMPORT_RE.exec(result.code)) !== null) {
|
|
260
|
-
const importPath = match[1]
|
|
261
|
-
// Only include actual route files, not node_modules or virtual
|
|
262
|
-
if (
|
|
263
|
-
importPath &&
|
|
264
|
-
!importPath.includes('node_modules') &&
|
|
265
|
-
!importPath.startsWith('\0') &&
|
|
266
|
-
!importPath.startsWith('virtual:') &&
|
|
267
|
-
(importPath.endsWith('.tsx') ||
|
|
268
|
-
importPath.endsWith('.ts') ||
|
|
269
|
-
importPath.endsWith('.jsx') ||
|
|
270
|
-
importPath.endsWith('.js'))
|
|
271
|
-
) {
|
|
272
|
-
routeFiles.push(importPath)
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
} catch {
|
|
276
|
-
// Ignore errors
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
return routeFiles
|
|
281
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSRCSSPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/SSRCSSPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"SSRCSSPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/SSRCSSPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAKjD,wBAAgB,YAAY,CAAC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CA8EtE;AAaD,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,mBAgD1E"}
|