fix: change some params to be not required
This commit is contained in:
2
build/api/getConfig.d.ts
vendored
2
build/api/getConfig.d.ts
vendored
@@ -1,7 +1,7 @@
|
||||
declare const _default: () => {
|
||||
urlPerfix: string | (() => string) | undefined;
|
||||
sessionExpireTime: number | undefined;
|
||||
sessionExpireKey: string;
|
||||
sessionExpireKey: string | undefined;
|
||||
sessionExpire: any;
|
||||
};
|
||||
export default _default;
|
||||
|
||||
18
build/interface.d.ts
vendored
18
build/interface.d.ts
vendored
@@ -9,7 +9,7 @@ export interface IInitOption {
|
||||
reportCGI?: boolean | ((name: string, startTime: number, endTime: number, request: Function) => void);
|
||||
mockJson?: any;
|
||||
globalData?: boolean | object | Function;
|
||||
sessionExpireKey: string;
|
||||
sessionExpireKey?: string;
|
||||
sessionExpireTime?: number;
|
||||
loginTrigger?: (res: string | IAnyObject | ArrayBuffer) => boolean;
|
||||
successTrigger: (res: string | IAnyObject | ArrayBuffer) => boolean;
|
||||
@@ -38,10 +38,10 @@ export interface IRequestOption extends IRequestObject {
|
||||
catchError?: boolean;
|
||||
}
|
||||
export interface IRequestObject extends wx.RequestOption {
|
||||
originUrl: string;
|
||||
reLoginCount: number;
|
||||
_reportStartTime: number;
|
||||
_reportEndTime: number;
|
||||
originUrl?: string;
|
||||
reLoginCount?: number;
|
||||
_reportStartTime?: number;
|
||||
_reportEndTime?: number;
|
||||
}
|
||||
export interface IUploadFileOption extends IUploadFileObject {
|
||||
beforeSend?: Function;
|
||||
@@ -53,10 +53,10 @@ export interface IUploadFileOption extends IUploadFileObject {
|
||||
catchError?: boolean;
|
||||
}
|
||||
export interface IUploadFileObject extends wx.UploadFileOption {
|
||||
originUrl: string;
|
||||
reLoginCount: number;
|
||||
_reportStartTime: number;
|
||||
_reportEndTime: number;
|
||||
originUrl?: string;
|
||||
reLoginCount?: number;
|
||||
_reportStartTime?: number;
|
||||
_reportEndTime?: number;
|
||||
}
|
||||
export interface IGetConfigResult {
|
||||
urlPerfix?: string | (() => string);
|
||||
|
||||
File diff suppressed because one or more lines are too long
2
build/weRequest.min.js
vendored
2
build/weRequest.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "we-request",
|
||||
"version": "1.2.0",
|
||||
"version": "1.2.1",
|
||||
"description": "本工具通过拓展小程序的wx.request,让开发者通过简单的配置,实现自动管理登录态等功能",
|
||||
"keywords": [
|
||||
"登录态",
|
||||
|
||||
@@ -4,20 +4,14 @@ import { IInitOption } from '../interface'
|
||||
|
||||
export default (params: IInitOption) => {
|
||||
Object.assign(config, params);
|
||||
// 如果配置更改了session的存储名字,则重新获取一次session
|
||||
if (params.sessionName) {
|
||||
try {
|
||||
status.session = wx.getStorageSync(config.sessionName!) || '';
|
||||
} catch (e) {
|
||||
console.error('wx.getStorageSync:fail, can not get session.')
|
||||
}
|
||||
try {
|
||||
status.session = wx.getStorageSync(config.sessionName!) || '';
|
||||
} catch (e) {
|
||||
console.error('wx.getStorageSync:fail, can not get session.')
|
||||
}
|
||||
// 如果配置更改了session过期时间的存储名字,则重新获取一次session的过期时间
|
||||
if (params.sessionExpireKey) {
|
||||
try {
|
||||
status.sessionExpire = wx.getStorageSync(config.sessionExpireKey) || Infinity;
|
||||
} catch (e) {
|
||||
console.error('wx.getStorageSync:fail, can not get sessionExpire.')
|
||||
}
|
||||
try {
|
||||
status.sessionExpire = wx.getStorageSync(config.sessionExpireKey || "sessionExpireKey") || Infinity;
|
||||
} catch (e) {
|
||||
console.error('wx.getStorageSync:fail, can not get sessionExpire.')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ export interface IInitOption {
|
||||
/** 所有请求都会自动带上这里的参数 */
|
||||
globalData?: boolean | object | Function;
|
||||
/** session在本地缓存的key */
|
||||
sessionExpireKey: string;
|
||||
sessionExpireKey?: string;
|
||||
/* session在本地缓存的有效时间(单位ms) */
|
||||
sessionExpireTime?: number;
|
||||
/* 触发重新登录的条件;参数为CGI返回的数据,返回需要重新登录的条件 */
|
||||
@@ -89,13 +89,13 @@ export interface IRequestOption extends IRequestObject {
|
||||
|
||||
export interface IRequestObject extends wx.RequestOption{
|
||||
/* 业务请求的原始url */
|
||||
originUrl: string;
|
||||
originUrl?: string;
|
||||
/* 重登陆次数 */
|
||||
reLoginCount: number;
|
||||
reLoginCount?: number;
|
||||
/* 请求发起的时间戳 */
|
||||
_reportStartTime: number;
|
||||
_reportStartTime?: number;
|
||||
/* 请求返回的时间戳 */
|
||||
_reportEndTime: number;
|
||||
_reportEndTime?: number;
|
||||
}
|
||||
|
||||
export interface IUploadFileOption extends IUploadFileObject {
|
||||
@@ -117,13 +117,13 @@ export interface IUploadFileOption extends IUploadFileObject {
|
||||
|
||||
export interface IUploadFileObject extends wx.UploadFileOption {
|
||||
/* 业务请求的原始url */
|
||||
originUrl: string;
|
||||
originUrl?: string;
|
||||
/* 重登陆次数 */
|
||||
reLoginCount: number;
|
||||
reLoginCount?: number;
|
||||
/* 请求发起的时间戳 */
|
||||
_reportStartTime: number;
|
||||
_reportStartTime?: number;
|
||||
/* 请求返回的时间戳 */
|
||||
_reportEndTime: number;
|
||||
_reportEndTime?: number;
|
||||
}
|
||||
|
||||
export interface IGetConfigResult {
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { IRequestOption } from "../interface"
|
||||
|
||||
function get(obj: IRequestOption) {
|
||||
if (!obj.originUrl) {
|
||||
return;
|
||||
}
|
||||
wx.getStorage({
|
||||
key: obj.originUrl,
|
||||
success (res) {
|
||||
@@ -20,6 +23,9 @@ function get(obj: IRequestOption) {
|
||||
}
|
||||
|
||||
function set(obj: IRequestOption , realData: string | object) {
|
||||
if (!obj.originUrl) {
|
||||
return;
|
||||
}
|
||||
if (
|
||||
obj.cache === true ||
|
||||
(typeof obj.cache === "function" && obj.cache(realData))
|
||||
|
||||
@@ -8,7 +8,7 @@ function start(obj: IRequestOption | IUploadFileOption) {
|
||||
|
||||
function end(obj: IRequestOption | IUploadFileOption) {
|
||||
obj._reportEndTime = new Date().getTime();
|
||||
if(obj.report) {
|
||||
if(obj.report && obj._reportStartTime) {
|
||||
report(obj.report as string, obj._reportStartTime, obj._reportEndTime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,13 +5,13 @@ import { IRequestOption, IUploadFileOption } from "../interface"
|
||||
|
||||
function get(obj: IRequestOption | IUploadFileOption, method: "request" | "uploadFile"): any {
|
||||
|
||||
if(!(config.mockJson[obj.url] || config.mockJson[obj.originUrl])) {
|
||||
if(!(config.mockJson[obj.url] || (obj.originUrl && config.mockJson[obj.originUrl]))) {
|
||||
// mock 没有对应接口的数据
|
||||
console.error('mock 没有对应接口的数据');
|
||||
return false;
|
||||
}
|
||||
|
||||
let data = config.mockJson[obj.url] || config.mockJson[obj.originUrl];
|
||||
let data = config.mockJson[obj.url] || (obj.originUrl ? config.mockJson[obj.originUrl] : '');
|
||||
// deep copy
|
||||
data = JSON.parse(JSON.stringify(data));
|
||||
const res = {
|
||||
|
||||
@@ -29,7 +29,7 @@ function response(
|
||||
|
||||
durationReporter.end(obj);
|
||||
|
||||
if (config.loginTrigger!(res.data) && obj.reLoginCount < config.reLoginLimit!) {
|
||||
if (config.loginTrigger!(res.data) && obj.reLoginCount && obj.reLoginCount < config.reLoginLimit!) {
|
||||
// 登录态失效,且重试次数不超过配置
|
||||
sessionManager.delSession();
|
||||
if(method === "request") {
|
||||
|
||||
@@ -141,7 +141,7 @@ function code2Session(code: string) {
|
||||
// 换回来的session,不需要再checkSession
|
||||
config.doNotCheckSession = true;
|
||||
// 如果有设置本地session过期时间
|
||||
if (config.sessionExpireTime) {
|
||||
if (config.sessionExpireTime && config.sessionExpireKey) {
|
||||
status.sessionExpire = new Date().getTime() + config.sessionExpireTime;
|
||||
wx.setStorage({
|
||||
key: config.sessionExpireKey,
|
||||
|
||||
Reference in New Issue
Block a user