UNPKG

@querc/squidex-client

Version:

NodeJS client for the [Squidex](https://squidex.io/) CMS

85 lines (65 loc) 9.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodeFetchClient = void 0; var _nodeFetch = _interopRequireWildcard(require("node-fetch")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /** * Basically just wrapper around node-fetch, with some Squidex specific things & error handling */ class NodeFetchClient { constructor(config) { this.config = config; } async send(params) { if (params.contentType === 'application/x-www-form-urlencoded') { params.data = new URLSearchParams(params.data).toString(); } else { params.data = JSON.stringify(params.data); } const headers = {}; if (params.contentType === undefined) { params.contentType = 'application/json'; } headers['Content-Type'] = params.contentType; if (params.token !== undefined) { headers['Authorization'] = `Bearer ${params.token}`; if (this.config.languages !== undefined) { headers['X-Languages'] = this.config.languages.join(','); } if (this.config.flatten) { headers['X-Flatten'] = 'true'; } if (params.draft) { headers['X-Unpublished'] = 'true'; } } const request = { method: params.method, body: params.data, headers }; try { const response = await (0, _nodeFetch.default)(this.config.url + params.path, request); // Catch error responses & throw an error if (!response.ok) { const body = await response.text(); throw new Error(`[HttpClient] HTTP error ${response.status}: ${response.statusText} - ${body}`); } if (response.status === 204) { return; } else { const responseData = await response.json(); return responseData; } } catch (e) { if (e instanceof _nodeFetch.FetchError) { throw new Error(`[HttpClient] Fetch error (${e.type}): ${e.message}`); } throw e; } } } exports.NodeFetchClient = NodeFetchClient; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odHRwL25vZGUtZmV0Y2guY2xpZW50LnRzIl0sIm5hbWVzIjpbIk5vZGVGZXRjaENsaWVudCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2VuZCIsInBhcmFtcyIsImNvbnRlbnRUeXBlIiwiZGF0YSIsIlVSTFNlYXJjaFBhcmFtcyIsInRvU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImhlYWRlcnMiLCJ1bmRlZmluZWQiLCJ0b2tlbiIsImxhbmd1YWdlcyIsImpvaW4iLCJmbGF0dGVuIiwiZHJhZnQiLCJyZXF1ZXN0IiwibWV0aG9kIiwiYm9keSIsInJlc3BvbnNlIiwidXJsIiwicGF0aCIsIm9rIiwidGV4dCIsIkVycm9yIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInJlc3BvbnNlRGF0YSIsImpzb24iLCJlIiwiRmV0Y2hFcnJvciIsInR5cGUiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQUtBOzs7QUFHTyxNQUFNQSxlQUFOLENBQTRDO0FBQy9DQyxFQUFBQSxXQUFXLENBQWtCQyxNQUFsQixFQUFzRDtBQUFBLFNBQXBDQSxNQUFvQyxHQUFwQ0EsTUFBb0M7QUFBRTs7QUFFbkUsUUFBYUMsSUFBYixDQUEyQ0MsTUFBM0MsRUFBa0Y7QUFDOUUsUUFBSUEsTUFBTSxDQUFDQyxXQUFQLEtBQXVCLG1DQUEzQixFQUFnRTtBQUM1REQsTUFBQUEsTUFBTSxDQUFDRSxJQUFQLEdBQWMsSUFBSUMsZUFBSixDQUFvQkgsTUFBTSxDQUFDRSxJQUEzQixFQUFpQ0UsUUFBakMsRUFBZDtBQUNILEtBRkQsTUFFTztBQUNISixNQUFBQSxNQUFNLENBQUNFLElBQVAsR0FBY0csSUFBSSxDQUFDQyxTQUFMLENBQWVOLE1BQU0sQ0FBQ0UsSUFBdEIsQ0FBZDtBQUNIOztBQUVELFVBQU1LLE9BQWtDLEdBQUcsRUFBM0M7O0FBRUEsUUFBSVAsTUFBTSxDQUFDQyxXQUFQLEtBQXVCTyxTQUEzQixFQUFzQztBQUNsQ1IsTUFBQUEsTUFBTSxDQUFDQyxXQUFQLEdBQXFCLGtCQUFyQjtBQUNIOztBQUNETSxJQUFBQSxPQUFPLENBQUMsY0FBRCxDQUFQLEdBQTBCUCxNQUFNLENBQUNDLFdBQWpDOztBQUVBLFFBQUlELE1BQU0sQ0FBQ1MsS0FBUCxLQUFpQkQsU0FBckIsRUFBZ0M7QUFDNUJELE1BQUFBLE9BQU8sQ0FBQyxlQUFELENBQVAsR0FBNEIsVUFBU1AsTUFBTSxDQUFDUyxLQUFNLEVBQWxEOztBQUVBLFVBQUksS0FBS1gsTUFBTCxDQUFZWSxTQUFaLEtBQTBCRixTQUE5QixFQUF5QztBQUNyQ0QsUUFBQUEsT0FBTyxDQUFDLGFBQUQsQ0FBUCxHQUF5QixLQUFLVCxNQUFMLENBQVlZLFNBQVosQ0FBc0JDLElBQXRCLENBQTJCLEdBQTNCLENBQXpCO0FBQ0g7O0FBRUQsVUFBSSxLQUFLYixNQUFMLENBQVljLE9BQWhCLEVBQXlCO0FBQ3JCTCxRQUFBQSxPQUFPLENBQUMsV0FBRCxDQUFQLEdBQXVCLE1BQXZCO0FBQ0g7O0FBRUQsVUFBSVAsTUFBTSxDQUFDYSxLQUFYLEVBQWtCO0FBQ2ROLFFBQUFBLE9BQU8sQ0FBQyxlQUFELENBQVAsR0FBMkIsTUFBM0I7QUFDSDtBQUNKOztBQUVELFVBQU1PLE9BQU8sR0FBRztBQUNaQyxNQUFBQSxNQUFNLEVBQUVmLE1BQU0sQ0FBQ2UsTUFESDtBQUVaQyxNQUFBQSxJQUFJLEVBQUVoQixNQUFNLENBQUNFLElBRkQ7QUFHWkssTUFBQUE7QUFIWSxLQUFoQjs7QUFNQSxRQUFJO0FBQ0EsWUFBTVUsUUFBUSxHQUFHLE1BQU0sd0JBQU0sS0FBS25CLE1BQUwsQ0FBWW9CLEdBQVosR0FBa0JsQixNQUFNLENBQUNtQixJQUEvQixFQUFxQ0wsT0FBckMsQ0FBdkIsQ0FEQSxDQUdBOztBQUNBLFVBQUksQ0FBQ0csUUFBUSxDQUFDRyxFQUFkLEVBQWtCO0FBQ2QsY0FBTUosSUFBSSxHQUFHLE1BQU1DLFFBQVEsQ0FBQ0ksSUFBVCxFQUFuQjtBQUNBLGNBQU0sSUFBSUMsS0FBSixDQUFXLDJCQUEwQkwsUUFBUSxDQUFDTSxNQUFPLEtBQUlOLFFBQVEsQ0FBQ08sVUFBVyxNQUFLUixJQUFLLEVBQXZGLENBQU47QUFDSDs7QUFFRCxVQUFJQyxRQUFRLENBQUNNLE1BQVQsS0FBb0IsR0FBeEIsRUFBNkI7QUFDekI7QUFDSCxPQUZELE1BRU87QUFDSCxjQUFNRSxZQUFZLEdBQUcsTUFBTVIsUUFBUSxDQUFDUyxJQUFULEVBQTNCO0FBQ0EsZUFBT0QsWUFBUDtBQUNIO0FBQ0osS0FmRCxDQWVFLE9BQU9FLENBQVAsRUFBVTtBQUNSLFVBQUlBLENBQUMsWUFBWUMscUJBQWpCLEVBQTZCO0FBQ3pCLGNBQU0sSUFBSU4sS0FBSixDQUFXLDZCQUE0QkssQ0FBQyxDQUFDRSxJQUFLLE1BQUtGLENBQUMsQ0FBQ0csT0FBUSxFQUE3RCxDQUFOO0FBQ0g7O0FBRUQsWUFBTUgsQ0FBTjtBQUNIO0FBQ0o7O0FBN0Q4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmZXRjaCwgeyBGZXRjaEVycm9yIH0gZnJvbSAnbm9kZS1mZXRjaCc7XG5cbmltcG9ydCB7IFNxdWlkZXhDbGllbnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwU2VuZFBhcmFtcyB9IGZyb20gJy4vaHR0cC1jbGllbnQnO1xuXG4vKipcbiAqIEJhc2ljYWxseSBqdXN0IHdyYXBwZXIgYXJvdW5kIG5vZGUtZmV0Y2gsIHdpdGggc29tZSBTcXVpZGV4IHNwZWNpZmljIHRoaW5ncyAmIGVycm9yIGhhbmRsaW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBOb2RlRmV0Y2hDbGllbnQgaW1wbGVtZW50cyBIdHRwQ2xpZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogU3F1aWRleENsaWVudENvbmZpZ3VyYXRpb24pIHt9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VuZDxUUmVxID0gYW55LCBUUmVzID0gVFJlcT4ocGFyYW1zOiBIdHRwU2VuZFBhcmFtcyk6IFByb21pc2U8VFJlcz4ge1xuICAgICAgICBpZiAocGFyYW1zLmNvbnRlbnRUeXBlID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykge1xuICAgICAgICAgICAgcGFyYW1zLmRhdGEgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcy5kYXRhKS50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLmRhdGEgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMuZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICAgICAgaWYgKHBhcmFtcy5jb250ZW50VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJhbXMuY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgICAgIH1cbiAgICAgICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSBwYXJhbXMuY29udGVudFR5cGU7XG5cbiAgICAgICAgaWYgKHBhcmFtcy50b2tlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSBgQmVhcmVyICR7cGFyYW1zLnRva2VufWA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYW5ndWFnZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGhlYWRlcnNbJ1gtTGFuZ3VhZ2VzJ10gPSB0aGlzLmNvbmZpZy5sYW5ndWFnZXMuam9pbignLCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuZmxhdHRlbikge1xuICAgICAgICAgICAgICAgIGhlYWRlcnNbJ1gtRmxhdHRlbiddID0gJ3RydWUnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGFyYW1zLmRyYWZ0KSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1snWC1VbnB1Ymxpc2hlZCddID0gJ3RydWUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogcGFyYW1zLm1ldGhvZCxcbiAgICAgICAgICAgIGJvZHk6IHBhcmFtcy5kYXRhLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmNvbmZpZy51cmwgKyBwYXJhbXMucGF0aCwgcmVxdWVzdCk7XG5cbiAgICAgICAgICAgIC8vIENhdGNoIGVycm9yIHJlc3BvbnNlcyAmIHRocm93IGFuIGVycm9yXG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtIdHRwQ2xpZW50XSBIVFRQIGVycm9yICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fSAtICR7Ym9keX1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YSBhcyBUUmVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtIdHRwQ2xpZW50XSBGZXRjaCBlcnJvciAoJHtlLnR5cGV9KTogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=