@hokuto/jam-node
Version:
JAM Node TS, guardians and utils
56 lines (55 loc) • 1.72 kB
JavaScript
import fetch from "node-fetch";
import { CoreApi, } from "@hokuto/jam-core";
export function getJamData(url, options = {}) {
return fetch(url, {
method: "GET",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
...options,
},
})
.then((res) => {
return res.ok
? res.json()
: res.text().then((err) => Promise.reject(new Error(err)));
})
.then((data) => {
return Promise.resolve(data);
}, (err) => {
return Promise.reject(err);
});
}
export function getJamImage(baseurl, options = {}) {
return fetch(baseurl, {
method: "GET",
headers: {
"Content-Type": "image/png",
Accept: "application/json",
...options,
},
}).then((res) => res.blob());
}
export function getFeaturesMap(args) {
const url = CoreApi.Map.Search.Feature.Items(args);
const baseOptions = CoreApi.Options.getBaseOptions(args);
const searchPinOptions = CoreApi.Options.getSearchPinOptions(args);
const headers = {
...baseOptions,
...searchPinOptions,
};
// const headers = Api.getRequestOptions(args);
return getJamData(url, headers);
}
export function getFeaturesAtlas(args) {
const url = CoreApi.Atlas.Search.Feature.Items(args);
const baseOptions = CoreApi.Options.getBaseOptions(args);
const searchPinOptions = CoreApi.Options.getSearchPinOptions(args);
const atlasOptions = CoreApi.Options.getAtlasOptions(args);
const headers = {
...baseOptions,
...searchPinOptions,
...atlasOptions,
};
return getJamData(url, headers);
}