@tnhb/kits
Version:
TNHB Kits 请求工具 SDK By blak-kong
177 lines • 6.24 kB
JavaScript
;
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.AxiosHttpKit = void 0;
const axios_1 = require("axios");
const fs = require("fs");
const FormData = require("form-data");
const https = require("https");
const concat = require("concat-stream");
/**
* @author blak-kong
* @copyright blak-kong@foxmail.com
* @description 使用 Axios 实现网络请求
*/
class AxiosHttpKit {
httpGet(url, options) {
return new Promise((resolve, reject) => {
axios_1.default
.get(url, options)
.then(response => {
if (response.status === 200) {
resolve(response.data);
}
else {
reject(`error code ${response.status}`);
}
})
.catch(error => {
reject(error);
});
});
}
httpGetToResponse(url, options) {
return new Promise(resolve => {
axios_1.default
.get(url, options)
.then(response => {
resolve(response);
})
.catch(error => {
resolve(error.response);
});
});
}
httpPost(url, data, options) {
return new Promise((resolve, reject) => {
axios_1.default
.post(url, data, options)
.then(response => {
if (response.status === 200) {
resolve(response.data);
}
else {
reject(`error code ${response.status}`);
}
})
.catch(error => {
reject(error);
});
});
}
httpPostToResponse(url, data, options) {
return new Promise(resolve => {
axios_1.default
.post(url, data, options)
.then(response => {
resolve(response);
})
.catch(error => {
resolve(error.response);
});
});
}
httpPutToResponse(url, data, options) {
return new Promise(resolve => {
axios_1.default
.put(url, data, options)
.then(response => {
resolve(response);
})
.catch(error => {
resolve(error.response);
});
});
}
httpDeleteToResponse(url, options) {
return new Promise(resolve => {
axios_1.default
.delete(url, options)
.then(response => {
resolve(response);
})
.catch(error => {
resolve(error.response);
});
});
}
httpPostWithCert(url, data, certFileContent, passphrase) {
return new Promise((resolve, reject) => {
let httpsAgent = new https.Agent({
pfx: certFileContent,
passphrase
});
axios_1.default
.post(url, data, { httpsAgent })
.then(response => {
if (response.status === 200) {
resolve(response.data);
}
else {
reject(`error code ${response.status}`);
}
})
.catch(error => {
reject(error);
});
});
}
upload(url, filePath, params) {
return new Promise((resolve, reject) => {
let formData = new FormData();
formData.append('media', fs.createReadStream(filePath));
if (params) {
formData.append('description', params);
}
formData.pipe(concat({ encoding: 'buffer' }, (data) => __awaiter(this, void 0, void 0, function* () {
axios_1.default
.post(url, data, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(response => {
if (response.status === 200) {
resolve(response.data);
}
else {
reject(`error code ${response.status}`);
}
})
.catch(error => {
reject(error);
});
})));
});
}
uploadToResponse(url, filePath, params, options) {
return new Promise(resolve => {
let formData = new FormData();
formData.append('file', fs.createReadStream(filePath));
if (params) {
formData.append('meta', params);
}
formData.pipe(concat({ encoding: 'buffer' }, (data) => __awaiter(this, void 0, void 0, function* () {
axios_1.default
.post(url, data, options)
.then(response => {
resolve(response);
})
.catch(error => {
console.log("uploadToResponse", error);
resolve(error.response);
});
})));
});
}
}
exports.AxiosHttpKit = AxiosHttpKit;
//# sourceMappingURL=AxiosHttpKit.js.map