redweb 0.7.1 → 0.7.2

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/index.d.ts +15 -14
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -113,26 +113,27 @@ declare module 'redweb' {
113
113
  };
114
114
 
115
115
  /** Generic event‑driven registry for socket objects */
116
- export class SocketRegistry<T extends SocketWrapper = SocketWrapper> {
117
- protected clients: T[];
118
-
119
- onCreate?: (client: T) => boolean | void;
120
- onRemove?: (client: T) => boolean | void;
116
+ /** Generic event-driven registry for socket objects */
117
+ export class SocketRegistry<T extends SocketWrapper = SocketWrapper> extends EventEmitter {
118
+ protected items: T[];
121
119
 
122
120
  constructor();
123
121
 
124
- setCreateValidator(fn: (client: T) => boolean | void): void;
125
- setRemoveValidator(fn: (client: T) => boolean | void): void;
122
+ /** Adds a socket-bound object to the registry */
123
+ add(item: T): void;
126
124
 
127
- add(client: T): boolean;
128
- removeById(id: string): boolean;
125
+ /**
126
+ * Removes a socket-bound object by reference or id (default key: 'id')
127
+ * @param itemOrId Object or ID string
128
+ * @param by Key name to match against (default is 'id')
129
+ */
130
+ remove(itemOrId: T | string, by?: keyof T): boolean;
129
131
 
130
- getById(id: string): T | undefined;
131
- getBySocket(socket: WebSocket): T | undefined;
132
- allWithout(socket: WebSocket): T[];
132
+ /** Returns a shallow copy of all registered items */
133
+ all(): T[];
133
134
 
134
- broadcast(message: SocketMessage, excludeSocket?: WebSocket | null): void;
135
- getSanitizedList(): Record<string, any>[];
135
+ /** Returns the number of registered items */
136
+ count(): number;
136
137
  }
137
138
 
138
139
  /** ─────────────────── CONCRETE SERVERS ─────────────────── */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redweb",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "A way to quickly set up an express server",
5
5
  "main": "index.js",
6
6
  "scripts": {