@baqhub/sdk
Version:
The official JavaScript SDK for the BAQ federated app platform.
50 lines (49 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Api = void 0;
const tslib_1 = require("tslib");
const IO = tslib_1.__importStar(require("../helpers/io.js"));
const http_js_1 = require("./http.js");
async function getApi(model, url, options) {
const [headers, response] = await http_js_1.Http.get(url, options);
return [headers, IO.decode(model, response)];
}
async function postApi(responseModel, bodyModel, body, url, options) {
const [headers, response] = await http_js_1.Http.post(bodyModel.encode(body), url, options);
return [headers, IO.decode(responseModel, response)];
}
async function putApi(responseModel, bodyModel, body, url, options) {
const [headers, response] = await http_js_1.Http.put(bodyModel.encode(body), url, options);
return [headers, IO.decode(responseModel, response)];
}
async function patchApi(responseModel, bodyModel, body, url, options) {
const [headers, response] = await http_js_1.Http.patch(bodyModel.encode(body), url, options);
return [headers, IO.decode(responseModel, response)];
}
async function deleteApi(responseModel, bodyModel, body, url, options) {
const [headers, response] = await http_js_1.Http.deleteBody(bodyModel.encode(body), url, options);
return [headers, IO.decode(responseModel, response)];
}
async function postBlobApi(responseModel, body, url, options) {
const [headers, response] = await http_js_1.Http.post(body, url, options);
return [headers, IO.decode(responseModel, response)];
}
function eventSourceApi(messageModel, onMessage, eventName, url, options) {
const onRawMessage = (event) => {
if (event.event !== eventName) {
return;
}
const message = IO.decode(messageModel, JSON.parse(event.data));
onMessage(message);
};
http_js_1.Http.eventSource(onRawMessage, url, options);
}
exports.Api = {
get: getApi,
post: postApi,
put: putApi,
patch: patchApi,
delete: deleteApi,
postBlob: postBlobApi,
eventSource: eventSourceApi,
};