UNPKG

@umbraco/headless-client

Version:
131 lines 14.3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApiRequest = void 0; var Endpoint_1 = require("./Endpoint"); var APIRequestError_1 = require("./APIRequestError"); var axios_1 = __importDefault(require("axios")); var form_data_1 = __importDefault(require("form-data")); /** @internal */ var ApiRequest = /** @class */ (function () { function ApiRequest(options, endpoint, data) { var _this = this; this.options = options; this.endpoint = endpoint; this.data = data; this.promise = function () { return __awaiter(_this, void 0, void 0, function () { var headers, path, url, requestInit, method, token, response, err_1; return __generator(this, function (_a) { switch (_a.label) { case 0: headers = { 'Content-Type': 'application/json', Accept: 'application/json+hal', 'api-version': '2.2' }; if ('projectAlias' in this.options) { headers['umb-project-alias'] = this.options.projectAlias; } if (this.endpoint.source === Endpoint_1.EndpointSource.CDN && this.options.language) { headers['Accept-Language'] = this.options.language; } if ('apiKey' in this.options && this.options.apiKey) { headers['api-key'] = this.options.apiKey; } path = this.endpoint.getPath(); url = 'https://cdn.umbraco.io'; if (this.endpoint.source === Endpoint_1.EndpointSource.ContentManagement) { url = 'apiProxyUrl' in this.options ? this.options.apiProxyUrl : 'https://api.umbraco.io'; } else if ('cdnProxyUrl' in this.options) { url = this.options.cdnProxyUrl; } else if (this.options.preview) { url = 'https://preview.umbraco.io'; } url = url.endsWith('/') ? "" + url + path.substr(1) : "" + url + path; requestInit = { url: url, method: this.endpoint.method, headers: {} }; method = this.endpoint.method.toLowerCase(); if ((method === 'post' || method === 'put') && !!this.data) { if (this.data instanceof form_data_1.default) { headers['Content-Type'] = "multipart/form-data; boundary=" + this.data.getBoundary(); requestInit.data = this.data; } else if (this.data instanceof URLSearchParams) { headers['Content-Type'] = 'application/x-www-form-urlencoded'; requestInit.data = this.data; } else { requestInit.data = JSON.stringify(this.data); } } requestInit.headers = headers; if ('accessTokenResolver' in this.options) { token = this.options.accessTokenResolver(requestInit); if (token) { requestInit.headers.Authorization = "Bearer " + token; } } _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, axios_1.default(requestInit)]; case 2: response = _a.sent(); return [2 /*return*/, response.data]; case 3: err_1 = _a.sent(); throw new APIRequestError_1.APIRequestError(err_1.message, err_1.response); case 4: return [2 /*return*/]; } }); }); }; } return ApiRequest; }()); exports.ApiRequest = ApiRequest; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpUmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BcGlSZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFxRDtBQUVyRCxxREFBbUQ7QUFDbkQsZ0RBQWlEO0FBQ2pELHdEQUFnQztBQUVoQyxnQkFBZ0I7QUFDaEI7SUFDRSxvQkFDbUIsT0FBcUMsRUFDL0MsUUFBa0IsRUFDbEIsSUFBVTtRQUhuQixpQkFJSTtRQUhlLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQy9DLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUdaLFlBQU8sR0FBRzs7Ozs7d0JBQ1QsT0FBTyxHQUFROzRCQUNuQixjQUFjLEVBQUUsa0JBQWtCOzRCQUNsQyxNQUFNLEVBQUUsc0JBQXNCOzRCQUM5QixhQUFhLEVBQUUsS0FBSzt5QkFDckIsQ0FBQTt3QkFFRCxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFOzRCQUNsQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQTt5QkFDekQ7d0JBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyx5QkFBYyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTs0QkFDeEUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUE7eUJBQ25EO3dCQUVELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7NEJBQ25ELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQTt5QkFDekM7d0JBRUssSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7d0JBQ2hDLEdBQUcsR0FBRyx3QkFBd0IsQ0FBQTt3QkFFbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyx5QkFBYyxDQUFDLGlCQUFpQixFQUFFOzRCQUM3RCxHQUFHLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPO2dDQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dDQUMxQixDQUFDLENBQUMsd0JBQXdCLENBQUE7eUJBQzdCOzZCQUFNLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7NEJBQ3hDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQTt5QkFDL0I7NkJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTs0QkFDL0IsR0FBRyxHQUFHLDRCQUE0QixDQUFBO3lCQUNuQzt3QkFFRCxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUMsS0FBRyxHQUFHLEdBQUcsSUFBTSxDQUFBO3dCQUUvRCxXQUFXLEdBQXVCOzRCQUN0QyxHQUFHLEVBQUUsR0FBRzs0QkFDUixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNOzRCQUM1QixPQUFPLEVBQUUsRUFBRTt5QkFDWixDQUFBO3dCQUVLLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQTt3QkFDakQsSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFOzRCQUMxRCxJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksbUJBQVEsRUFBRTtnQ0FDakMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLG1DQUFpQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBSSxDQUFBO2dDQUNwRixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7NkJBQzdCO2lDQUFNLElBQUksSUFBSSxDQUFDLElBQUksWUFBWSxlQUFlLEVBQUU7Z0NBQy9DLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxtQ0FBbUMsQ0FBQTtnQ0FDN0QsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBOzZCQUM3QjtpQ0FBTTtnQ0FDTCxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBOzZCQUM3Qzt5QkFDRjt3QkFDRCxXQUFXLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTt3QkFFN0IsSUFBSSxxQkFBcUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFOzRCQUVuQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQTs0QkFDM0QsSUFBSSxLQUFLLEVBQUU7Z0NBQ1QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsWUFBVSxLQUFPLENBQUE7NkJBQ3REO3lCQUNGOzs7O3dCQUdrQixxQkFBTSxlQUFLLENBQUMsV0FBVyxDQUFDLEVBQUE7O3dCQUFuQyxRQUFRLEdBQUcsU0FBd0I7d0JBQ3pDLHNCQUFPLFFBQVEsQ0FBQyxJQUFTLEVBQUE7Ozt3QkFFekIsTUFBTSxJQUFJLGlDQUFlLENBQUMsS0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7Ozs7YUFFdkQsQ0FBQTtJQXRFRSxDQUFDO0lBdUVOLGlCQUFDO0FBQUQsQ0FBQyxBQTVFRCxJQTRFQztBQTVFWSxnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50LCBFbmRwb2ludFNvdXJjZSB9IGZyb20gJy4vRW5kcG9pbnQnXG5pbXBvcnQgeyBDbGllbnRPcHRpb25zLCBQcm94eU9wdGlvbnMgfSBmcm9tICcuL0NsaWVudCdcbmltcG9ydCB7IEFQSVJlcXVlc3RFcnJvciB9IGZyb20gJy4vQVBJUmVxdWVzdEVycm9yJ1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJ1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSdcblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNsYXNzIEFwaVJlcXVlc3Q8UiA9IGFueT4ge1xuICBjb25zdHJ1Y3RvciAoXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBDbGllbnRPcHRpb25zIHwgUHJveHlPcHRpb25zLFxuICAgIHB1YmxpYyBlbmRwb2ludDogRW5kcG9pbnQsXG4gICAgcHVibGljIGRhdGE/OiBhbnlcbiAgKSB7fVxuXG4gIHB1YmxpYyBwcm9taXNlID0gYXN5bmMgKCk6IFByb21pc2U8Uj4gPT4ge1xuICAgIGNvbnN0IGhlYWRlcnM6IGFueSA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uK2hhbCcsXG4gICAgICAnYXBpLXZlcnNpb24nOiAnMi4yJ1xuICAgIH1cblxuICAgIGlmICgncHJvamVjdEFsaWFzJyBpbiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgIGhlYWRlcnNbJ3VtYi1wcm9qZWN0LWFsaWFzJ10gPSB0aGlzLm9wdGlvbnMucHJvamVjdEFsaWFzXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW5kcG9pbnQuc291cmNlID09PSBFbmRwb2ludFNvdXJjZS5DRE4gJiYgdGhpcy5vcHRpb25zLmxhbmd1YWdlKSB7XG4gICAgICBoZWFkZXJzWydBY2NlcHQtTGFuZ3VhZ2UnXSA9IHRoaXMub3B0aW9ucy5sYW5ndWFnZVxuICAgIH1cblxuICAgIGlmICgnYXBpS2V5JyBpbiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmFwaUtleSkge1xuICAgICAgaGVhZGVyc1snYXBpLWtleSddID0gdGhpcy5vcHRpb25zLmFwaUtleVxuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmVuZHBvaW50LmdldFBhdGgoKVxuICAgIGxldCB1cmwgPSAnaHR0cHM6Ly9jZG4udW1icmFjby5pbydcblxuICAgIGlmICh0aGlzLmVuZHBvaW50LnNvdXJjZSA9PT0gRW5kcG9pbnRTb3VyY2UuQ29udGVudE1hbmFnZW1lbnQpIHtcbiAgICAgIHVybCA9ICdhcGlQcm94eVVybCcgaW4gdGhpcy5vcHRpb25zXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmFwaVByb3h5VXJsXG4gICAgICAgIDogJ2h0dHBzOi8vYXBpLnVtYnJhY28uaW8nXG4gICAgfSBlbHNlIGlmICgnY2RuUHJveHlVcmwnIGluIHRoaXMub3B0aW9ucykge1xuICAgICAgdXJsID0gdGhpcy5vcHRpb25zLmNkblByb3h5VXJsXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMucHJldmlldykge1xuICAgICAgdXJsID0gJ2h0dHBzOi8vcHJldmlldy51bWJyYWNvLmlvJ1xuICAgIH1cblxuICAgIHVybCA9IHVybC5lbmRzV2l0aCgnLycpID8gYCR7dXJsfSR7cGF0aC5zdWJzdHIoMSl9YCA6IGAke3VybH0ke3BhdGh9YFxuXG4gICAgY29uc3QgcmVxdWVzdEluaXQ6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiB0aGlzLmVuZHBvaW50Lm1ldGhvZCxcbiAgICAgIGhlYWRlcnM6IHt9XG4gICAgfVxuXG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5lbmRwb2ludC5tZXRob2QudG9Mb3dlckNhc2UoKVxuICAgIGlmICgobWV0aG9kID09PSAncG9zdCcgfHwgbWV0aG9kID09PSAncHV0JykgJiYgISF0aGlzLmRhdGEpIHtcbiAgICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IGBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0ke3RoaXMuZGF0YS5nZXRCb3VuZGFyeSgpfWBcbiAgICAgICAgcmVxdWVzdEluaXQuZGF0YSA9IHRoaXMuZGF0YVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuICAgICAgICByZXF1ZXN0SW5pdC5kYXRhID0gdGhpcy5kYXRhXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0SW5pdC5kYXRhID0gSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhKVxuICAgICAgfVxuICAgIH1cbiAgICByZXF1ZXN0SW5pdC5oZWFkZXJzID0gaGVhZGVyc1xuXG4gICAgaWYgKCdhY2Nlc3NUb2tlblJlc29sdmVyJyBpbiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5vcHRpb25zLmFjY2Vzc1Rva2VuUmVzb2x2ZXIocmVxdWVzdEluaXQpXG4gICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgcmVxdWVzdEluaXQuaGVhZGVycy5BdXRob3JpemF0aW9uID0gYEJlYXJlciAke3Rva2VufWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcyhyZXF1ZXN0SW5pdClcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhIGFzIFJcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBBUElSZXF1ZXN0RXJyb3IoZXJyLm1lc3NhZ2UsIGVyci5yZXNwb25zZSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==