UNPKG

@api.global/typedrequest

Version:

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

34 lines 2.8 kB
import { TypedRouter } from './typedrequest.classes.typedrouter.js'; import * as plugins from './plugins.js'; /** * a typed target defines a target for requests */ export class TypedTarget { constructor(optionsArg) { if (optionsArg.postMethodWithTypedRouter && !optionsArg.typedRouterRef) { throw new Error('you have to specify a typedrouter when using postmethod with typedrouter'); } this.options = optionsArg; } async post(payloadArg) { let responseInterest; // having a typedrouter allows us to work with async request response cycles. if (this.options.typedRouterRef) { responseInterest = await this.options.typedRouterRef.fireEventInterestMap.addInterest(payloadArg.correlation.id, payloadArg); } const postMethod = this.options.postMethod || this.options.postMethodWithTypedRouter; const postMethodReturnValue = await postMethod(payloadArg); let responseBody; if (responseInterest) { responseBody = (await responseInterest.interestFullfilled); } else if (postMethodReturnValue) { responseBody = postMethodReturnValue; } else { responseBody = payloadArg; } return responseBody; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRyZXF1ZXN0LmNsYXNzZXMudHlwZWR0YXJnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90eXBlZHJlcXVlc3QuY2xhc3Nlcy50eXBlZHRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUE4QnhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFLdEIsWUFBWSxVQUEwQztRQUNwRCxJQUFJLFVBQVUsQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQzVCLENBQUM7SUFVTSxLQUFLLENBQUMsSUFBSSxDQUNmLFVBQWE7UUFFYixJQUFJLGdCQUdILENBQUM7UUFDRiw2RUFBNkU7UUFDN0UsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2hDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUNuRixVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFDekIsVUFBVSxDQUNYLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztRQUNyRixNQUFNLHFCQUFxQixHQUFHLE1BQU0sVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNELElBQUksWUFBZSxDQUFDO1FBQ3BCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixZQUFZLEdBQUcsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLGtCQUFrQixDQUFNLENBQUM7UUFDbEUsQ0FBQzthQUFNLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUNqQyxZQUFZLEdBQUcscUJBQTBCLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0YifQ==