@mauroandre/velojs 0.0.23 → 0.0.24

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.
Files changed (2) hide show
  1. package/dist/server.js +136 -137
  2. package/package.json +1 -1
package/dist/server.js CHANGED
@@ -1,201 +1,200 @@
1
- import { jsx as _ } from "preact/jsx-runtime";
1
+ import { jsx as p } from "preact/jsx-runtime";
2
2
  import { Hono as b } from "hono";
3
3
  import { logger as q } from "hono/logger";
4
4
  import { trimTrailingSlash as T } from "hono/trailing-slash";
5
5
  import { render as A } from "preact-render-to-string";
6
6
  import { Router as R } from "wouter-preact";
7
7
  import { AsyncLocalStorage as C } from "node:async_hooks";
8
- import { getAppContext as v } from "./app-context.js";
9
- const y = new C();
10
- globalThis.__veloServerData = y;
11
- let g = null;
12
- function G(t) {
13
- if (g) {
14
- t(g);
8
+ import { getAppContext as g } from "./app-context.js";
9
+ import { flushPendingStreamRoutes as D, registerStreamHandler as I } from "./events.js";
10
+ const v = new C();
11
+ globalThis.__veloServerData = v;
12
+ let _ = null;
13
+ function W(e) {
14
+ if (_) {
15
+ e(_);
15
16
  return;
16
17
  }
17
- v().serverCallbacks.push(t);
18
+ g().serverCallbacks.push(e);
18
19
  }
19
- function w(t) {
20
- g = t;
21
- const e = v();
22
- for (const n of e.serverCallbacks) n(t);
23
- e.serverCallbacks.length = 0;
20
+ function y(e) {
21
+ _ = e;
22
+ const t = g();
23
+ for (const s of t.serverCallbacks) s(e);
24
+ t.serverCallbacks.length = 0;
24
25
  }
25
- function L(t) {
26
- v().pendingRoutes.push(t);
26
+ function J(e) {
27
+ g().pendingRoutes.push(e);
27
28
  }
28
- const D = (t, e, n) => {
29
- if (t.req.query("_data") === "1") {
30
- const c = globalThis.__veloBuildHash || void 0, o = n ? { ...n, __buildHash: c } : { __buildHash: c };
31
- return t.json(o);
29
+ const N = (e, t, s) => {
30
+ if (e.req.query("_data") === "1") {
31
+ const a = globalThis.__veloBuildHash || void 0, r = s ? { ...s, __buildHash: a } : { __buildHash: a };
32
+ return e.json(r);
32
33
  }
33
- const s = t.req.path, r = y.run(
34
- n ?? {},
35
- () => A(/* @__PURE__ */ _(R, { ssrPath: s, children: e }))
34
+ const n = e.req.path, o = v.run(
35
+ s ?? {},
36
+ () => A(/* @__PURE__ */ p(R, { ssrPath: n, children: t }))
36
37
  );
37
- if (t.header("Cache-Control", "no-cache"), !n)
38
- return t.html(r);
39
- const a = `<script>window.__PAGE_DATA__=${JSON.stringify(
40
- n
38
+ if (e.header("Cache-Control", "no-cache"), !s)
39
+ return e.html(o);
40
+ const c = `<script>window.__PAGE_DATA__=${JSON.stringify(
41
+ s
41
42
  )}<\/script>`;
42
- return t.html(r.replace("</head>", `${a}</head>`));
43
- }, I = async (t, e) => {
44
- const n = e.req.param(), s = e.req.query(), r = { params: n, query: s, c: e }, a = await Promise.all(
45
- t.map(async (o) => {
46
- if (!o.loader) return null;
47
- const l = await o.loader(r), i = o.metadata?.moduleId;
48
- return i ? { moduleId: i, loaderData: l } : null;
43
+ return e.html(o.replace("</head>", `${c}</head>`));
44
+ }, O = async (e, t) => {
45
+ const s = t.req.param(), n = t.req.query(), o = { params: s, query: n, c: t }, c = await Promise.all(
46
+ e.map(async (r) => {
47
+ if (!r.loader) return null;
48
+ const d = await r.loader(o), i = r.metadata?.moduleId;
49
+ return i ? { moduleId: i, loaderData: d } : null;
49
50
  })
50
- ), c = {
51
- __params: n,
52
- __query: s,
53
- __pathname: e.req.path
51
+ ), a = {
52
+ __params: s,
53
+ __query: n,
54
+ __pathname: t.req.path
54
55
  };
55
- for (const o of a)
56
- o && (c[o.moduleId] = o.loaderData);
56
+ for (const r of c)
57
+ r && (a[r.moduleId] = r.loaderData);
57
58
  return {
58
- components: t.map((o) => o.Component),
59
- data: c
59
+ components: e.map((r) => r.Component),
60
+ data: a
60
61
  };
61
- }, N = (t) => {
62
- if (t.length === 0) return null;
63
- const e = t.filter(Boolean);
62
+ }, j = (e) => {
64
63
  if (e.length === 0) return null;
65
- if (e.length === 1) {
66
- const r = e[0];
67
- return /* @__PURE__ */ _(r, {});
64
+ const t = e.filter(Boolean);
65
+ if (t.length === 0) return null;
66
+ if (t.length === 1) {
67
+ const o = t[0];
68
+ return /* @__PURE__ */ p(o, {});
68
69
  }
69
- const n = e[e.length - 1];
70
- return e.slice(0, -1).reduceRight((r, a) => /* @__PURE__ */ _(a, { children: r }), /* @__PURE__ */ _(n, {}));
71
- }, S = (t, e, n = [], s = []) => {
72
- for (const r of e) {
73
- const a = [...n, r.module], c = [
74
- ...s,
75
- ...r.middlewares || []
70
+ const s = t[t.length - 1];
71
+ return t.slice(0, -1).reduceRight((o, c) => /* @__PURE__ */ p(c, { children: o }), /* @__PURE__ */ p(s, {}));
72
+ }, w = (e, t, s = [], n = []) => {
73
+ for (const o of t) {
74
+ const c = [...s, o.module], a = [
75
+ ...n,
76
+ ...o.middlewares || []
76
77
  ];
77
- if (r.children)
78
- S(
79
- t,
80
- r.children,
81
- a,
82
- c
78
+ if (o.children)
79
+ w(
80
+ e,
81
+ o.children,
82
+ c,
83
+ a
83
84
  );
84
85
  else {
85
- const o = r.module.metadata?.fullPath;
86
- if (!o) {
86
+ const r = o.module.metadata?.fullPath;
87
+ if (!r) {
87
88
  console.warn(
88
- `Module ${r.module.metadata?.moduleId} has no fullPath`
89
+ `Module ${o.module.metadata?.moduleId} has no fullPath`
89
90
  );
90
91
  continue;
91
92
  }
92
- const l = async (i) => {
93
- const { components: m, data: u } = await I(a, i), d = N(m);
94
- return D(i, d, u);
93
+ const d = async (i) => {
94
+ const { components: u, data: m } = await O(c, i), l = j(u);
95
+ return N(i, l, m);
95
96
  };
96
- c.length > 0 ? t.on(["GET"], [o], ...c, l) : t.on(["GET"], [o], l);
97
+ a.length > 0 ? e.on(["GET"], [r], ...a, d) : e.on(["GET"], [r], d);
97
98
  }
98
99
  }
99
- }, P = (t, e, n = []) => {
100
- for (const s of e) {
101
- const r = s.module.metadata?.moduleId, a = [
102
- ...n,
103
- ...s.middlewares || []
100
+ }, S = (e, t, s = []) => {
101
+ for (const n of t) {
102
+ const o = n.module.metadata?.moduleId, c = [
103
+ ...s,
104
+ ...n.middlewares || []
104
105
  ];
105
- if (r) {
106
- const c = Object.keys(s.module).filter(
107
- (o) => o.startsWith("action_")
106
+ if (o) {
107
+ const a = Object.keys(n.module).filter(
108
+ (r) => r.startsWith("action_")
108
109
  );
109
- for (const o of c) {
110
- const l = o.replace("action_", ""), i = s.module[o];
110
+ for (const r of a) {
111
+ const d = r.replace("action_", ""), i = n.module[r];
111
112
  if (typeof i == "function") {
112
- const m = `/_action/${r}/${l}`, u = async (d) => {
113
+ const u = `/_action/${o}/${d}`, m = async (l) => {
113
114
  let f = {};
114
115
  try {
115
- f = await d.req.json();
116
+ f = await l.req.json();
116
117
  } catch {
117
118
  }
118
- const h = {
119
+ const P = {
119
120
  body: f,
120
- params: d.req.param(),
121
- query: d.req.query(),
122
- c: d
121
+ params: l.req.param(),
122
+ query: l.req.query(),
123
+ c: l
123
124
  };
124
125
  try {
125
- const p = await i(h);
126
- return d.json(p ?? { ok: !0 });
127
- } catch (p) {
128
- const E = p instanceof Error ? p.message : "Action failed";
129
- return d.json({ error: E }, 500);
126
+ const h = await i(P);
127
+ return l.json(h ?? { ok: !0 });
128
+ } catch (h) {
129
+ const E = h instanceof Error ? h.message : "Action failed";
130
+ return l.json({ error: E }, 500);
130
131
  }
131
132
  };
132
- a.length > 0 ? t.on(
133
+ c.length > 0 ? e.on(
133
134
  ["POST"],
134
- [m],
135
- ...a,
136
- u
137
- ) : t.on(["POST"], [m], u);
135
+ [u],
136
+ ...c,
137
+ m
138
+ ) : e.on(["POST"], [u], m);
138
139
  }
139
140
  }
140
141
  }
141
- s.children && P(t, s.children, a);
142
+ n.children && S(e, n.children, c);
142
143
  }
143
- }, O = async (t, e, n = []) => {
144
- const { registerStreamHandler: s } = await import("./events.js"), r = (a, c) => {
145
- for (const o of a) {
146
- const l = o.module.metadata?.moduleId, i = [
144
+ }, $ = async (e, t, s = []) => {
145
+ const n = (o, c) => {
146
+ for (const a of o) {
147
+ const r = a.module.metadata?.moduleId, d = [
147
148
  ...c,
148
- ...o.middlewares || []
149
+ ...a.middlewares || []
149
150
  ];
150
- if (l) {
151
- const m = Object.keys(o.module).filter(
151
+ if (r) {
152
+ const i = Object.keys(a.module).filter(
152
153
  (u) => u.startsWith("stream_")
153
154
  );
154
- for (const u of m) {
155
- const d = u.replace("stream_", ""), f = o.module[u];
156
- if (f?.__isVeloEventStream) {
157
- const h = `/_event/${l}/${d}`;
158
- f.__path = h, s(
159
- t,
160
- h,
155
+ for (const u of i) {
156
+ const m = u.replace("stream_", ""), l = a.module[u];
157
+ if (l?.__isVeloEventStream) {
158
+ const f = `/_event/${r}/${m}`;
159
+ l.__path = f, I(
160
+ e,
161
161
  f,
162
- i
162
+ l,
163
+ d
163
164
  );
164
165
  }
165
166
  }
166
167
  }
167
- o.children && r(o.children, i);
168
+ a.children && n(a.children, d);
168
169
  }
169
170
  };
170
- r(e, n);
171
- }, j = async (t) => {
172
- const e = new b();
173
- e.use(T()), process.env.NODE_ENV !== "production" && e.use("*", q());
174
- const s = v().pendingRoutes.splice(0);
175
- for (const a of s)
176
- await a(e);
177
- S(e, t), P(e, t), await O(e, t);
178
- const { flushPendingStreamRoutes: r } = await import("./events.js");
179
- if (r(e), process.env.NODE_ENV !== "production" && !g) {
180
- const a = globalThis.__veloDevServer;
181
- a && w(a);
171
+ n(t, s);
172
+ }, k = async (e) => {
173
+ const t = new b();
174
+ t.use(T()), process.env.NODE_ENV !== "production" && t.use("*", q());
175
+ const n = g().pendingRoutes.splice(0);
176
+ for (const o of n)
177
+ await o(t);
178
+ if (w(t, e), S(t, e), await $(t, e), D(t), process.env.NODE_ENV !== "production" && !_) {
179
+ const o = globalThis.__veloDevServer;
180
+ o && y(o);
182
181
  }
183
- return e;
184
- }, U = async (t) => {
185
- const { routes: e, port: n = Number(process.env.SERVER_PORT) || 3e3 } = t, s = await j(e);
182
+ return t;
183
+ }, z = async (e) => {
184
+ const { routes: t, port: s = Number(process.env.SERVER_PORT) || 3e3 } = e, n = await k(t);
186
185
  if (process.env.NODE_ENV === "production" && !process.env.VELO_STATIC) {
187
- const { serve: r } = await import("@hono/node-server"), { serveStatic: a } = await import("@hono/node-server/serve-static"), { join: c } = await import("node:path"), o = c(process.cwd(), "dist/client");
188
- (process.env.STATIC_BASE_URL || "").startsWith("http") || s.use("/*", a({ root: o })), console.log(`Server running on http://localhost:${n}`);
189
- const i = r({ fetch: s.fetch, port: n });
190
- w(i);
186
+ const { serve: o } = await import("@hono/node-server"), { serveStatic: c } = await import("@hono/node-server/serve-static"), { join: a } = await import("node:path"), r = a(process.cwd(), "dist/client");
187
+ (process.env.STATIC_BASE_URL || "").startsWith("http") || n.use("/*", c({ root: r })), console.log(`Server running on http://localhost:${s}`);
188
+ const i = o({ fetch: n.fetch, port: s });
189
+ y(i);
191
190
  }
192
- return s;
191
+ return n;
193
192
  };
194
193
  export {
195
- L as addRoutes,
196
- j as createApp,
197
- j as default,
198
- G as onServer,
199
- y as serverDataStorage,
200
- U as startServer
194
+ J as addRoutes,
195
+ k as createApp,
196
+ k as default,
197
+ W as onServer,
198
+ v as serverDataStorage,
199
+ z as startServer
201
200
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mauroandre/velojs",
3
- "version": "0.0.23",
3
+ "version": "0.0.24",
4
4
  "type": "module",
5
5
  "description": "Fullstack web framework built on Hono + Preact with Vite-powered AST transforms",
6
6
  "keywords": [