mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* Add type definitions for async-stream-emitter, consumable-stream, writable-consumable-stream, stream-demux, ag-channel, ag-simple-broker, ncom, async-iterable-stream * Upgrade sc-broker to 8.0 * Upgrade socketcluster-client to 15.1 * Rename definition files to match module file names The files in the module were renamed. * Move socketcluster-server to v14 folder In preparation for socketcluster-server v15, since the old version is still used by other type packages. * Update scc-broker-client to 7.0 * Add current socketcluster-server type definitions Current version is v15.0 * Move sc-broker-cluster to v6 folder In preparation for sc-broker-cluster v9, since the old version is still used by other type packages. * Add current sc-broker-cluster type definitions Current version is v9.0 * Move sc-channel to v1 folder In preparation for sc-channel v2, since the old version is still used by other type packages. * Add current sc-channel type definitions Current version is v2.0 * Include the relevant sc-broker-cluster type-definitions directly in sc-channel It can be run using older and newer version of sc-broker-cluster, which have differently versioned dependencies. * Move sc-channel tests to sc-broker-cluster In the tests we use sc-broker-cluster. If the tests are in sc-channel, they drag in all dependencies for sc-broker-cluster, including esnext.asynciterable, which we don't want. * Simplify sc-errors tests In the tests we used socketcluster-server. That dragged in all of its dependencies, including esnext.asynciterable, which we don't want. * Move sc-channel to v1 folder In preparation for sc-channel v2, since the old version is still used by other type packages.
44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
// Adapted from README
|
|
|
|
import http = require('http');
|
|
import socketClusterServer = require('socketcluster-server');
|
|
|
|
const httpServer = http.createServer();
|
|
let agServer = socketClusterServer.attach(httpServer);
|
|
|
|
(async () => {
|
|
// Handle new inbound sockets.
|
|
// tslint:disable-next-line: await-promise Bug in tslint: https://github.com/palantir/tslint/issues/3997
|
|
for await (const { socket } of agServer.listener('connection')) {
|
|
(async () => {
|
|
// Set up a loop to handle and respond to RPCs for a procedure.
|
|
// tslint:disable-next-line: await-promise Bug in tslint: https://github.com/palantir/tslint/issues/3997
|
|
for await (const req of socket.procedure('customProc')) {
|
|
if (req.data.bad) {
|
|
const error = new Error('Server failed to execute the procedure');
|
|
error.name = 'BadCustomError';
|
|
req.error(error);
|
|
} else {
|
|
req.end('Success');
|
|
}
|
|
}
|
|
})();
|
|
|
|
(async () => {
|
|
// Set up a loop to handle remote transmitted events.
|
|
// tslint:disable-next-line: await-promise Bug in tslint: https://github.com/palantir/tslint/issues/3997
|
|
for await (const data of socket.receiver('customRemoteEvent')) {
|
|
// $ExpectType any
|
|
data;
|
|
}
|
|
})();
|
|
}
|
|
})();
|
|
|
|
httpServer.listen(8000);
|
|
|
|
agServer = socketClusterServer.attach(httpServer, {
|
|
protocolVersion: 1,
|
|
path: '/socketcluster/',
|
|
});
|