revojs 0.1.43 → 0.1.45

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.
@@ -239,7 +239,7 @@ function setState(scope, name, value) {
239
239
  }
240
240
  function sendResponse(scope, body, config) {
241
241
  const { response } = useServer(scope);
242
- if (body !== null && body !== void 0) {
242
+ if (body !== null && body !== void 0 && !response.headers.has("Content-Type")) {
243
243
  if (typeof body === "object" && !ArrayBuffer.isView(body)) {
244
244
  if (body instanceof FormData) response.headers.set("Content-Type", "multipart/form-data");
245
245
  else if (body instanceof URLSearchParams) response.headers.set("Content-Type", "application/x-www-form-urlencoded");
@@ -257,7 +257,12 @@ function sendResponse(scope, body, config) {
257
257
  body = JSON.stringify(body);
258
258
  }
259
259
  }
260
- return new Response(body, mergeObjects(response, config));
260
+ if (config?.headers instanceof Headers) for (const [key, value] of config.headers.entries()) response.headers.set(key, value);
261
+ return new Response(body, {
262
+ status: config?.status ?? response.status,
263
+ statusText: config?.statusText ?? response.statusText,
264
+ headers: response.headers
265
+ });
261
266
  }
262
267
  function sendOk(scope, body, config) {
263
268
  const { response } = useServer(scope);
@@ -308,7 +313,7 @@ async function invoke(scope, pipeline, index = 0) {
308
313
  }
309
314
  async function createServer() {
310
315
  const router = new Router();
311
- const middlewares = new Array();
316
+ const middleware = new Array();
312
317
  const routes = await import("#routes").then((module) => Object.entries(module.default));
313
318
  for (const [path, route] of routes) {
314
319
  const segments = path.split("/");
@@ -319,13 +324,13 @@ async function createServer() {
319
324
  }
320
325
  router.use(segments, route);
321
326
  }
322
- middlewares.push(router);
327
+ middleware.push(...await import("#middleware").then((module) => Object.values(module.default)), router);
323
328
  return {
324
329
  router,
325
- middlewares,
330
+ middleware,
326
331
  async fetch(scope) {
327
332
  try {
328
- return await invoke(scope, middlewares) ?? sendNotFound(scope);
333
+ return await invoke(scope, middleware) ?? sendNotFound(scope);
329
334
  } catch (value) {
330
335
  if (value instanceof Response) return value;
331
336
  throw value;
@@ -591,12 +596,18 @@ var App = class extends Hookable {
591
596
  children: []
592
597
  }
593
598
  },
594
- sources: { routes: {
595
- match: "**/{get,head,post,put,delete,connect,options,trace,patch}.{js,ts}",
596
- entries: ["./routes"]
597
- } },
599
+ sources: {
600
+ routes: {
601
+ match: "**/{get,head,post,put,delete,connect,options,trace,patch}.{js,ts}",
602
+ entries: ["./routes"]
603
+ },
604
+ middleware: {
605
+ match: "**/*.{js,ts}",
606
+ entries: ["./middleware"]
607
+ }
608
+ },
598
609
  variables: {},
599
- development: { middlewares: [] },
610
+ development: { middleware: [] },
600
611
  build: {
601
612
  externals: [],
602
613
  templates: {},
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as version, t as name } from "../package-DCyffKe-.mjs";
2
+ import { n as version, t as name } from "../package-9EF2Bhnr.mjs";
3
3
  import { defineCommand, runMain } from "citty";
4
4
  //#region src/commands/run/index.ts
5
5
  var run_default = defineCommand({ setup() {} });
@@ -68,7 +68,7 @@ interface CookieOptions {
68
68
  }
69
69
  interface ResponseConfig {
70
70
  status?: StatusCode;
71
- message?: string;
71
+ statusText?: string;
72
72
  headers: Headers;
73
73
  }
74
74
  interface RouterContext {
@@ -90,7 +90,7 @@ interface Middleware {
90
90
  }
91
91
  interface Server {
92
92
  router: Router;
93
- middlewares: Array<Middleware>;
93
+ middleware: Array<Middleware>;
94
94
  fetch: (scope: Scope) => Result;
95
95
  }
96
96
  interface WildcardNode<T> {
@@ -194,7 +194,7 @@ interface Template {
194
194
  children: Array<string | Template>;
195
195
  }
196
196
  interface DevelopmentConfig {
197
- middlewares: Array<Middleware>;
197
+ middleware: Array<Middleware>;
198
198
  }
199
199
  interface BuildConfig {
200
200
  externals: Array<string>;
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as defineRoute, A as PARAMETER_MATCH, At as withQuery, B as SERVER_CONTEXT, Bt as Output, C as OPTIONAL_PARAMETER, Ct as useHeaders, D as OptionalParameterNode, Dt as useServer, E as OPTIONAL_WILDCARD_MATCH, Et as useRouter, F as ResponseConfig, Ft as InferInput, G as StatusCode, Gt as defineHook, H as Server, Ht as Scope, I as Result, It as InferOutput, J as WildcardNode, Jt as parseSchema, K as WILDCARD, Kt as isFailure, L as Route, Lt as Invoke, M as PathNode, Mt as Descriptor, N as ROUTER_CONTEXT, Nt as Failure, O as OptionalWildcardNode, Ot as useSetCookies, P as Radix, Pt as Hookable, Q as defineMiddleware, R as Router, Rt as Issue, S as Node, St as useCookies, T as OPTIONAL_WILDCARD, Tt as useQuery, U as ServerContext, Ut as Success, V as STATES, Vt as Schema, W as States, Wt as defineContext, X as cookieSameSites, Y as cookiePriorities, Z as createServer, _ as CookieSameSite, _t as sendUnauthorized, a as CLOSE_HOOK, at as isServer, b as Middleware, bt as statusCodes, c as DevelopmentConfig, ct as parseCookiePair, d as SERVER, dt as sendForbidden, et as encodings, f as Source, ft as sendNoContent, g as CookiePriority, gt as sendResponse, h as CookieOptions, ht as sendRedirect, i as CLIENT, it as isClient, j as ParameterNode, jt as Context, k as PARAMETER, kt as useUrl, l as Environment, lt as sendBadRequest, m as Virtual, mt as sendOk, n as App, nt as httpMethods, o as Config, ot as mimeType, p as Template, pt as sendNotFound, q as WILDCARD_MATCH, qt as mergeObjects, r as BuildConfig, rt as invoke, s as Content, st as mimeTypes, t as $fetch, tt as getState, u as Module, ut as sendCreated, v as Encoding, vt as setCookie, w as OPTIONAL_PARAMETER_MATCH, wt as useParameters, x as MimeType, xt as useBody, y as HttpMethod, yt as setState, z as RouterContext, zt as Mergeable } from "./index-CNiAmGY8.mjs";
1
+ import { $ as defineRoute, A as PARAMETER_MATCH, At as withQuery, B as SERVER_CONTEXT, Bt as Output, C as OPTIONAL_PARAMETER, Ct as useHeaders, D as OptionalParameterNode, Dt as useServer, E as OPTIONAL_WILDCARD_MATCH, Et as useRouter, F as ResponseConfig, Ft as InferInput, G as StatusCode, Gt as defineHook, H as Server, Ht as Scope, I as Result, It as InferOutput, J as WildcardNode, Jt as parseSchema, K as WILDCARD, Kt as isFailure, L as Route, Lt as Invoke, M as PathNode, Mt as Descriptor, N as ROUTER_CONTEXT, Nt as Failure, O as OptionalWildcardNode, Ot as useSetCookies, P as Radix, Pt as Hookable, Q as defineMiddleware, R as Router, Rt as Issue, S as Node, St as useCookies, T as OPTIONAL_WILDCARD, Tt as useQuery, U as ServerContext, Ut as Success, V as STATES, Vt as Schema, W as States, Wt as defineContext, X as cookieSameSites, Y as cookiePriorities, Z as createServer, _ as CookieSameSite, _t as sendUnauthorized, a as CLOSE_HOOK, at as isServer, b as Middleware, bt as statusCodes, c as DevelopmentConfig, ct as parseCookiePair, d as SERVER, dt as sendForbidden, et as encodings, f as Source, ft as sendNoContent, g as CookiePriority, gt as sendResponse, h as CookieOptions, ht as sendRedirect, i as CLIENT, it as isClient, j as ParameterNode, jt as Context, k as PARAMETER, kt as useUrl, l as Environment, lt as sendBadRequest, m as Virtual, mt as sendOk, n as App, nt as httpMethods, o as Config, ot as mimeType, p as Template, pt as sendNotFound, q as WILDCARD_MATCH, qt as mergeObjects, r as BuildConfig, rt as invoke, s as Content, st as mimeTypes, t as $fetch, tt as getState, u as Module, ut as sendCreated, v as Encoding, vt as setCookie, w as OPTIONAL_PARAMETER_MATCH, wt as useParameters, x as MimeType, xt as useBody, y as HttpMethod, yt as setState, z as RouterContext, zt as Mergeable } from "./index--5m6SUpo.mjs";
2
2
  export { $fetch, App, BuildConfig, CLIENT, CLOSE_HOOK, Config, Content, Context, CookieOptions, CookiePriority, CookieSameSite, Descriptor, DevelopmentConfig, Encoding, Environment, Failure, Hookable, HttpMethod, InferInput, InferOutput, Invoke, Issue, Mergeable, Middleware, MimeType, Module, Node, OPTIONAL_PARAMETER, OPTIONAL_PARAMETER_MATCH, OPTIONAL_WILDCARD, OPTIONAL_WILDCARD_MATCH, OptionalParameterNode, OptionalWildcardNode, Output, PARAMETER, PARAMETER_MATCH, ParameterNode, PathNode, ROUTER_CONTEXT, Radix, ResponseConfig, Result, Route, Router, RouterContext, SERVER, SERVER_CONTEXT, STATES, Schema, Scope, Server, ServerContext, Source, States, StatusCode, Success, Template, Virtual, WILDCARD, WILDCARD_MATCH, WildcardNode, cookiePriorities, cookieSameSites, createServer, defineContext, defineHook, defineMiddleware, defineRoute, encodings, getState, httpMethods, invoke, isClient, isFailure, isServer, mergeObjects, mimeType, mimeTypes, parseCookiePair, parseSchema, sendBadRequest, sendCreated, sendForbidden, sendNoContent, sendNotFound, sendOk, sendRedirect, sendResponse, sendUnauthorized, setCookie, setState, statusCodes, useBody, useCookies, useHeaders, useParameters, useQuery, useRouter, useServer, useSetCookies, useUrl, withQuery };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as useHeaders, A as encodings, B as sendCreated, C as WILDCARD, D as createServer, E as cookieSameSites, F as isServer, G as sendRedirect, H as sendNoContent, I as mimeType, J as setCookie, K as sendResponse, L as mimeTypes, M as httpMethods, N as invoke, O as defineMiddleware, P as isClient, Q as useCookies, R as parseCookiePair, S as STATES, T as cookiePriorities, U as sendNotFound, V as sendForbidden, W as sendOk, X as statusCodes, Y as setState, Z as useBody, _ as PARAMETER_MATCH, a as Hookable, at as useUrl, b as Router, c as defineHook, d as parseSchema, et as useParameters, f as OPTIONAL_PARAMETER, g as PARAMETER, h as OPTIONAL_WILDCARD_MATCH, i as SERVER, it as useSetCookies, j as getState, k as defineRoute, l as isFailure, m as OPTIONAL_WILDCARD, n as CLIENT, nt as useRouter, o as Scope, ot as withQuery, p as OPTIONAL_PARAMETER_MATCH, q as sendUnauthorized, r as CLOSE_HOOK, rt as useServer, s as defineContext, t as App, tt as useQuery, u as mergeObjects, v as ROUTER_CONTEXT, w as WILDCARD_MATCH, x as SERVER_CONTEXT, y as Radix, z as sendBadRequest } from "./app-BDHw-biB.mjs";
1
+ import { $ as useHeaders, A as encodings, B as sendCreated, C as WILDCARD, D as createServer, E as cookieSameSites, F as isServer, G as sendRedirect, H as sendNoContent, I as mimeType, J as setCookie, K as sendResponse, L as mimeTypes, M as httpMethods, N as invoke, O as defineMiddleware, P as isClient, Q as useCookies, R as parseCookiePair, S as STATES, T as cookiePriorities, U as sendNotFound, V as sendForbidden, W as sendOk, X as statusCodes, Y as setState, Z as useBody, _ as PARAMETER_MATCH, a as Hookable, at as useUrl, b as Router, c as defineHook, d as parseSchema, et as useParameters, f as OPTIONAL_PARAMETER, g as PARAMETER, h as OPTIONAL_WILDCARD_MATCH, i as SERVER, it as useSetCookies, j as getState, k as defineRoute, l as isFailure, m as OPTIONAL_WILDCARD, n as CLIENT, nt as useRouter, o as Scope, ot as withQuery, p as OPTIONAL_PARAMETER_MATCH, q as sendUnauthorized, r as CLOSE_HOOK, rt as useServer, s as defineContext, t as App, tt as useQuery, u as mergeObjects, v as ROUTER_CONTEXT, w as WILDCARD_MATCH, x as SERVER_CONTEXT, y as Radix, z as sendBadRequest } from "./app-B4HJTrxE.mjs";
2
2
  //#region src/client/index.ts
3
3
  async function $fetch(scope, input, options) {
4
4
  let response;
@@ -1,4 +1,4 @@
1
- import { m as Virtual, n as App, s as Content } from "../index-CNiAmGY8.mjs";
1
+ import { m as Virtual, n as App, s as Content } from "../index--5m6SUpo.mjs";
2
2
 
3
3
  //#region src/kit/index.d.ts
4
4
  declare function useKit(source: string | URL): {
@@ -8,6 +8,7 @@ declare function addAlias(app: App, name: string, path: string): void;
8
8
  declare function addTemplate(app: App, name: string, content: Content): void;
9
9
  declare function addVirtual(app: App, name: string, virtual: Virtual): void;
10
10
  declare function addRoutes(app: App, path: string): void;
11
+ declare function addMiddleware(app: App, path: string): void;
11
12
  declare function addTypes(app: App, name: string, content: Content): void;
12
13
  //#endregion
13
- export { addAlias, addRoutes, addTemplate, addTypes, addVirtual, useKit };
14
+ export { addAlias, addMiddleware, addRoutes, addTemplate, addTypes, addVirtual, useKit };
@@ -20,8 +20,11 @@ function addVirtual(app, name, virtual) {
20
20
  function addRoutes(app, path) {
21
21
  app.config.sources.routes?.entries.push(path);
22
22
  }
23
+ function addMiddleware(app, path) {
24
+ app.config.sources.middleware?.entries.push(path);
25
+ }
23
26
  function addTypes(app, name, content) {
24
27
  addTemplate(app, `types/${name}.d.ts`, content);
25
28
  }
26
29
  //#endregion
27
- export { addAlias, addRoutes, addTemplate, addTypes, addVirtual, useKit };
30
+ export { addAlias, addMiddleware, addRoutes, addTemplate, addTypes, addVirtual, useKit };
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
2
  var name = "revojs";
3
- var version = "0.1.43";
3
+ var version = "0.1.45";
4
4
  //#endregion
5
5
  export { version as n, name as t };
@@ -1,4 +1,4 @@
1
- import { o as Config, zt as Mergeable } from "../index-CNiAmGY8.mjs";
1
+ import { o as Config, zt as Mergeable } from "../index--5m6SUpo.mjs";
2
2
  import { Plugin } from "vite";
3
3
 
4
4
  //#region src/vite/index.d.ts
@@ -1,5 +1,5 @@
1
- import { N as invoke, n as CLIENT, o as Scope, r as CLOSE_HOOK, t as App, u as mergeObjects, x as SERVER_CONTEXT } from "../app-BDHw-biB.mjs";
2
- import { n as version, t as name } from "../package-DCyffKe-.mjs";
1
+ import { N as invoke, n as CLIENT, o as Scope, r as CLOSE_HOOK, t as App, u as mergeObjects, x as SERVER_CONTEXT } from "../app-B4HJTrxE.mjs";
2
+ import { n as version, t as name } from "../package-9EF2Bhnr.mjs";
3
3
  import { addTemplate, addTypes, addVirtual, useKit } from "../kit/index.mjs";
4
4
  import { basename, dirname, isAbsolute, join, posix, resolve, win32 } from "path";
5
5
  import { mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -292,7 +292,7 @@ function revojs(config) {
292
292
  response: { headers: new Headers() },
293
293
  variables: process.env
294
294
  });
295
- var result = await invoke(scope, app.config.development.middlewares.concat({ fetch: server.fetch }));
295
+ var result = await invoke(scope, app.config.development.middleware.concat({ fetch: server.fetch }));
296
296
  if (result) await toNodeRequest(result, response);
297
297
  }
298
298
  next();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "revojs",
3
- "version": "0.1.43",
3
+ "version": "0.1.45",
4
4
  "license": "MIT",
5
5
  "repository": "tellua/revojs",
6
6
  "bin": {
@@ -0,0 +1,7 @@
1
+ declare module "#middleware" {
2
+ import type { Middleware } from "revojs";
3
+
4
+ const entries: Record<string, Middleware>;
5
+
6
+ export default entries;
7
+ }