tinybird-sdk
Version:
Tinybird Node.js SDK
1 lines • 1.69 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.fetch=void 0;var _https=_interopRequireDefault(require("https")),_nodeFetch=_interopRequireDefault(require("node-fetch")),_configuration=require("../stores/configuration"),_exceptions=_interopRequireDefault(require("./exceptions")),_logger=require("../lib/logger"),_package=_interopRequireDefault(require("../../package.json"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}const logger=(0,_logger.getLogger)("http-module"),fetch=async(a,b={})=>{const c=await(0,_nodeFetch.default)(`${(0,_configuration.getConfiguration)(_configuration.Settings.API_URL)}${a}`,{...b,agent:new _https.default.Agent({keepAlive:!0}),headers:{Authorization:`Bearer ${(0,_configuration.getConfiguration)(_configuration.Settings.API_TOKEN)}`,Accept:"application/json","User-Agent":`tinybird-node-sdk@${_package.default.version}`,...b.headers}});if(c.ok){logger.debug(`[${c.status}] ${b.method||"GET"} ${(0,_configuration.getConfiguration)(_configuration.Settings.API_URL)}${a}`);const d=c.headers.raw()["content-type"]&&"application/json; charset=UTF-8"===c.headers.raw()["content-type"][0];return d?c.json():c.text()}if(logger.error(`[${c.status}] ${b.method||"GET"} ${(0,_configuration.getConfiguration)(_configuration.Settings.API_URL)}${a}`),logger.debug(c),400===c.status)throw new Error(_exceptions.default.BAD_REQUEST);else if(401===c.status)throw new Error(_exceptions.default.INVALID_API_TOKEN);else if(403===c.status)throw new Error(_exceptions.default.INSUFFICIENT_PERMISSIONS);else if(404===c.status)throw new Error(_exceptions.default.NOT_FOUND);throw new Error(c.statusText)};exports.fetch=fetch;