UNPKG

@lcap/nasl

Version:

NetEase Application Specific Language

103 lines 3.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const errHandles_1 = __importDefault(require("./errHandles")); const cookie_1 = __importDefault(require("../../utils/cookie")); const isPromise = function (func) { return func && typeof func.then === 'function'; }; function httpCode(response, params, requestInfo) { const data = response.data; if ((data.code === undefined) || (data.code + '').startsWith('2')) { return response; } if (data.code === 401339 && data.msg === '租户已过期或禁用') { location.href = '/dashboard/exception/tenantExpired'; return; } if (typeof window !== 'undefined' && new RegExp('^/designer').test(window.location.pathname)) { if (data.code === 401) { window.location.href = '/login'; } } if (data) { data.request = response?.request; } return Promise.reject(data); } function shortResponse(response, params, requestInfo) { try { if (globalThis?.document) { const authorization = cookie_1.default.get('authorization'); const newAuthorization = response.headers?.authorization; if (newAuthorization && newAuthorization !== authorization) { cookie_1.default.set({ authorization: newAuthorization }, 2, 200); } const refreshToken = localStorage.getItem('refreshtoken'); const newRefreshToken = response.headers?.refreshtoken; if (newRefreshToken && newRefreshToken !== refreshToken) { localStorage.setItem('refreshtoken', newRefreshToken); } if (response?.headers?.['max-age']) { let maxAge = Number(response?.headers?.['max-age'] || 0); if (maxAge > 200) { maxAge -= 200; } const expiredTime = Date.parse(new Date()) / 1000 + maxAge; localStorage.setItem('authorizationExpiredRefreshTime', expiredTime); } } } catch (err) { console.warn(err); } if (params === false) return response; if (response.data && response.data.result !== undefined) { return response.data.result; } else { return response.data; } } const httpError = { reject(err, params, requestInfo) { const { url, config = {} } = requestInfo; const { method, body = {}, headers = {} } = url; // 处理code if (err === 'expired request') { throw err; } let handle; if (!err.code) { handle = errHandles_1.default.localError; } else { handle = errHandles_1.default[err.code]; if (!handle) handle = errHandles_1.default.defaults; } const handleOut = handle({ config, baseURL: (config.baseURL || ''), url, method, body, headers, }, err); if (isPromise(handleOut)) return handleOut; throw err; }, }; function default_1(service) { if (process.env.NODE_ENV === 'development') { service.preConfig.set('baseURL', (requestInfo, baseURL) => { if (!baseURL.startsWith('http')) { throw new Error('set baseURL only support cross domain'); } }); } service.postConfig.set('httpCode', httpCode); service.postConfig.set('httpError', httpError); service.postConfig.set('shortResponse', shortResponse); } exports.default = default_1; //# sourceMappingURL=add.configs.js.map