@hazeljs/websocket 0.2.0-alpha.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.
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ var WebSocketModule_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.WebSocketModule = void 0;
14
+ const core_1 = require("@hazeljs/core");
15
+ const sse_handler_1 = require("./sse/sse.handler");
16
+ const room_manager_1 = require("./room/room.manager");
17
+ const core_2 = __importDefault(require("@hazeljs/core"));
18
+ /**
19
+ * WebSocket module for HazelJS
20
+ */
21
+ let WebSocketModule = WebSocketModule_1 = class WebSocketModule {
22
+ /**
23
+ * Configure WebSocket module
24
+ */
25
+ static forRoot(options = {}) {
26
+ const { isGlobal = true, enableSSE = true, enableRooms = true } = options;
27
+ core_2.default.info('Configuring WebSocket module...');
28
+ const providers = [];
29
+ // Add SSE handler if enabled
30
+ if (enableSSE) {
31
+ providers.push({
32
+ provide: sse_handler_1.SSEHandler,
33
+ useValue: new sse_handler_1.SSEHandler(),
34
+ });
35
+ }
36
+ // Add room manager if enabled
37
+ if (enableRooms) {
38
+ providers.push({
39
+ provide: room_manager_1.RoomManager,
40
+ useValue: new room_manager_1.RoomManager(),
41
+ });
42
+ }
43
+ return {
44
+ module: WebSocketModule_1,
45
+ providers,
46
+ exports: providers.map((p) => p.provide),
47
+ global: isGlobal,
48
+ };
49
+ }
50
+ /**
51
+ * Configure WebSocket module asynchronously
52
+ */
53
+ static forRootAsync(options) {
54
+ return {
55
+ module: WebSocketModule_1,
56
+ providers: [
57
+ {
58
+ provide: 'WEBSOCKET_OPTIONS',
59
+ useFactory: options.useFactory,
60
+ inject: options.inject || [],
61
+ },
62
+ {
63
+ provide: sse_handler_1.SSEHandler,
64
+ useFactory: (wsOptions) => {
65
+ return wsOptions.enableSSE !== false ? new sse_handler_1.SSEHandler() : null;
66
+ },
67
+ inject: ['WEBSOCKET_OPTIONS'],
68
+ },
69
+ {
70
+ provide: room_manager_1.RoomManager,
71
+ useFactory: (wsOptions) => {
72
+ return wsOptions.enableRooms !== false ? new room_manager_1.RoomManager() : null;
73
+ },
74
+ inject: ['WEBSOCKET_OPTIONS'],
75
+ },
76
+ ],
77
+ exports: [sse_handler_1.SSEHandler, room_manager_1.RoomManager],
78
+ global: true,
79
+ };
80
+ }
81
+ };
82
+ exports.WebSocketModule = WebSocketModule;
83
+ exports.WebSocketModule = WebSocketModule = WebSocketModule_1 = __decorate([
84
+ (0, core_1.HazelModule)({
85
+ providers: [],
86
+ exports: [],
87
+ })
88
+ ], WebSocketModule);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=websocket.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.test.d.ts","sourceRoot":"","sources":["../src/websocket.test.ts"],"names":[],"mappings":""}