UNPKG

@api.global/typedrequest

Version:

A TypeScript library for making typed requests towards APIs, including facilities for handling requests, routing, and virtual stream handling.

41 lines 3.04 kB
import * as plugins from './plugins.js'; import { TypedResponseError } from './typedrequest.classes.typedresponseerror.js'; /** * typed handler for dealing with typed requests */ export class TypedHandler { constructor(methodArg, handlerFunctionArg) { this.method = methodArg; this.handlerFunction = handlerFunctionArg; } /** * adds a response to the typedRequest * @param typedRequestArg */ async addResponse(typedRequestArg) { if (typedRequestArg.method !== this.method) { throw new Error('this handler has been given a wrong method to answer to. Please use a TypedRouter to filter requests'); } let typedResponseError; const response = await this.handlerFunction(typedRequestArg.request).catch((e) => { if (e instanceof TypedResponseError) { typedResponseError = e; } else { console.log(e); } }); if (typedResponseError) { typedRequestArg.error = { text: typedResponseError.errorText, data: typedResponseError.errorData, }; } if (response) { typedRequestArg.response = response; } typedRequestArg?.correlation?.phase ? (typedRequestArg.correlation.phase = 'response') : null; return typedRequestArg; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRyZXF1ZXN0LmNsYXNzZXMudHlwZWRoYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHlwZWRyZXF1ZXN0LmNsYXNzZXMudHlwZWRoYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBTWxGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFJdkIsWUFBWSxTQUFzQixFQUFFLGtCQUF1QztRQUN6RSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQWtCO1FBQ3pDLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FDYixzR0FBc0csQ0FDdkcsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLGtCQUFzQyxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0UsSUFBSSxDQUFDLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztnQkFDcEMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixlQUFlLENBQUMsS0FBSyxHQUFHO2dCQUN0QixJQUFJLEVBQUUsa0JBQWtCLENBQUMsU0FBUztnQkFDbEMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFNBQVM7YUFDbkMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsZUFBZSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDdEMsQ0FBQztRQUVELGVBQWUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFOUYsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztDQUNGIn0=