Registry / devops / badman-websocket-starter

badman-websocket-starter

JSON →
library0.1.17jsnpmunverified

An object-oriented, configurable, and extensible WebSocket server framework built on Node.js. Version 0.1.17 provides abstract classes `AbstractWebSocketServer` and `AbstractWebSocketServerConnection` for implementing custom WebSocket servers with heartbeats, connection management, and logging via `SingletonObjectFactory2`. Ships TypeScript types. Designed for OOP patterns. Differentiates from raw ws by enforcing class-based architecture.

npm install badman-websocket-starter
INSTALL
IMPORT
SIG · BADMAN-WEBSOCKET-S
B
badman-websocket-starter
devopsjavascriptv0.1.17
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

AbstractWebSocketServer
import { AbstractWebSocketServer } from 'badman-websocket-starter'
const AbstractWebSocketServer = require('badman-websocket-starter').AbstractWebSocketServer
ESM import; CJS requires `.default` for default exports.
AbstractWebSocketServerConnection
import { AbstractWebSocketServerConnection } from 'badman-websocket-starter'
const { AbstractWebSocketServerConnection } = require('badman-websocket-starter')
Named export; avoid destructuring CJS require pattern.
WebSocketServerProperties
import { WebSocketServerProperties } from 'badman-websocket-starter'
import WebSocketServerProperties from 'badman-websocket-starter'
Type/interface, not a value; use named import.

Create a custom WebSocket server by extending abstract classes and configuring properties.

import { AbstractWebSocketServer, AbstractWebSocketServerConnection, WebSocketServerProperties } from 'badman-websocket-starter'; import { WebSocket } from 'ws'; class CustomConnection extends AbstractWebSocketServerConnection<RequestBodyEntity> { onMessage(msg: Buffer) { console.log('Received:', msg.toString()); } } class CustomServer extends AbstractWebSocketServer<RequestBodyEntity, CustomConnection> { protected newConnection(requestBody: RequestBodyEntity, ws: WebSocket): CustomConnection { return new CustomConnection(this.serverProperties, ws, requestBody); } } const props: WebSocketServerProperties = { port: 8080, heartBeatInterval: 10000 }; const server = new CustomServer(props, console); server.afterInitialized();
Debug
Known issues
gotchaVersion 0.1.x is pre-1.0; API may break without major version bump.
fix
Pin to exact version and test upgrades.
affects: <1.0.0
gotchaAbstractWebSocketServer constructor expects serverProperties and logger; logger must implement Logger interface.
fix
Provide a Logger object with log methods (info, error, etc.).
affects: >=0.1.0
gotchaAfterInitialized() must be called manually; not automatic.
fix
Call server.afterInitialized() after construction.
affects: >=0.1.0
gotchaUses SingletonObjectFactory2 for logging; must be initialized before use.
fix
Initialize SingletonObjectFactory2.init(Logging) before creating server.
affects: >=0.1.0
Errors
Common errors & fixes
TypeError: Cannot read properties of undefined (reading 'logger')
SingletonObjectFactory2 not initialized before trying to get logger.
fix
Ensure SingletonObjectFactory2.init<Logging>(Logging) is called first.
Class extends value undefined is not a constructor or null
CommonJS require instead of ESM import, causing incorrect loading.
fix
Use 'import { ... } from 'badman-websocket-starter'' in ESM project.
Property 'afterInitialized' does not exist on type 'typeof AbstractWebSocketServer'
Trying to call static method on class instead of instance.
fix
Create an instance first: const server = new CustomServer(props, logger); server.afterInitialized();
Upgrade
Version history
0.1.17latest on npm
Audit
Dependencies
wsrequiredUnderlying WebSocket library
Agent activity
8 hits · last 30 days
node
6
Resources
badman-websocket-starter — npm install badman-websocket-starter · libregistry