UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

79 lines (77 loc) 2.03 kB
import { AxiosProvider } from "./chunk-ST6YPSAY.mjs"; import { HttpVerb } from "./chunk-YMTOGXYB.mjs"; import { RequestOptions, toPageOptions } from "./chunk-NYFC5ZUU.mjs"; // src/services/Api.ts var Api = class { constructor(provider = new AxiosProvider(), store) { this.provider = provider; this.store = store; } get(uri, options, transform, transformError = (r) => r) { return this.execute({ uri: uri.skip(toPageOptions(options)?.skip).take(toPageOptions(options)?.take), verb: HttpVerb.Get, transform, transformError, options: this.options(HttpVerb.Get, options) }); } post(uri, body, options = RequestOptions.Json, transform, transformError = (r) => r) { return this.execute({ uri, verb: HttpVerb.Post, body, transform, transformError, options: this.options(HttpVerb.Post, options) }); } put(uri, body, options = RequestOptions.Json, transform, transformError = (r) => r) { return this.execute({ uri, verb: HttpVerb.Put, body, transform, transformError, options: this.options(HttpVerb.Put, options) }); } patch(uri, body, options = RequestOptions.Json, transform, transformError = (r) => r) { return this.execute({ uri, verb: HttpVerb.Patch, body, transform, transformError, options: this.options(HttpVerb.Patch, options) }); } delete(uri, options = RequestOptions.Json, transform, transformError = (r) => r) { return this.execute({ uri, verb: HttpVerb.Delete, transform, transformError, options: this.options(HttpVerb.Delete, options) }); } options(verb, options) { return options instanceof RequestOptions ? options : RequestOptions.Json; } execute(req) { return this.store ? this.store.execute(req, () => this.provider.execute(req)) : this.provider.execute(req); } }; var api = new Api(); export { Api, api }; //# sourceMappingURL=chunk-F2JDRSD6.mjs.map