@revojs/bun 0.1.56 → 0.2.0
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 +1 -6
- package/dist/index.js +64 -9
- package/dist/module/index.d.ts +2 -0
- package/dist/module/index.js +23 -0
- package/dist/routes/+middleware.d.ts +4 -0
- package/dist/{runtime/routes → routes}/+middleware.js +2 -2
- package/package.json +13 -12
- package/dist/runtime/routes/+middleware.d.ts +0 -8
- package/dist/runtime/server.d.ts +0 -1
- package/dist/runtime/server.js +0 -18
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,12 +1,67 @@
|
|
|
1
|
-
import {
|
|
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
|
|
4
|
-
return {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 {
|
|
67
|
+
export {};
|
|
@@ -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 };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { createStaticMiddleware } from "@revojs/server";
|
|
1
2
|
import { file } from "bun";
|
|
2
|
-
|
|
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.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"repository":
|
|
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": "
|
|
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 };
|
package/dist/runtime/server.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
package/dist/runtime/server.js
DELETED
|
@@ -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
|