UNPKG

dff-util

Version:

DesignForFeature Utilities

214 lines (213 loc) 10.2 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Http = exports.HttpMethods = exports.BaseHeaders = exports.HttpHeaders = exports.RespType = void 0; const util_1 = require("./util"); var RespType; (function (RespType) { RespType["JSON"] = "json"; RespType["TEXT"] = "text"; RespType["BLOB"] = "blob"; RespType["FORM_DATA"] = "formData"; RespType["ARRAY_BUFFER"] = "arrayBuffer"; })(RespType || (exports.RespType = RespType = {})); exports.HttpHeaders = { 'Content-Type': 'application/json', authorization: null, 'request-id': null, }; exports.BaseHeaders = { authorization: null, 'request-id': null, }; exports.HttpMethods = { GET: "GET", POST: "POST", PUT: "PUT", DELETE: "DELETE" }; class Http { static RespData(response_1) { return __awaiter(this, arguments, void 0, function* (response, type = RespType.JSON) { if (!response.ok) { const data = yield response.text(); if ((data && data.startsWith('{')) || data.startsWith('[')) { throw JSON.parse(data); } else { throw data; } } switch (type) { case RespType.JSON: return yield (response === null || response === void 0 ? void 0 : response.json()); case RespType.TEXT: return yield (response === null || response === void 0 ? void 0 : response.text()); case RespType.BLOB: return yield (response === null || response === void 0 ? void 0 : response.blob()); case RespType.FORM_DATA: return yield (response === null || response === void 0 ? void 0 : response.formData()); case RespType.ARRAY_BUFFER: return yield (response === null || response === void 0 ? void 0 : response.arrayBuffer()); case RespType.BLOB: return yield (response === null || response === void 0 ? void 0 : response.blob()); default: return null; } }); } static Get(url_1, params_1, headers_1) { return __awaiter(this, arguments, void 0, function* (url, params, headers, type = RespType.JSON) { url = url.startsWith('http') ? url : Http.API_BASE_URL + url; const fullUrl = params ? `${url}?${new URLSearchParams(params).toString()}` : url; headers = headers || exports.HttpHeaders; headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: 'GET', headers: headers }; const response = yield fetch(fullUrl, requestOptions); return yield Http.RespData(response, type); } catch (error) { throw { url: fullUrl, requestId: headers['request-id'], error: error }; } }); } static Post(url_1, data_1, headers_1) { return __awaiter(this, arguments, void 0, function* (url, data, headers, type = RespType.JSON) { url = url.startsWith('http') ? url : Http.API_BASE_URL + url; headers = headers || exports.HttpHeaders; headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: 'POST', body: JSON.stringify(data), headers: headers }; const response = yield fetch(url, requestOptions); return yield Http.RespData(response, type); } catch (error) { throw { url: url, requestId: headers['request-id'], body: data, error: error }; } }); } static Put(url_1, data_1, headers_1) { return __awaiter(this, arguments, void 0, function* (url, data, headers, type = RespType.JSON) { url = url.startsWith('http') ? url : Http.API_BASE_URL + url; headers = headers || exports.HttpHeaders; headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: 'PUT', body: JSON.stringify(data), headers: headers }; const response = yield fetch(url, requestOptions); return yield Http.RespData(response, type); } catch (error) { throw { url: url, requestId: headers['request-id'], body: data, error: error }; } }); } static Delete(url_1, params_1, headers_1) { return __awaiter(this, arguments, void 0, function* (url, params, headers, type = RespType.JSON) { url = url.startsWith('http') ? url : Http.API_BASE_URL + url; const fullUrl = params ? `${url}?${new URLSearchParams(params).toString()}` : url; headers = headers || exports.HttpHeaders; headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: 'DELETE', headers: headers }; const response = yield fetch(fullUrl, requestOptions); return yield Http.RespData(response, type); } catch (error) { throw { url: fullUrl, requestId: headers['request-id'], error: error }; } }); } static Token(sessionInfo_1, appKey_1, apiKey_1) { return __awaiter(this, arguments, void 0, function* (sessionInfo, appKey, apiKey, type = RespType.TEXT) { const url = `${Http.API_BASE_URL}${Http.TOKEN_URL}`; const params = { key: appKey, payload: JSON.stringify(sessionInfo) }; const fullUrl = `${url}?${new URLSearchParams(params).toString()}`; const headers = Object.assign(Object.assign({}, Headers), { 'X-API-KEY': apiKey || '' }); headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: 'GET', headers: headers }; const response = yield fetch(fullUrl, requestOptions); return yield Http.RespData(response, type); } catch (error) { throw { url: fullUrl, requestId: headers['request-id'], error: error }; } }); } static FormUpload(url_1, file_1) { return __awaiter(this, arguments, void 0, function* (url, file, isHeadersAddMultiForm = false, data = {}, headers = exports.BaseHeaders, method = 'PUT', type = RespType.JSON) { url = url.startsWith('http') ? url : Http.API_BASE_URL + url; const formData = new FormData(); formData.append('file', file); for (const key in data) { if (data[key] !== undefined && data[key] !== null) { formData.append(key, data[key]); } } if (isHeadersAddMultiForm) { headers = Object.assign(Object.assign({}, headers), { 'Content-Type': headers['Content-Type'] || 'multipart/form-data' }); } headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: method, body: formData, headers: Object.assign({}, headers), }; const response = yield fetch(url, requestOptions); return yield Http.RespData(response, type); } catch (error) { throw { url: url, requestId: headers['request-id'], error: error }; } }); } static CloudUpload(fullUrl_1, file_1) { return __awaiter(this, arguments, void 0, function* (fullUrl, file, headers = null, method = 'PUT') { headers = headers || { 'Content-Type': file.type, }; headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: method, body: file, headers: Object.assign({}, headers), }; const response = yield fetch(fullUrl, requestOptions); return response; } catch (error) { throw { url: fullUrl, requestId: headers['request-id'], error: error }; } }); } static FileDownload(fullUrl_1, params_1) { return __awaiter(this, arguments, void 0, function* (fullUrl, params, headers = exports.HttpHeaders, method = 'GET') { fullUrl = params ? `${fullUrl}?${new URLSearchParams(params).toString()}` : fullUrl; headers = headers || exports.HttpHeaders; headers['request-id'] = headers['request-id'] || (0, util_1.AppUUID4)(); try { const requestOptions = { method: method, headers: headers }; const response = yield fetch(fullUrl, requestOptions); const blob = yield response.blob(); return blob; } catch (error) { throw { url: fullUrl, requestId: headers['request-id'], error: error }; } }); } } exports.Http = Http; Http.API_BASE_URL = ""; Http.TOKEN_URL = `/apisix/plugin/jwt/sign`;