airdcpp-apisocket
Version:
Javascript connector for AirDC++ Web API
35 lines • 1.2 kB
JavaScript
import { Socket } from '../../NodeSocket.js';
import { WebSocket } from 'mock-socket';
import ApiConstants from '../../ApiConstants.js';
import { DEFAULT_AUTH_RESPONSE, DEFAULT_CONNECT_CREDENTIALS, MOCK_SERVER_URL } from './mock-data.js';
const getDefaultSocketOptions = () => ({
url: MOCK_SERVER_URL,
logOutput: console,
logLevel: 'warn',
});
export const getSocket = (socketOptions = {}) => {
const socket = Socket({
...getDefaultSocketOptions(),
...socketOptions
}, WebSocket);
return { socket };
};
const getDefaultConnectOptions = () => ({
console,
authResponse: DEFAULT_AUTH_RESPONSE,
});
export const getConnectedSocket = async (server, userOptions) => {
const options = {
...getDefaultConnectOptions(),
...userOptions,
};
const removeAuthHandler = server.addRequestHandler('POST', ApiConstants.LOGIN_URL, options.authResponse, options.authCallback);
const { socket } = getSocket({
...DEFAULT_CONNECT_CREDENTIALS,
...getDefaultSocketOptions(),
...options.socketOptions
});
await socket.connect();
return { socket, removeAuthHandler };
};
//# sourceMappingURL=mock-socket.js.map