@janit/fu 0.0.4 → 0.2.1
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/README.md +56 -21
- package/dist/app.d.ts +0 -2
- package/dist/app.js +0 -4
- package/dist/app.js.map +1 -1
- package/dist/build.d.ts +0 -2
- package/dist/build.js +10 -85
- package/dist/build.js.map +1 -1
- package/dist/cli.js +7 -7
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +7 -1
- package/dist/client.js +18 -7
- package/dist/client.js.map +1 -1
- package/dist/dev.d.ts +8 -0
- package/dist/dev.js +53 -63
- package/dist/dev.js.map +1 -1
- package/dist/driver.d.ts +66 -0
- package/dist/driver.js +181 -0
- package/dist/driver.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.js +10 -5
- package/dist/errors.js.map +1 -1
- package/dist/hmr-runtime.js +24 -20
- package/dist/plugins.d.ts +7 -24
- package/dist/plugins.js +18 -58
- package/dist/plugins.js.map +1 -1
- package/dist/render.d.ts +10 -5
- package/dist/render.js +13 -11
- package/dist/render.js.map +1 -1
- package/dist/router.d.ts +17 -0
- package/dist/router.js +72 -12
- package/dist/router.js.map +1 -1
- package/package.json +6 -6
package/dist/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type ComponentType } from "preact";
|
|
2
|
-
import type
|
|
1
|
+
import { type ComponentChildren, type ComponentType } from "preact";
|
|
2
|
+
import { type App } from "./app.js";
|
|
3
3
|
import type { Assets, Ctx, Head, RouteManifest } from "./types.js";
|
|
4
4
|
/** Optional root wrapper (`routes/_app.tsx`) around every page. */
|
|
5
5
|
export interface ShellProps<S = Record<string, unknown>> {
|
|
6
6
|
ctx: Ctx<S>;
|
|
7
|
-
children:
|
|
7
|
+
children: ComponentChildren;
|
|
8
8
|
}
|
|
9
9
|
export interface HandlerParts<S> {
|
|
10
10
|
manifest: RouteManifest<S>;
|
|
@@ -30,8 +30,13 @@ export declare function createHandler<S = Record<string, unknown>>(parts: Handle
|
|
|
30
30
|
/**
|
|
31
31
|
* Turn a failure into a response. Rendered through `routes/_error.tsx` when the
|
|
32
32
|
* project has one, so it inherits the app's markup and styling; otherwise plain
|
|
33
|
-
* text.
|
|
34
|
-
*
|
|
33
|
+
* text.
|
|
34
|
+
*
|
|
35
|
+
* For a handler or page failure this runs at the route boundary, so the
|
|
36
|
+
* response goes back out through the middleware chain and security headers and
|
|
37
|
+
* logging still apply. For a middleware throw it runs only after the whole
|
|
38
|
+
* chain has unwound — the throw propagates past every `await ctx.next()` so an
|
|
39
|
+
* outer middleware can catch it — and nothing decorates the response.
|
|
35
40
|
*/
|
|
36
41
|
export declare function renderError<S>(ctx: Ctx<S>, err: unknown, parts: HandlerParts<S>): Promise<Response>;
|
|
37
42
|
/** Assemble the HTML document from the page body, head metadata and assets. */
|
package/dist/render.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { h, options } from "preact";
|
|
2
2
|
import { renderToStringAsync } from "preact-render-to-string";
|
|
3
3
|
import { buildRoutes, match } from "./router.js";
|
|
4
|
+
import { compose } from "./app.js";
|
|
4
5
|
import { HttpError, statusText, toRouteError } from "./errors.js";
|
|
5
6
|
/** Property the SSR transform stamps onto island exports. */
|
|
6
7
|
const ISLAND = "__island";
|
|
@@ -45,8 +46,7 @@ function installIslandHook() {
|
|
|
45
46
|
export function createHandler(parts) {
|
|
46
47
|
installIslandHook();
|
|
47
48
|
const routes = buildRoutes(parts.manifest);
|
|
48
|
-
const
|
|
49
|
-
const run = parts.app ? parts.app.compose(terminal) : composeBare(terminal);
|
|
49
|
+
const run = compose(parts.app?.middleware ?? [], (ctx) => renderRoute(ctx, routes, parts));
|
|
50
50
|
return (req) => {
|
|
51
51
|
const ctx = {
|
|
52
52
|
req,
|
|
@@ -61,16 +61,15 @@ export function createHandler(parts) {
|
|
|
61
61
|
return run(ctx).catch((err) => renderError(ctx, err, parts));
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
-
function composeBare(terminal) {
|
|
65
|
-
return (ctx) => Promise.resolve(terminal(ctx));
|
|
66
|
-
}
|
|
67
64
|
async function renderRoute(ctx, routes, parts) {
|
|
68
65
|
try {
|
|
69
66
|
const m = match(routes, ctx.url.pathname);
|
|
70
67
|
if (!m)
|
|
71
68
|
throw new HttpError(404);
|
|
72
69
|
ctx.params = m.params;
|
|
73
|
-
|
|
70
|
+
// Cached on the route: a dynamic import of a loaded module is cheap but
|
|
71
|
+
// not free, and the manifest never changes within one server process.
|
|
72
|
+
const mod = m.route.module ??= await m.route.load();
|
|
74
73
|
if (mod.handlers) {
|
|
75
74
|
const fn = mod.handlers[ctx.req.method];
|
|
76
75
|
if (!fn)
|
|
@@ -91,9 +90,7 @@ async function renderRoute(ctx, routes, parts) {
|
|
|
91
90
|
}
|
|
92
91
|
/** Render the page, wrapped in `routes/_app.tsx` when the project has one. */
|
|
93
92
|
async function renderTree(ctx, page, parts) {
|
|
94
|
-
const tree = parts.Shell
|
|
95
|
-
? h(parts.Shell, { ctx, children: page })
|
|
96
|
-
: page;
|
|
93
|
+
const tree = parts.Shell ? h(parts.Shell, { ctx, children: page }) : page;
|
|
97
94
|
return await renderToStringAsync(tree);
|
|
98
95
|
}
|
|
99
96
|
function htmlResponse(body, ctx, parts, status = 200) {
|
|
@@ -108,8 +105,13 @@ function htmlResponse(body, ctx, parts, status = 200) {
|
|
|
108
105
|
/**
|
|
109
106
|
* Turn a failure into a response. Rendered through `routes/_error.tsx` when the
|
|
110
107
|
* project has one, so it inherits the app's markup and styling; otherwise plain
|
|
111
|
-
* text.
|
|
112
|
-
*
|
|
108
|
+
* text.
|
|
109
|
+
*
|
|
110
|
+
* For a handler or page failure this runs at the route boundary, so the
|
|
111
|
+
* response goes back out through the middleware chain and security headers and
|
|
112
|
+
* logging still apply. For a middleware throw it runs only after the whole
|
|
113
|
+
* chain has unwound — the throw propagates past every `await ctx.next()` so an
|
|
114
|
+
* outer middleware can catch it — and nothing decorates the response.
|
|
113
115
|
*/
|
|
114
116
|
export async function renderError(ctx, err, parts) {
|
|
115
117
|
const error = toRouteError(err);
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/router.d.ts
CHANGED
|
@@ -6,6 +6,15 @@ export interface Route<S = Record<string, unknown>> {
|
|
|
6
6
|
load: () => Promise<RouteModule<S>>;
|
|
7
7
|
/** Lower sorts first: static beats dynamic beats wildcard. */
|
|
8
8
|
score: number;
|
|
9
|
+
/**
|
|
10
|
+
* The canonical pathname when the pattern has no pattern syntax at all, so
|
|
11
|
+
* the route can be matched by string equality instead of `URLPattern.exec`.
|
|
12
|
+
*/
|
|
13
|
+
literal: string | null;
|
|
14
|
+
/** Segments in the pattern. A wildcard matches one fewer or more; the rest exactly this many. */
|
|
15
|
+
segments: number;
|
|
16
|
+
/** The loaded module, cached by the renderer after the first request. */
|
|
17
|
+
module?: RouteModule<S>;
|
|
9
18
|
}
|
|
10
19
|
export interface Matched<S = Record<string, unknown>> {
|
|
11
20
|
route: Route<S>;
|
|
@@ -18,4 +27,12 @@ export interface Matched<S = Record<string, unknown>> {
|
|
|
18
27
|
*/
|
|
19
28
|
export declare function filePathToPattern(file: string): string;
|
|
20
29
|
export declare function buildRoutes<S = Record<string, unknown>>(manifest: RouteManifest<S>): Route<S>[];
|
|
30
|
+
/**
|
|
31
|
+
* First route that matches, in `buildRoutes` order.
|
|
32
|
+
*
|
|
33
|
+
* `URLPattern.exec` costs microseconds per call, so it only runs for routes
|
|
34
|
+
* that could match: literal routes compare by equality, and a pattern whose
|
|
35
|
+
* segment count cannot fit the path is skipped. The string input form is used
|
|
36
|
+
* because the `{ pathname }` dictionary form is several times slower on Deno.
|
|
37
|
+
*/
|
|
21
38
|
export declare function match<S = Record<string, unknown>>(routes: Route<S>[], pathname: string): Matched<S> | null;
|
package/dist/router.js
CHANGED
|
@@ -10,8 +10,6 @@ export function filePathToPattern(file) {
|
|
|
10
10
|
let p = file.replace(/^\/routes/, "").replace(/\.[tj]sx?$/, "");
|
|
11
11
|
if (p.endsWith("/index"))
|
|
12
12
|
p = p.slice(0, -"/index".length);
|
|
13
|
-
if (p === "/index" || p === "")
|
|
14
|
-
p = "/";
|
|
15
13
|
const out = p
|
|
16
14
|
.split("/")
|
|
17
15
|
.map((s) => s.startsWith("[...") && s.endsWith("]")
|
|
@@ -22,27 +20,89 @@ export function filePathToPattern(file) {
|
|
|
22
20
|
.join("/");
|
|
23
21
|
return out || "/";
|
|
24
22
|
}
|
|
23
|
+
/** Anything URLPattern would read as syntax rather than as a literal character. */
|
|
24
|
+
const PATTERN_SYNTAX = /[:*?+(){}\\]/;
|
|
25
25
|
export function buildRoutes(manifest) {
|
|
26
26
|
const out = [];
|
|
27
27
|
for (const [file, load] of Object.entries(manifest)) {
|
|
28
28
|
const pattern = filePathToPattern(file);
|
|
29
|
-
const
|
|
30
|
-
out.push({
|
|
29
|
+
const urlPattern = new URLPattern({ pathname: pattern });
|
|
30
|
+
out.push({
|
|
31
|
+
pattern,
|
|
32
|
+
urlPattern,
|
|
33
|
+
load,
|
|
34
|
+
score: pattern.includes("*") ? 2 : pattern.includes(":") ? 1 : 0,
|
|
35
|
+
literal: PATTERN_SYNTAX.test(pattern) ? null : urlPattern.pathname,
|
|
36
|
+
segments: countSegments(pattern),
|
|
37
|
+
});
|
|
31
38
|
}
|
|
32
|
-
return out.sort((a, b) => a.score - b.score || b.
|
|
39
|
+
return out.sort((a, b) => a.score - b.score || b.segments - a.segments);
|
|
33
40
|
}
|
|
41
|
+
function countSegments(pathname) {
|
|
42
|
+
let n = 1;
|
|
43
|
+
for (let i = 0; i < pathname.length; i++)
|
|
44
|
+
if (pathname.charCodeAt(i) === 47 /* / */)
|
|
45
|
+
n++;
|
|
46
|
+
return n;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* First route that matches, in `buildRoutes` order.
|
|
50
|
+
*
|
|
51
|
+
* `URLPattern.exec` costs microseconds per call, so it only runs for routes
|
|
52
|
+
* that could match: literal routes compare by equality, and a pattern whose
|
|
53
|
+
* segment count cannot fit the path is skipped. The string input form is used
|
|
54
|
+
* because the `{ pathname }` dictionary form is several times slower on Deno.
|
|
55
|
+
*/
|
|
34
56
|
export function match(routes, pathname) {
|
|
57
|
+
const n = countSegments(pathname);
|
|
58
|
+
const input = "http://x" + pathname;
|
|
35
59
|
for (const route of routes) {
|
|
36
|
-
|
|
37
|
-
|
|
60
|
+
if (route.literal !== null) {
|
|
61
|
+
if (route.literal === pathname)
|
|
62
|
+
return { route, params: {} };
|
|
38
63
|
continue;
|
|
39
|
-
const params = {};
|
|
40
|
-
for (const [k, v] of Object.entries(m.pathname.groups)) {
|
|
41
|
-
if (v !== undefined)
|
|
42
|
-
params[k] = decodeURIComponent(v);
|
|
43
64
|
}
|
|
44
|
-
|
|
65
|
+
if (route.score === 2 ? n < route.segments - 1 : n !== route.segments)
|
|
66
|
+
continue;
|
|
67
|
+
const m = route.urlPattern.exec(input);
|
|
68
|
+
if (!m)
|
|
69
|
+
continue;
|
|
70
|
+
const params = decodeParams(route.pattern, m.pathname.groups);
|
|
71
|
+
if (params)
|
|
72
|
+
return { route, params };
|
|
45
73
|
}
|
|
46
74
|
return null;
|
|
47
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Decoded params, or null when the request should not match this route.
|
|
78
|
+
*
|
|
79
|
+
* URLPattern matches the encoded path, so `%2F` passes as part of one segment
|
|
80
|
+
* and only becomes a separator on decoding: `[slug]` would hand the app
|
|
81
|
+
* `../../etc/passwd`, a traversal for the first handler that joins it onto a
|
|
82
|
+
* directory. So a value may not hold NUL, a backslash, or a `.`/`..` segment,
|
|
83
|
+
* and only a wildcard may hold `/`. A malformed escape is no match either,
|
|
84
|
+
* rather than a throw.
|
|
85
|
+
*/
|
|
86
|
+
function decodeParams(pattern, groups) {
|
|
87
|
+
const params = {};
|
|
88
|
+
for (const [k, raw] of Object.entries(groups)) {
|
|
89
|
+
if (raw === undefined)
|
|
90
|
+
continue;
|
|
91
|
+
let v;
|
|
92
|
+
try {
|
|
93
|
+
v = decodeURIComponent(raw);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
if (v.includes("\0") || v.includes("\\"))
|
|
99
|
+
return null;
|
|
100
|
+
if (v.includes("/") && !pattern.includes(`:${k}*`))
|
|
101
|
+
return null;
|
|
102
|
+
if (v.split("/").some((s) => s === "." || s === ".."))
|
|
103
|
+
return null;
|
|
104
|
+
params[k] = v;
|
|
105
|
+
}
|
|
106
|
+
return params;
|
|
107
|
+
}
|
|
48
108
|
//# sourceMappingURL=router.js.map
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAIA,IAAI,OAAO,UAAU,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;IACjD,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@janit/fu",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A minimal islands framework on Preact 11, rolldown and Nitro. Runs on Deno, Node and Bun.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,24 +44,24 @@
|
|
|
44
44
|
"./package.json": "./package.json"
|
|
45
45
|
},
|
|
46
46
|
"bin": {
|
|
47
|
-
"fu": "
|
|
47
|
+
"fu": "dist/cli.js"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"crossws": "^0.4.12",
|
|
51
51
|
"lightningcss": "^1.33.0",
|
|
52
52
|
"nitro": "^3.0.260903-beta",
|
|
53
53
|
"preact-render-to-string": "^6.7.0",
|
|
54
|
-
"rolldown": "^1.2.
|
|
54
|
+
"rolldown": "^1.2.8",
|
|
55
55
|
"urlpattern-polyfill": "^10.1.0"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@preact/signals": "^2",
|
|
59
|
-
"preact": "^11.0.0-rc.
|
|
59
|
+
"preact": "^11.0.0-rc.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@preact/signals": "^2.11.2",
|
|
63
|
-
"@types/node": "^26.
|
|
64
|
-
"preact": "11.0.0-rc.
|
|
63
|
+
"@types/node": "^26.5.1",
|
|
64
|
+
"preact": "11.0.0-rc.2",
|
|
65
65
|
"typescript": "^7.0.2"
|
|
66
66
|
},
|
|
67
67
|
"engines": {
|