@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
79 lines (77 loc) • 2.03 kB
JavaScript
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