@revojs/bun 0.1.57 → 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/dist/index.d.ts CHANGED
@@ -1,6 +1 @@
1
- import { Module } from "revojs";
2
-
3
- //#region src/index.d.ts
4
- declare function bun(): Module;
5
- //#endregion
6
- export { bun };
1
+ export {};
package/dist/index.js CHANGED
@@ -1,12 +1,67 @@
1
- import { addRoutes, useKit } from "revojs/kit";
1
+ import { SCHEDULE_CONTEXT, SERVER_CONTEXT, isResponse, isWebSocket, sendBadRequest } from "@revojs/server";
2
+ import { serve } from "bun";
3
+ import { VARIABLE_CONTEXT, createScope } from "revojs";
2
4
  //#region src/index.ts
3
- function bun() {
4
- return { setup(app) {
5
- const { fromModule } = useKit(import.meta.url);
6
- app.config.server = fromModule("./runtime/server.js");
7
- addRoutes(app, fromModule("./runtime/routes"));
8
- return { vite: { build: { rolldownOptions: { external: ["bun"] } } } };
9
- } };
5
+ function createConnection(webSocket) {
6
+ return {
7
+ async send(message) {
8
+ webSocket.send(message);
9
+ },
10
+ async close(code, reason) {
11
+ webSocket.close(code, reason);
12
+ }
13
+ };
10
14
  }
15
+ var server = await import("#server").then((module) => module.default);
16
+ for (const schedule of server.schedules) Bun.cron(schedule.when, async () => {
17
+ await server.schedule(await createScope({ context: {
18
+ [VARIABLE_CONTEXT]: process.env,
19
+ [SCHEDULE_CONTEXT]: { when: schedule.when }
20
+ } }));
21
+ });
22
+ serve({
23
+ async fetch(request, runtime) {
24
+ const scope = await createScope({ context: {
25
+ [VARIABLE_CONTEXT]: process.env,
26
+ [SERVER_CONTEXT]: {
27
+ states: {},
28
+ request,
29
+ response: { headers: new Headers() }
30
+ }
31
+ } });
32
+ const result = await server.fetch(scope);
33
+ if (isResponse(result)) return result;
34
+ if (isWebSocket(result) && !runtime.upgrade(request, { data: result })) return sendBadRequest(scope);
35
+ },
36
+ websocket: {
37
+ async open(webSocket) {
38
+ const connection = createConnection(webSocket);
39
+ try {
40
+ await webSocket.data.open(connection);
41
+ } catch (error) {
42
+ if (error instanceof Error) await webSocket.data.error(connection, error);
43
+ else throw error;
44
+ }
45
+ },
46
+ async message(webSocket, message) {
47
+ const connection = createConnection(webSocket);
48
+ try {
49
+ await webSocket.data.message(connection, message);
50
+ } catch (error) {
51
+ if (error instanceof Error) await webSocket.data.error(connection, error);
52
+ else throw error;
53
+ }
54
+ },
55
+ async close(webSocket, code, reason) {
56
+ const connection = createConnection(webSocket);
57
+ try {
58
+ await webSocket.data.close(connection, code, reason);
59
+ } catch (error) {
60
+ if (error instanceof Error) await webSocket.data.error(connection, error);
61
+ else throw error;
62
+ }
63
+ }
64
+ }
65
+ });
11
66
  //#endregion
12
- export { bun };
67
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const _default: import("revojs/module").Module<"bun", Record<string, never>, readonly [import("revojs/module").Module<"server", Record<string, never>, []>]>;
2
+ export default _default;
@@ -0,0 +1,23 @@
1
+ import server, { SERVER } from "@revojs/server/module";
2
+ import { addTypes, defineModule, useModule } from "revojs/module";
3
+ //#region src/module/index.ts
4
+ var module_default = defineModule({
5
+ name: "bun",
6
+ modules: [server],
7
+ setup(config) {
8
+ const { fromModule } = useModule(import.meta.url);
9
+ addTypes(config, "bun", () => `import "@types/bun"`);
10
+ return {
11
+ sources: { routes: { from: [fromModule("../routes")] } },
12
+ vite: { environments: { [SERVER]: {
13
+ resolve: { external: ["bun"] },
14
+ build: { rolldownOptions: {
15
+ input: fromModule("../index.js"),
16
+ external: ["bun"]
17
+ } }
18
+ } } }
19
+ };
20
+ }
21
+ });
22
+ //#endregion
23
+ export { module_default as default };
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ fetch(scope: import("revojs").Scope, next: (() => import("@revojs/server").Result) | undefined): Promise<void | Response | import("@revojs/server").WebSocket>;
3
+ };
4
+ export default _default;
@@ -1,6 +1,6 @@
1
+ import { createStaticMiddleware } from "@revojs/server";
1
2
  import { file } from "bun";
2
- import { createStaticMiddleware } from "revojs";
3
- //#region src/runtime/routes/+middleware.ts
3
+ //#region src/routes/+middleware.ts
4
4
  var _middleware_default = createStaticMiddleware(file);
5
5
  //#endregion
6
6
  export { _middleware_default as default };
package/package.json CHANGED
@@ -1,30 +1,31 @@
1
1
  {
2
2
  "name": "@revojs/bun",
3
- "version": "0.1.57",
3
+ "version": "0.2.1",
4
4
  "license": "MIT",
5
- "repository": "tellua/revojs",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/tellua/revojs.git"
8
+ },
6
9
  "files": [
7
10
  "dist"
8
11
  ],
9
12
  "type": "module",
10
- "main": "./dist/index.js",
11
- "module": "./dist/index.js",
12
- "types": "./dist/index.d.ts",
13
13
  "exports": {
14
- ".": {
15
- "types": "./dist/index.d.ts",
16
- "import": "./dist/index.js"
14
+ "./module": {
15
+ "types": "./dist/module/index.d.ts",
16
+ "import": "./dist/module/index.js"
17
17
  }
18
18
  },
19
19
  "scripts": {
20
- "build": "revojs module build"
20
+ "build": "vite build",
21
+ "watch": "vite build --watch"
21
22
  },
22
23
  "dependencies": {
24
+ "@revojs/server": "*",
25
+ "@types/bun": "^1.4.2",
23
26
  "revojs": "*"
24
27
  },
25
28
  "devDependencies": {
26
- "@revojs/tsconfig": "*",
27
- "@types/bun": "^1.3.12",
28
- "tsdown": "^0.21.8"
29
+ "@revojs/tsconfig": "*"
29
30
  }
30
31
  }
@@ -1,8 +0,0 @@
1
- import * as _$revojs from "revojs";
2
-
3
- //#region src/runtime/routes/+middleware.d.ts
4
- declare const _default: {
5
- fetch(scope: _$revojs.Scope, next: (() => _$revojs.Result) | undefined): Promise<void | Response>;
6
- };
7
- //#endregion
8
- export { _default as default };
@@ -1 +0,0 @@
1
- export { };
@@ -1,18 +0,0 @@
1
- import { serve } from "bun";
2
- import { SERVER_CONTEXT, Scope } from "revojs";
3
- //#region src/runtime/server.ts
4
- serve({
5
- async fetch(request) {
6
- const server = await import("#server").then((module) => module.default);
7
- const scope = new Scope();
8
- scope.setContext(SERVER_CONTEXT, {
9
- states: {},
10
- request,
11
- response: { headers: new Headers() },
12
- variables: process.env
13
- });
14
- return await server.fetch(scope);
15
- },
16
- websocket: { message(_, __) {} }
17
- });
18
- //#endregion