]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commit
refactor(ui-common): generic WebSocket adapter factory with converter injection
authorJérôme Benoit <jerome.benoit@sap.com>
Thu, 16 Apr 2026 20:39:18 +0000 (22:39 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Thu, 16 Apr 2026 20:39:18 +0000 (22:39 +0200)
commite6be8411376eca8624601b70323ae557cae797ed
tree178c3ecc6e0471e7cc873cfc0fd91e9aba0da245
parenta0ba4b54c0ffe51408cd2e638231225c86510fae
refactor(ui-common): generic WebSocket adapter factory with converter injection

Create ui/common/src/client/adapter.ts — a generic createWsAdapter(ws, options)
factory that implements all WebSocketLike callback boilerplate once. Both adapters
become thin wrappers specifying only their platform-specific data converter:

- createBrowserWsAdapter: data => data as string, errorDefault: 'WebSocket error'
- createWsAdapter (CLI): toDataString() for Buffer/ArrayBuffer, errorDefault: 'Unknown error'

Net reduction: ~143 lines of duplicated boilerplate eliminated.
Add DataConverter type and tests for the generic factory.
ui/cli/src/client/ws-adapter.ts
ui/common/src/client/adapter.ts [new file with mode: 0644]
ui/common/src/client/browser-adapter.ts
ui/common/src/client/types.ts
ui/common/src/index.ts
ui/common/tests/adapter.test.ts [new file with mode: 0644]