@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
JavaScript
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==