@connected/client
Version:
The hassle free way to call your server-side code
34 lines • 1.44 kB
JavaScript
import Middleware from './middleware.js';
export default class Client {
static instance = new Client();
middleware = new Middleware();
use(...handlers) {
for (let i = 0; i < handlers.length; i += 1) {
const handler = handlers[i];
if (typeof handler !== 'function' ||
(handler.length !== 3 && handler.length !== 4)) {
throw new TypeError('use() needs a middleware function');
}
if (handler.length === 3) {
this.middleware.use((next, request, response) => handler(request, response, next));
}
else {
this.middleware.useErrorHandler((error, next, request, response) => handler(error, request, response, next));
}
}
}
execute(name, parameters, constructorParameters, group) {
const request = { name, parameters, constructorParameters, group };
const response = { result: null };
return new Promise((done) => {
this.middleware.go(done, request, response);
}).then((error) => (error ? Promise.reject(error) : response.result));
}
static use(...handlers) {
return Client.instance.use(...handlers);
}
static execute(name, parameters, constructorParameters, group) {
return Client.instance.execute(name, parameters, constructorParameters, group);
}
}
//# sourceMappingURL=client.js.map