Skip to content

Commit 4a7ea4a

Browse files
RubenVerborghjoachimvh
authored andcommittedNov 25, 2020
feat: Export WebSocket classes.
1 parent 29b659b commit 4a7ea4a

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed
 

‎index.ts

+5
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export * from './src/ldp/http/metadata/MetadataExtractor';
2424
export * from './src/ldp/http/metadata/MetadataParser';
2525
export * from './src/ldp/http/metadata/MetadataWriter';
2626
export * from './src/ldp/http/metadata/SlugParser';
27+
export * from './src/ldp/http/metadata/WebSocketMetadataWriter';
2728

2829
// LDP/HTTP/Response
2930
export * from './src/ldp/http/response/CreatedResponseDescription';
@@ -72,6 +73,7 @@ export * from './src/ldp/representation/ResourceIdentifier';
7273

7374
// LDP
7475
export * from './src/ldp/AuthenticatedLdpHandler';
76+
export * from './src/ldp/UnsecureWebSocketsProtocol';
7577

7678
// Logging
7779
export * from './src/logging/LazyLogger';
@@ -88,6 +90,8 @@ export * from './src/server/ExpressHttpServerFactory';
8890
export * from './src/server/HttpHandler';
8991
export * from './src/server/HttpRequest';
9092
export * from './src/server/HttpResponse';
93+
export * from './src/server/WebSocketServerFactory';
94+
export * from './src/server/WebSocketHandler';
9195

9296
// Storage/Accessors
9397
export * from './src/storage/accessors/DataAccessor';
@@ -122,6 +126,7 @@ export * from './src/storage/Conditions';
122126
export * from './src/storage/DataAccessorBasedStore';
123127
export * from './src/storage/FileIdentifierMapper';
124128
export * from './src/storage/LockingResourceStore';
129+
export * from './src/storage/MonitoringStore';
125130
export * from './src/storage/PassthroughStore';
126131
export * from './src/storage/PatchingStore';
127132
export * from './src/storage/RepresentationConvertingStore';

‎src/ldp/http/metadata/WebSocketMetadataWriter.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,21 @@ import type { HttpResponse } from '../../../server/HttpResponse';
22
import { addHeader } from '../../../util/HeaderUtil';
33
import { MetadataWriter } from './MetadataWriter';
44

5+
interface WebSocketSettings {
6+
hostname?: string;
7+
port?: number;
8+
protocol?: string;
9+
}
10+
511
/**
612
* A {@link MetadataWriter} that advertises a WebSocket through the Updates-Via header.
713
*/
814
export class WebSocketMetadataWriter extends MetadataWriter {
915
private readonly socketUrl: string;
1016

11-
public constructor({ hostname = 'localhost', port = 80, protocol = 'ws:' }:
12-
{ hostname?: string; port?: number; protocol?: string }) {
17+
public constructor(settings: WebSocketSettings = {}) {
1318
super();
19+
const { hostname = 'localhost', port = 80, protocol = 'ws:' } = settings;
1420
const secure = /^(?:https|wss)/u.test(protocol);
1521
const socketUrl = new URL(`${secure ? 'wss' : 'ws'}://${hostname}:${port}/`);
1622
if (socketUrl.hostname !== hostname) {

‎test/unit/ldp/http/metadata/WebSocketMetadataWriter.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { WebSocketMetadataWriter } from '../../../../../src/ldp/http/metadata/We
33

44
describe('A WebSocketMetadataWriter', (): void => {
55
it('writes a default HTTP WebSocket.', async(): Promise<void> => {
6-
const writer = new WebSocketMetadataWriter({});
6+
const writer = new WebSocketMetadataWriter();
77
const response = createResponse();
88
await writer.handle({ response } as any);
99
expect(response.getHeaders()).toEqual({ 'updates-via': 'ws://localhost' });

0 commit comments

Comments
 (0)
Please sign in to comment.