@lcap/asl
Version:
NetEase Application Specific Language
72 lines • 2.73 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createService = void 0;
const request_pre_1 = __importDefault(require("request-pre"));
const axios_1 = __importDefault(require("axios"));
const qs_1 = require("qs");
const add_configs_1 = __importDefault(require("./add.configs"));
const config_1 = __importDefault(require("../../types/config"));
const formatContentType = function (contentType, data) {
const map = {
'application/x-www-form-urlencoded'(data) {
return qs_1.stringify(data);
},
};
return map[contentType] ? map[contentType](data) : data;
};
const requester = function (requestInfo) {
const { url, config = {} } = requestInfo;
const { path, method, body = {}, headers = {}, query = {} } = url;
let baseURL = config.baseURL || '';
headers['Content-Type'] = headers['Content-Type'] || 'application/json';
if (headers.operationDesc)
headers.operationDesc = encodeURIComponent(headers.operationDesc);
if (typeof window === 'undefined') {
baseURL = config.baseURL || config_1.default.baseURL || '';
if (config_1.default.cookie)
headers.Cookie = config_1.default.cookie;
}
let data;
const method2 = method.toUpperCase();
if (Object.keys(body).length || ['PUT', 'POST', 'PATCH'].includes(method2)) {
data = formatContentType(headers['Content-Type'], body);
}
Object.keys(headers).forEach((key) => {
if (headers[key] === undefined) {
delete headers[key];
}
});
const requestOptions = {
params: query,
baseURL,
method: method2,
url: path,
data,
headers,
withCredentials: !baseURL,
};
if (config_1.default.debugRequest && requestOptions.method !== 'GET') {
console.debug('[Request Debug]', requestOptions);
}
const req = axios_1.default(requestOptions);
return req;
};
const service = new request_pre_1.default(requester);
add_configs_1.default(service);
const createService = function createService(apiSchemaList, serviceConfig, dynamicServices) {
const fixServiceConfig = serviceConfig || {};
fixServiceConfig.config = fixServiceConfig.config || {};
Object.assign(fixServiceConfig.config, {
httpCode: true,
httpError: true,
shortResponse: true,
devProxy: true,
});
serviceConfig = fixServiceConfig;
return service.generator(apiSchemaList, dynamicServices, serviceConfig);
};
exports.createService = createService;
//# sourceMappingURL=index.js.map