@qwik.dev/router 2.0.0-beta.10 → 2.0.0-beta.13
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/adapters/azure-swa/vite/index.cjs +61 -5
- package/lib/adapters/azure-swa/vite/index.mjs +26 -201
- package/lib/adapters/bun-server/vite/index.cjs +27 -5
- package/lib/adapters/bun-server/vite/index.mjs +14 -196
- package/lib/adapters/cloud-run/vite/index.cjs +24 -5
- package/lib/adapters/cloud-run/vite/index.mjs +13 -195
- package/lib/adapters/cloudflare-pages/vite/index.cjs +65 -1
- package/lib/adapters/cloudflare-pages/vite/index.mjs +63 -4
- package/lib/adapters/deno-server/vite/index.cjs +39 -5
- package/lib/adapters/deno-server/vite/index.mjs +16 -198
- package/lib/adapters/netlify-edge/vite/index.cjs +88 -6
- package/lib/adapters/netlify-edge/vite/index.mjs +56 -240
- package/lib/adapters/node-server/vite/index.cjs +27 -5
- package/lib/adapters/node-server/vite/index.mjs +14 -196
- package/lib/adapters/shared/vite/index.cjs +303 -2
- package/lib/adapters/shared/vite/index.d.ts +4 -4
- package/lib/adapters/shared/vite/index.mjs +248 -143
- package/lib/adapters/ssg/vite/index.cjs +19 -5
- package/lib/adapters/ssg/vite/index.mjs +11 -193
- package/lib/adapters/vercel-edge/vite/index.cjs +81 -5
- package/lib/adapters/vercel-edge/vite/index.d.ts +1 -1
- package/lib/adapters/vercel-edge/vite/index.mjs +48 -229
- package/lib/chunks/error-handler.cjs +58 -0
- package/lib/chunks/error-handler.mjs +59 -0
- package/lib/chunks/format-error.cjs +136 -0
- package/lib/chunks/format-error.mjs +137 -0
- package/lib/chunks/fs.cjs +274 -0
- package/lib/chunks/fs.mjs +275 -0
- package/lib/chunks/index.cjs +877 -0
- package/lib/chunks/index.mjs +876 -0
- package/lib/chunks/mime-types.cjs +52 -0
- package/lib/chunks/mime-types.mjs +53 -0
- package/lib/chunks/routing.qwik.cjs +452 -0
- package/lib/chunks/routing.qwik.mjs +453 -0
- package/lib/chunks/types.qwik.cjs +24 -0
- package/lib/chunks/types.qwik.mjs +25 -0
- package/lib/index.d.ts +9 -3
- package/lib/index.qwik.cjs +543 -1001
- package/lib/index.qwik.mjs +512 -972
- package/lib/middleware/aws-lambda/index.cjs +52 -1
- package/lib/middleware/aws-lambda/index.mjs +37 -26
- package/lib/middleware/azure-swa/index.cjs +92 -1
- package/lib/middleware/azure-swa/index.mjs +64 -46
- package/lib/middleware/bun/index.cjs +143 -1
- package/lib/middleware/bun/index.mjs +103 -117
- package/lib/middleware/cloudflare-pages/index.cjs +96 -1
- package/lib/middleware/cloudflare-pages/index.mjs +68 -47
- package/lib/middleware/deno/index.cjs +130 -1
- package/lib/middleware/deno/index.mjs +93 -112
- package/lib/middleware/firebase/index.cjs +33 -1
- package/lib/middleware/firebase/index.mjs +25 -16
- package/lib/middleware/netlify-edge/index.cjs +71 -1
- package/lib/middleware/netlify-edge/index.mjs +52 -36
- package/lib/middleware/node/index.cjs +219 -1
- package/lib/middleware/node/index.mjs +178 -165
- package/lib/middleware/request-handler/index.cjs +1488 -18
- package/lib/middleware/request-handler/index.d.ts +20 -2
- package/lib/middleware/request-handler/index.mjs +1225 -873
- package/lib/middleware/vercel-edge/index.cjs +98 -1
- package/lib/middleware/vercel-edge/index.mjs +71 -47
- package/lib/service-worker/index.cjs +5 -0
- package/lib/service-worker/index.mjs +5 -0
- package/lib/ssg/index.cjs +15 -1
- package/lib/ssg/index.mjs +12 -19
- package/lib/vite/index.cjs +2006 -27
- package/lib/vite/index.d.ts +9 -9
- package/lib/vite/index.mjs +1597 -1216
- package/package.json +9 -8
- package/lib/adapters/azure-swa/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/azure-swa/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/azure-swa/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/azure-swa/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/azure-swa/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/azure-swa/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/bun-server/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/bun-server/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/bun-server/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/bun-server/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/bun-server/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/bun-server/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/cloud-run/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/cloud-run/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/cloud-run/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/cloud-run/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/cloud-run/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/cloud-run/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/cloudflare-pages/vite/index-BIeHg2Cj.cjs +0 -5
- package/lib/adapters/cloudflare-pages/vite/index-C455V8_A.cjs +0 -1
- package/lib/adapters/cloudflare-pages/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/cloudflare-pages/vite/index-D3HITboM.js +0 -645
- package/lib/adapters/cloudflare-pages/vite/index-DKcVHRBy.cjs +0 -11
- package/lib/adapters/cloudflare-pages/vite/index-DwovcBp3.js +0 -22
- package/lib/adapters/cloudflare-pages/vite/index-bogwy7wh.js +0 -250
- package/lib/adapters/cloudflare-pages/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/deno-server/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/deno-server/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/deno-server/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/deno-server/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/deno-server/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/deno-server/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/netlify-edge/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/netlify-edge/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/netlify-edge/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/netlify-edge/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/netlify-edge/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/netlify-edge/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/node-server/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/node-server/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/node-server/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/node-server/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/node-server/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/node-server/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/shared/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/shared/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/shared/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/shared/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/shared/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/shared/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/ssg/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/ssg/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/ssg/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/ssg/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/ssg/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/ssg/vite/index-vQuPcef3.cjs +0 -1
- package/lib/adapters/vercel-edge/vite/index-BqUeglYs.cjs +0 -1
- package/lib/adapters/vercel-edge/vite/index-CBIchDYq.js +0 -651
- package/lib/adapters/vercel-edge/vite/index-ClHGw5z1.js +0 -6
- package/lib/adapters/vercel-edge/vite/index-CrwlB95_.js +0 -22
- package/lib/adapters/vercel-edge/vite/index-DTIOTwZo.cjs +0 -11
- package/lib/adapters/vercel-edge/vite/index-vQuPcef3.cjs +0 -1
- package/lib/service-worker.cjs +0 -1
- package/lib/service-worker.mjs +0 -5
- package/lib/ssg/deno.cjs +0 -1
- package/lib/ssg/deno.mjs +0 -6
- package/lib/ssg/index-CBIchDYq.js +0 -651
- package/lib/ssg/index-ClHGw5z1.js +0 -6
- package/lib/ssg/index-DTIOTwZo.cjs +0 -11
- package/lib/ssg/index-vQuPcef3.cjs +0 -1
- package/lib/ssg/node.cjs +0 -11
- package/lib/ssg/node.mjs +0 -651
|
@@ -1,156 +1,142 @@
|
|
|
1
|
-
import { setServerPlatform
|
|
2
|
-
import { _TextEncoderStream_polyfill
|
|
3
|
-
import { join
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
html: "text/html",
|
|
17
|
-
ico: "image/x-icon",
|
|
18
|
-
jng: "image/x-jng",
|
|
19
|
-
jpeg: "image/jpeg",
|
|
20
|
-
jpg: "image/jpeg",
|
|
21
|
-
js: "application/javascript",
|
|
22
|
-
json: "application/json",
|
|
23
|
-
kar: "audio/midi",
|
|
24
|
-
m4a: "audio/x-m4a",
|
|
25
|
-
m4v: "video/x-m4v",
|
|
26
|
-
mid: "audio/midi",
|
|
27
|
-
midi: "audio/midi",
|
|
28
|
-
mng: "video/x-mng",
|
|
29
|
-
mov: "video/quicktime",
|
|
30
|
-
mp3: "audio/mpeg",
|
|
31
|
-
mp4: "video/mp4",
|
|
32
|
-
mpeg: "video/mpeg",
|
|
33
|
-
mpg: "video/mpeg",
|
|
34
|
-
ogg: "audio/ogg",
|
|
35
|
-
pdf: "application/pdf",
|
|
36
|
-
png: "image/png",
|
|
37
|
-
rar: "application/x-rar-compressed",
|
|
38
|
-
shtml: "text/html",
|
|
39
|
-
svg: "image/svg+xml",
|
|
40
|
-
svgz: "image/svg+xml",
|
|
41
|
-
tif: "image/tiff",
|
|
42
|
-
tiff: "image/tiff",
|
|
43
|
-
ts: "video/mp2t",
|
|
44
|
-
txt: "text/plain",
|
|
45
|
-
wbmp: "image/vnd.wap.wbmp",
|
|
46
|
-
webm: "video/webm",
|
|
47
|
-
webp: "image/webp",
|
|
48
|
-
wmv: "video/x-ms-wmv",
|
|
49
|
-
woff: "font/woff",
|
|
50
|
-
woff2: "font/woff2",
|
|
51
|
-
xml: "text/xml",
|
|
52
|
-
zip: "application/zip"
|
|
53
|
-
};
|
|
54
|
-
function S(i) {
|
|
55
|
-
i.qwikCityPlan && !i.qwikRouterConfig && (console.warn("qwikCityPlan is deprecated. Simply remove it."), i.qwikRouterConfig = i.qwikCityPlan), globalThis.TextEncoderStream ||= w, i.manifest && x(i.manifest);
|
|
56
|
-
const m = i.static?.root ?? s(Bun.fileURLToPath(import.meta.url), "..", "..", "dist");
|
|
57
|
-
async function d(t) {
|
|
1
|
+
import { setServerPlatform } from "@qwik.dev/core/server";
|
|
2
|
+
import { _TextEncoderStream_polyfill, isStaticPath, getNotFound, mergeHeadersCookies, requestHandler } from "@qwik.dev/router/middleware/request-handler";
|
|
3
|
+
import { join, extname } from "node:path";
|
|
4
|
+
import { M as MIME_TYPES } from "../../chunks/mime-types.mjs";
|
|
5
|
+
function createQwikRouter(opts) {
|
|
6
|
+
if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
|
|
7
|
+
console.warn("qwikCityPlan is deprecated. Simply remove it.");
|
|
8
|
+
opts.qwikRouterConfig = opts.qwikCityPlan;
|
|
9
|
+
}
|
|
10
|
+
globalThis.TextEncoderStream || (globalThis.TextEncoderStream = _TextEncoderStream_polyfill);
|
|
11
|
+
if (opts.manifest) {
|
|
12
|
+
setServerPlatform(opts.manifest);
|
|
13
|
+
}
|
|
14
|
+
const staticFolder = opts.static?.root ?? join(Bun.fileURLToPath(import.meta.url), "..", "..", "dist");
|
|
15
|
+
async function router(request) {
|
|
58
16
|
try {
|
|
59
|
-
const
|
|
17
|
+
const url = new URL(request.url);
|
|
18
|
+
const serverRequestEv = {
|
|
60
19
|
mode: "server",
|
|
61
20
|
locale: void 0,
|
|
62
|
-
url
|
|
21
|
+
url,
|
|
63
22
|
env: {
|
|
64
|
-
get(
|
|
65
|
-
return Bun.env[
|
|
23
|
+
get(key) {
|
|
24
|
+
return Bun.env[key];
|
|
66
25
|
}
|
|
67
26
|
},
|
|
68
|
-
request
|
|
69
|
-
getWritableStream: (
|
|
70
|
-
const { readable
|
|
71
|
-
|
|
72
|
-
|
|
27
|
+
request,
|
|
28
|
+
getWritableStream: (status, headers, cookies, resolve) => {
|
|
29
|
+
const { readable, writable } = new TransformStream();
|
|
30
|
+
const response = new Response(readable, {
|
|
31
|
+
status,
|
|
32
|
+
headers: mergeHeadersCookies(headers, cookies)
|
|
73
33
|
});
|
|
74
|
-
|
|
34
|
+
resolve(response);
|
|
35
|
+
return writable;
|
|
75
36
|
},
|
|
76
37
|
platform: {
|
|
77
|
-
ssr:
|
|
38
|
+
ssr: true
|
|
78
39
|
},
|
|
79
|
-
getClientConn: () =>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
40
|
+
getClientConn: () => {
|
|
41
|
+
return opts.getClientConn ? opts.getClientConn(request) : {};
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const handledResponse = await requestHandler(serverRequestEv, opts);
|
|
45
|
+
if (handledResponse) {
|
|
46
|
+
handledResponse.completion.then((v) => {
|
|
47
|
+
if (v) {
|
|
48
|
+
console.error(v);
|
|
49
|
+
}
|
|
84
50
|
});
|
|
85
|
-
const
|
|
86
|
-
if (
|
|
87
|
-
const
|
|
88
|
-
|
|
51
|
+
const response = await handledResponse.response;
|
|
52
|
+
if (response) {
|
|
53
|
+
const status = response.status;
|
|
54
|
+
const location = response.headers.get("Location");
|
|
55
|
+
const isRedirect = status >= 301 && status <= 308 && location;
|
|
56
|
+
if (isRedirect) {
|
|
57
|
+
return new Response(null, response);
|
|
58
|
+
}
|
|
59
|
+
return response;
|
|
89
60
|
}
|
|
90
61
|
}
|
|
91
62
|
return null;
|
|
92
63
|
} catch (e) {
|
|
93
|
-
|
|
64
|
+
console.error(e);
|
|
65
|
+
return new Response(String(e || "Error"), {
|
|
94
66
|
status: 500,
|
|
95
67
|
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "bun-server" }
|
|
96
68
|
});
|
|
97
69
|
}
|
|
98
70
|
}
|
|
99
|
-
const
|
|
71
|
+
const notFound = async (request) => {
|
|
100
72
|
try {
|
|
101
|
-
const
|
|
102
|
-
|
|
73
|
+
const url = new URL(request.url);
|
|
74
|
+
const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || isStaticPath(request.method || "GET", url) ? "Not Found" : getNotFound(url.pathname);
|
|
75
|
+
return new Response(notFoundHtml, {
|
|
103
76
|
status: 404,
|
|
104
|
-
headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found":
|
|
77
|
+
headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
|
|
105
78
|
});
|
|
106
79
|
} catch (e) {
|
|
107
|
-
|
|
80
|
+
console.error(e);
|
|
81
|
+
return new Response(String(e || "Error"), {
|
|
108
82
|
status: 500,
|
|
109
83
|
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "bun-server" }
|
|
110
84
|
});
|
|
111
85
|
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
86
|
+
};
|
|
87
|
+
const openStaticFile = async (url) => {
|
|
88
|
+
const pathname = url.pathname;
|
|
89
|
+
const fileName = pathname.slice(url.pathname.lastIndexOf("/"));
|
|
90
|
+
let filePath;
|
|
91
|
+
if (fileName.includes(".")) {
|
|
92
|
+
filePath = join(staticFolder, pathname);
|
|
93
|
+
} else if (!globalThis.__NO_TRAILING_SLASH__) {
|
|
94
|
+
filePath = join(staticFolder, pathname + "index.html");
|
|
95
|
+
} else {
|
|
96
|
+
filePath = join(staticFolder, pathname, "index.html");
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
filePath,
|
|
100
|
+
content: Bun.file(filePath)
|
|
118
101
|
};
|
|
119
102
|
};
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return new Response("Not Found", {
|
|
130
|
-
status: 404,
|
|
131
|
-
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Not-Found": e.pathname }
|
|
132
|
-
});
|
|
133
|
-
const o = b(a).replace(/^\./, "");
|
|
134
|
-
return new Response(await n.stream(), {
|
|
135
|
-
status: 200,
|
|
136
|
-
headers: {
|
|
137
|
-
"content-type": T[o] || "text/plain; charset=utf-8",
|
|
138
|
-
"Cache-Control": i.static?.cacheControl || "max-age=3600"
|
|
139
|
-
}
|
|
103
|
+
const staticFile = async (request) => {
|
|
104
|
+
try {
|
|
105
|
+
const url = new URL(request.url);
|
|
106
|
+
if (isStaticPath(request.method || "GET", url)) {
|
|
107
|
+
const { filePath, content } = await openStaticFile(url);
|
|
108
|
+
if (!await content.exists()) {
|
|
109
|
+
return new Response("Not Found", {
|
|
110
|
+
status: 404,
|
|
111
|
+
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Not-Found": url.pathname }
|
|
140
112
|
});
|
|
141
113
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
114
|
+
const ext = extname(filePath).replace(/^\./, "");
|
|
115
|
+
return new Response(await content.stream(), {
|
|
116
|
+
status: 200,
|
|
117
|
+
headers: {
|
|
118
|
+
"content-type": MIME_TYPES[ext] || "text/plain; charset=utf-8",
|
|
119
|
+
"Cache-Control": opts.static?.cacheControl || "max-age=3600"
|
|
120
|
+
}
|
|
147
121
|
});
|
|
148
122
|
}
|
|
123
|
+
return null;
|
|
124
|
+
} catch (e) {
|
|
125
|
+
console.error(e);
|
|
126
|
+
return new Response(String(e || "Error"), {
|
|
127
|
+
status: 500,
|
|
128
|
+
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "bun-server" }
|
|
129
|
+
});
|
|
149
130
|
}
|
|
150
131
|
};
|
|
132
|
+
return {
|
|
133
|
+
router,
|
|
134
|
+
notFound,
|
|
135
|
+
staticFile
|
|
136
|
+
};
|
|
151
137
|
}
|
|
152
|
-
const
|
|
138
|
+
const createQwikCity = createQwikRouter;
|
|
153
139
|
export {
|
|
154
|
-
|
|
155
|
-
|
|
140
|
+
createQwikCity,
|
|
141
|
+
createQwikRouter
|
|
156
142
|
};
|
|
@@ -1 +1,96 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const server = require("@qwik.dev/core/server");
|
|
4
|
+
const requestHandler = require("@qwik.dev/router/middleware/request-handler");
|
|
5
|
+
function createQwikRouter(opts) {
|
|
6
|
+
if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
|
|
7
|
+
console.warn("qwikCityPlan is deprecated. Simply remove it.");
|
|
8
|
+
opts.qwikRouterConfig = opts.qwikCityPlan;
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
new globalThis.TextEncoderStream();
|
|
12
|
+
} catch {
|
|
13
|
+
globalThis.TextEncoderStream = requestHandler._TextEncoderStream_polyfill;
|
|
14
|
+
}
|
|
15
|
+
if (opts.manifest) {
|
|
16
|
+
server.setServerPlatform(opts.manifest);
|
|
17
|
+
}
|
|
18
|
+
async function onCloudflarePagesFetch(request, env, ctx) {
|
|
19
|
+
try {
|
|
20
|
+
const url = new URL(request.url);
|
|
21
|
+
if (requestHandler.isStaticPath(request.method, url)) {
|
|
22
|
+
return env.ASSETS.fetch(request);
|
|
23
|
+
}
|
|
24
|
+
const useCache = url.hostname !== "127.0.0.1" && url.hostname !== "localhost" && url.port === "" && request.method === "GET";
|
|
25
|
+
const cacheKey = new Request(url.href, request);
|
|
26
|
+
const cache = useCache ? await caches.open("custom:qwikrouter") : null;
|
|
27
|
+
if (cache) {
|
|
28
|
+
const cachedResponse = await cache.match(cacheKey);
|
|
29
|
+
if (cachedResponse) {
|
|
30
|
+
return cachedResponse;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const serverRequestEv = {
|
|
34
|
+
mode: "server",
|
|
35
|
+
locale: void 0,
|
|
36
|
+
url,
|
|
37
|
+
request,
|
|
38
|
+
env: {
|
|
39
|
+
get(key) {
|
|
40
|
+
return env[key];
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
getWritableStream: (status, headers, cookies, resolve) => {
|
|
44
|
+
const { readable, writable } = new TransformStream();
|
|
45
|
+
const response = new Response(readable, {
|
|
46
|
+
status,
|
|
47
|
+
headers: requestHandler.mergeHeadersCookies(headers, cookies)
|
|
48
|
+
});
|
|
49
|
+
resolve(response);
|
|
50
|
+
return writable;
|
|
51
|
+
},
|
|
52
|
+
getClientConn: () => {
|
|
53
|
+
return {
|
|
54
|
+
ip: request.headers.get("CF-connecting-ip") || "",
|
|
55
|
+
country: request.headers.get("CF-IPCountry") || ""
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
platform: {
|
|
59
|
+
request,
|
|
60
|
+
env,
|
|
61
|
+
ctx
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const handledResponse = await requestHandler.requestHandler(serverRequestEv, opts);
|
|
65
|
+
if (handledResponse) {
|
|
66
|
+
handledResponse.completion.then((v) => {
|
|
67
|
+
if (v) {
|
|
68
|
+
console.error(v);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
const response = await handledResponse.response;
|
|
72
|
+
if (response) {
|
|
73
|
+
if (response.ok && cache && response.headers.has("Cache-Control")) {
|
|
74
|
+
ctx.waitUntil(cache.put(cacheKey, response.clone()));
|
|
75
|
+
}
|
|
76
|
+
return response;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || requestHandler.isStaticPath(request.method || "GET", url) ? "Not Found" : requestHandler.getNotFound(url.pathname);
|
|
80
|
+
return new Response(notFoundHtml, {
|
|
81
|
+
status: 404,
|
|
82
|
+
headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
|
|
83
|
+
});
|
|
84
|
+
} catch (e) {
|
|
85
|
+
console.error(e);
|
|
86
|
+
return new Response(String(e || "Error"), {
|
|
87
|
+
status: 500,
|
|
88
|
+
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "cloudflare-pages" }
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return onCloudflarePagesFetch;
|
|
93
|
+
}
|
|
94
|
+
const createQwikCity = createQwikRouter;
|
|
95
|
+
exports.createQwikCity = createQwikCity;
|
|
96
|
+
exports.createQwikRouter = createQwikRouter;
|
|
@@ -1,75 +1,96 @@
|
|
|
1
|
-
import { setServerPlatform
|
|
2
|
-
import { _TextEncoderStream_polyfill
|
|
3
|
-
function
|
|
4
|
-
|
|
1
|
+
import { setServerPlatform } from "@qwik.dev/core/server";
|
|
2
|
+
import { _TextEncoderStream_polyfill, isStaticPath, mergeHeadersCookies, requestHandler, getNotFound } from "@qwik.dev/router/middleware/request-handler";
|
|
3
|
+
function createQwikRouter(opts) {
|
|
4
|
+
if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
|
|
5
|
+
console.warn("qwikCityPlan is deprecated. Simply remove it.");
|
|
6
|
+
opts.qwikRouterConfig = opts.qwikCityPlan;
|
|
7
|
+
}
|
|
5
8
|
try {
|
|
6
9
|
new globalThis.TextEncoderStream();
|
|
7
10
|
} catch {
|
|
8
|
-
globalThis.TextEncoderStream =
|
|
11
|
+
globalThis.TextEncoderStream = _TextEncoderStream_polyfill;
|
|
12
|
+
}
|
|
13
|
+
if (opts.manifest) {
|
|
14
|
+
setServerPlatform(opts.manifest);
|
|
9
15
|
}
|
|
10
|
-
|
|
11
|
-
async function m(n, s, i) {
|
|
16
|
+
async function onCloudflarePagesFetch(request, env, ctx) {
|
|
12
17
|
try {
|
|
13
|
-
const
|
|
14
|
-
if (
|
|
15
|
-
return
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const url = new URL(request.url);
|
|
19
|
+
if (isStaticPath(request.method, url)) {
|
|
20
|
+
return env.ASSETS.fetch(request);
|
|
21
|
+
}
|
|
22
|
+
const useCache = url.hostname !== "127.0.0.1" && url.hostname !== "localhost" && url.port === "" && request.method === "GET";
|
|
23
|
+
const cacheKey = new Request(url.href, request);
|
|
24
|
+
const cache = useCache ? await caches.open("custom:qwikrouter") : null;
|
|
25
|
+
if (cache) {
|
|
26
|
+
const cachedResponse = await cache.match(cacheKey);
|
|
27
|
+
if (cachedResponse) {
|
|
28
|
+
return cachedResponse;
|
|
29
|
+
}
|
|
21
30
|
}
|
|
22
|
-
const
|
|
31
|
+
const serverRequestEv = {
|
|
23
32
|
mode: "server",
|
|
24
33
|
locale: void 0,
|
|
25
|
-
url
|
|
26
|
-
request
|
|
34
|
+
url,
|
|
35
|
+
request,
|
|
27
36
|
env: {
|
|
28
|
-
get(
|
|
29
|
-
return
|
|
37
|
+
get(key) {
|
|
38
|
+
return env[key];
|
|
30
39
|
}
|
|
31
40
|
},
|
|
32
|
-
getWritableStream: (
|
|
33
|
-
const { readable
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
getWritableStream: (status, headers, cookies, resolve) => {
|
|
42
|
+
const { readable, writable } = new TransformStream();
|
|
43
|
+
const response = new Response(readable, {
|
|
44
|
+
status,
|
|
45
|
+
headers: mergeHeadersCookies(headers, cookies)
|
|
36
46
|
});
|
|
37
|
-
|
|
47
|
+
resolve(response);
|
|
48
|
+
return writable;
|
|
49
|
+
},
|
|
50
|
+
getClientConn: () => {
|
|
51
|
+
return {
|
|
52
|
+
ip: request.headers.get("CF-connecting-ip") || "",
|
|
53
|
+
country: request.headers.get("CF-IPCountry") || ""
|
|
54
|
+
};
|
|
38
55
|
},
|
|
39
|
-
getClientConn: () => ({
|
|
40
|
-
ip: n.headers.get("CF-connecting-ip") || "",
|
|
41
|
-
country: n.headers.get("CF-IPCountry") || ""
|
|
42
|
-
}),
|
|
43
56
|
platform: {
|
|
44
|
-
request
|
|
45
|
-
env
|
|
46
|
-
ctx
|
|
57
|
+
request,
|
|
58
|
+
env,
|
|
59
|
+
ctx
|
|
47
60
|
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
61
|
+
};
|
|
62
|
+
const handledResponse = await requestHandler(serverRequestEv, opts);
|
|
63
|
+
if (handledResponse) {
|
|
64
|
+
handledResponse.completion.then((v) => {
|
|
65
|
+
if (v) {
|
|
66
|
+
console.error(v);
|
|
67
|
+
}
|
|
52
68
|
});
|
|
53
|
-
const
|
|
54
|
-
if (
|
|
55
|
-
|
|
69
|
+
const response = await handledResponse.response;
|
|
70
|
+
if (response) {
|
|
71
|
+
if (response.ok && cache && response.headers.has("Cache-Control")) {
|
|
72
|
+
ctx.waitUntil(cache.put(cacheKey, response.clone()));
|
|
73
|
+
}
|
|
74
|
+
return response;
|
|
75
|
+
}
|
|
56
76
|
}
|
|
57
|
-
const
|
|
58
|
-
return new Response(
|
|
77
|
+
const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || isStaticPath(request.method || "GET", url) ? "Not Found" : getNotFound(url.pathname);
|
|
78
|
+
return new Response(notFoundHtml, {
|
|
59
79
|
status: 404,
|
|
60
|
-
headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found":
|
|
80
|
+
headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
|
|
61
81
|
});
|
|
62
82
|
} catch (e) {
|
|
63
|
-
|
|
83
|
+
console.error(e);
|
|
84
|
+
return new Response(String(e || "Error"), {
|
|
64
85
|
status: 500,
|
|
65
86
|
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "cloudflare-pages" }
|
|
66
87
|
});
|
|
67
88
|
}
|
|
68
89
|
}
|
|
69
|
-
return
|
|
90
|
+
return onCloudflarePagesFetch;
|
|
70
91
|
}
|
|
71
|
-
const
|
|
92
|
+
const createQwikCity = createQwikRouter;
|
|
72
93
|
export {
|
|
73
|
-
|
|
74
|
-
|
|
94
|
+
createQwikCity,
|
|
95
|
+
createQwikRouter
|
|
75
96
|
};
|
|
@@ -1 +1,130 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const server = require("@qwik.dev/core/server");
|
|
4
|
+
const requestHandler = require("@qwik.dev/router/middleware/request-handler");
|
|
5
|
+
const mimeTypes = require("../../chunks/mime-types.cjs");
|
|
6
|
+
const mod_ts = require("https://deno.land/std/path/mod.ts");
|
|
7
|
+
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
8
|
+
function createQwikRouter(opts) {
|
|
9
|
+
if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
|
|
10
|
+
console.warn("qwikCityPlan is deprecated. Simply remove it.");
|
|
11
|
+
opts.qwikRouterConfig = opts.qwikCityPlan;
|
|
12
|
+
}
|
|
13
|
+
if (opts.manifest) {
|
|
14
|
+
server.setServerPlatform(opts.manifest);
|
|
15
|
+
}
|
|
16
|
+
const staticFolder = opts.static?.root ?? mod_ts.join(mod_ts.fromFileUrl(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("middleware/deno/index.cjs", document.baseURI).href), "..", "..", "dist");
|
|
17
|
+
async function router(request, info) {
|
|
18
|
+
try {
|
|
19
|
+
const url = new URL(request.url);
|
|
20
|
+
const serverRequestEv = {
|
|
21
|
+
mode: "server",
|
|
22
|
+
locale: void 0,
|
|
23
|
+
url,
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
env: Deno.env,
|
|
26
|
+
request,
|
|
27
|
+
getWritableStream: (status, headers, cookies, resolve) => {
|
|
28
|
+
const { readable, writable } = new TransformStream();
|
|
29
|
+
const response = new Response(readable, {
|
|
30
|
+
status,
|
|
31
|
+
headers: requestHandler.mergeHeadersCookies(headers, cookies)
|
|
32
|
+
});
|
|
33
|
+
resolve(response);
|
|
34
|
+
return writable;
|
|
35
|
+
},
|
|
36
|
+
platform: {
|
|
37
|
+
ssr: true
|
|
38
|
+
},
|
|
39
|
+
getClientConn: () => {
|
|
40
|
+
return opts.getClientConn ? opts.getClientConn(request, info) : {
|
|
41
|
+
ip: info.remoteAddr.hostname
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const handledResponse = await requestHandler.requestHandler(serverRequestEv, opts);
|
|
46
|
+
if (handledResponse) {
|
|
47
|
+
handledResponse.completion.then((v) => {
|
|
48
|
+
if (v) {
|
|
49
|
+
console.error(v);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const response = await handledResponse.response;
|
|
53
|
+
if (response) {
|
|
54
|
+
return response;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
} catch (e) {
|
|
59
|
+
console.error(e);
|
|
60
|
+
return new Response(String(e || "Error"), {
|
|
61
|
+
status: 500,
|
|
62
|
+
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "deno-server" }
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const notFound = async (request) => {
|
|
67
|
+
try {
|
|
68
|
+
const url = new URL(request.url);
|
|
69
|
+
const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || requestHandler.isStaticPath(request.method || "GET", url) ? "Not Found" : requestHandler.getNotFound(url.pathname);
|
|
70
|
+
return new Response(notFoundHtml, {
|
|
71
|
+
status: 404,
|
|
72
|
+
headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
|
|
73
|
+
});
|
|
74
|
+
} catch (e) {
|
|
75
|
+
console.error(e);
|
|
76
|
+
return new Response(String(e || "Error"), {
|
|
77
|
+
status: 500,
|
|
78
|
+
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "deno-server" }
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const openStaticFile = async (url) => {
|
|
83
|
+
const pathname = url.pathname;
|
|
84
|
+
const fileName = pathname.slice(url.pathname.lastIndexOf("/"));
|
|
85
|
+
let filePath;
|
|
86
|
+
if (fileName.includes(".")) {
|
|
87
|
+
filePath = mod_ts.join(staticFolder, pathname);
|
|
88
|
+
} else if (!globalThis.__NO_TRAILING_SLASH__) {
|
|
89
|
+
filePath = mod_ts.join(staticFolder, pathname + "index.html");
|
|
90
|
+
} else {
|
|
91
|
+
filePath = mod_ts.join(staticFolder, pathname, "index.html");
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
filePath,
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
content: await Deno.open(filePath, { read: true })
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
const staticFile = async (request) => {
|
|
100
|
+
try {
|
|
101
|
+
const url = new URL(request.url);
|
|
102
|
+
if (requestHandler.isStaticPath(request.method || "GET", url)) {
|
|
103
|
+
const { filePath, content } = await openStaticFile(url);
|
|
104
|
+
const ext = mod_ts.extname(filePath).replace(/^\./, "");
|
|
105
|
+
return new Response(content.readable, {
|
|
106
|
+
status: 200,
|
|
107
|
+
headers: {
|
|
108
|
+
"content-type": mimeTypes.MIME_TYPES[ext] || "text/plain; charset=utf-8",
|
|
109
|
+
"Cache-Control": opts.static?.cacheControl || "max-age=3600"
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
} catch (e) {
|
|
115
|
+
console.error(e);
|
|
116
|
+
return new Response(String(e || "Error"), {
|
|
117
|
+
status: 500,
|
|
118
|
+
headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "deno-server" }
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
return {
|
|
123
|
+
router,
|
|
124
|
+
notFound,
|
|
125
|
+
staticFile
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
const createQwikCity = createQwikRouter;
|
|
129
|
+
exports.createQwikCity = createQwikCity;
|
|
130
|
+
exports.createQwikRouter = createQwikRouter;
|