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.75 kB
import { TypedRouter } from './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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50eXBlZHRhcmdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMudHlwZWR0YXJnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBOEJ4Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBS3RCLFlBQVksVUFBMEM7UUFDcEQsSUFBSSxVQUFVLENBQUMseUJBQXlCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBVU0sS0FBSyxDQUFDLElBQUksQ0FDZixVQUFhO1FBRWIsSUFBSSxnQkFHSCxDQUFDO1FBQ0YsNkVBQTZFO1FBQzdFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoQyxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FDbkYsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQ3pCLFVBQVUsQ0FDWCxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7UUFDckYsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxJQUFJLFlBQWUsQ0FBQztRQUNwQixJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsWUFBWSxHQUFHLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBTSxDQUFDO1FBQ2xFLENBQUM7YUFBTSxJQUFJLHFCQUFxQixFQUFFLENBQUM7WUFDakMsWUFBWSxHQUFHLHFCQUEwQixDQUFDO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGIn0=