palette-sdk-typescript
Version:
TypeScript SDK for Spectro Cloud Palette API
37 lines • 1.21 kB
JavaScript
;
/**
* Copyright (c) Spectro Cloud
* SPDX-License-Identifier: Apache-2.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.customFetch = void 0;
const DEFAULT_BASE_URL = 'https://api.spectrocloud.com';
const getBody = (c) => {
const contentType = c.headers.get('content-type');
if (contentType && contentType.includes('application/json')) {
return c.json();
}
if (contentType && contentType.includes('application/octet-stream')) {
return c.blob();
}
return c.text();
};
const getUrl = (contextUrl, baseUrl = DEFAULT_BASE_URL) => {
const url = new URL(`${baseUrl}${contextUrl}`);
const pathname = url.pathname;
const search = url.search;
const requestUrl = new URL(`${baseUrl}${pathname}${search}`);
return requestUrl.toString();
};
const customFetch = async (url, options = {}) => {
const requestUrl = getUrl(url, options.baseUrl);
const requestInit = {
...options,
headers: options.headers,
};
const response = await fetch(requestUrl, requestInit);
const data = await getBody(response);
return data;
};
exports.customFetch = customFetch;
//# sourceMappingURL=index.js.map