@foxpage/foxpage-manager
Version:
foxpage resource manager
51 lines (50 loc) • 1.79 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRequest = void 0;
const axios_1 = __importDefault(require("axios"));
function handleError(err, detail) {
const { api, method } = detail;
return `[DATA SERVICE] [${api}]<${method}> Error: ${err.message}, detail: ${JSON.stringify(detail)}`;
}
/**
* create request
* @param opt request options
* @returns {FoxpageRequest}
*/
const createRequest = (opt) => {
return async function request(method, api, params) {
try {
const url = `${opt.host}${opt.path || ''}${api}`;
const result = await (0, axios_1.default)({
method,
url,
params: method === 'get' ? params : undefined,
data: method !== 'get' ? params : undefined,
timeout: opt.timeout || 10 * 1000,
});
const { data } = result;
if ((data === null || data === void 0 ? void 0 : data.code) === 200) {
return result.data.data;
}
else {
throw new Error('code:' + data.code + ', msg:' + ((data === null || data === void 0 ? void 0 : data.msg) || 'fetched failed'));
}
}
catch (e) {
let err;
const { message } = e;
if (message) {
err = new Error(message);
}
else {
err = new Error(`request failed.`);
}
err.message = handleError(err, { host: opt.host, api, method, params });
throw err;
}
};
};
exports.createRequest = createRequest;