utils-uniapp 1.1.5 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/http/index.d.ts +2 -2
- package/lib/http/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/pageStack/index.d.ts +42 -20
- package/lib/pageStack/index.js +1 -1
- package/package.json +1 -1
package/lib/http/index.d.ts
CHANGED
|
@@ -126,7 +126,7 @@ export interface NormalizeOpts {
|
|
|
126
126
|
cachePrefix?: string;
|
|
127
127
|
/** 完整缓存key,传入则完全覆盖,优先级高于cachePrefix */
|
|
128
128
|
cacheKey: string;
|
|
129
|
-
/**
|
|
129
|
+
/** 缓存过期时间,单位秒(s), 默认1小时过期 */
|
|
130
130
|
cacheExpire: number;
|
|
131
131
|
/** loading提示文案 */
|
|
132
132
|
loadingText: string;
|
|
@@ -157,7 +157,7 @@ export interface UserRequestOpts {
|
|
|
157
157
|
cachePrefix?: string;
|
|
158
158
|
/** 完整缓存key,传入则完全覆盖,优先级高于cachePrefix */
|
|
159
159
|
cacheKey?: string;
|
|
160
|
-
/**
|
|
160
|
+
/** 缓存过期时间,单位秒(s), 默认1小时过期 */
|
|
161
161
|
cacheExpire?: number;
|
|
162
162
|
/** loading提示文案 */
|
|
163
163
|
loadingText?: string;
|
package/lib/http/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("../index-4975afce.js"),A=require("../object/index.js"),O=Object.freeze({JSON:"application/json;charset=UTF-8",TEXT:"text/plain;charset=UTF-8",FORM_URLENCODED:"application/x-www-form-urlencoded;charset=UTF-8",FORM_DATA:"multipart/form-data"}),m={caches:Object.create(null),add(e,t){this.caches[e]=t},delete(e){Reflect.deleteProperty(this.caches,e)},_cancel(e){const t=this.caches[e];typeof(t==null?void 0:t.abort)=="function"&&t.abort()},cancelAll(){Object.values(this.caches).forEach(e=>{typeof(e==null?void 0:e.abort)=="function"&&e.abort()}),this.caches=Object.create(null)},source(){const e=`${Date.now()}-${C.getRandomStr(16)}`;return{token:e,cancel:()=>this._cancel(e)}}};function x(e,t){return new Promise((c,n)=>{const r=uni[e]({...t,success(o){if(o.statusCode>=200&&o.statusCode<300)return c(o);n({type:"fail",res:o})},fail(o){n({type:"fail",res:o})},complete(){t.cancelToken&&m.delete(t.cancelToken)}});t.cancelToken&&m.add(t.cancelToken,r)})}let R=0,v=!1;function N(e){v||(v=!0,uni.showLoading({title:e,mask:!0}))}function P(){v&&(v=!1,uni.hideLoading())}function j(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"加载中...";R++,R===1&&N(e)}function D(){R>0&&R--,R===0&&P()}function _(e,t){return function(c,n,r,o){return e(c,t,n,r,o)}}function w(e){return typeof e=="function"?e:()=>e||{}}function k(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=w(t.headers)(),r=w(c.headers)(),o={...t,...c,headers:{...n,...r}},{headers:a,...s}=o;return{urlRes:e.startsWith("http")?e:o.baseURL?o.baseURL+e:e,headers:a,configRes:s}}function U(e){return typeof e=="function"?[e]:Array.isArray(e)?e.filter(t=>typeof t=="function"):[]}function F(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n={qs:!0,showError:!0,isCache:!1,cacheExpire:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("../index-4975afce.js"),A=require("../object/index.js"),O=Object.freeze({JSON:"application/json;charset=UTF-8",TEXT:"text/plain;charset=UTF-8",FORM_URLENCODED:"application/x-www-form-urlencoded;charset=UTF-8",FORM_DATA:"multipart/form-data"}),m={caches:Object.create(null),add(e,t){this.caches[e]=t},delete(e){Reflect.deleteProperty(this.caches,e)},_cancel(e){const t=this.caches[e];typeof(t==null?void 0:t.abort)=="function"&&t.abort()},cancelAll(){Object.values(this.caches).forEach(e=>{typeof(e==null?void 0:e.abort)=="function"&&e.abort()}),this.caches=Object.create(null)},source(){const e=`${Date.now()}-${C.getRandomStr(16)}`;return{token:e,cancel:()=>this._cancel(e)}}};function x(e,t){return new Promise((c,n)=>{const r=uni[e]({...t,success(o){if(o.statusCode>=200&&o.statusCode<300)return c(o);n({type:"fail",res:o})},fail(o){n({type:"fail",res:o})},complete(){t.cancelToken&&m.delete(t.cancelToken)}});t.cancelToken&&m.add(t.cancelToken,r)})}let R=0,v=!1;function N(e){v||(v=!0,uni.showLoading({title:e,mask:!0}))}function P(){v&&(v=!1,uni.hideLoading())}function j(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"加载中...";R++,R===1&&N(e)}function D(){R>0&&R--,R===0&&P()}function _(e,t){return function(c,n,r,o){return e(c,t,n,r,o)}}function w(e){return typeof e=="function"?e:()=>e||{}}function k(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=w(t.headers)(),r=w(c.headers)(),o={...t,...c,headers:{...n,...r}},{headers:a,...s}=o;return{urlRes:e.startsWith("http")?e:o.baseURL?o.baseURL+e:e,headers:a,configRes:s}}function U(e){return typeof e=="function"?[e]:Array.isArray(e)?e.filter(t=>typeof t=="function"):[]}function F(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n={qs:!0,showError:!0,isCache:!1,cacheExpire:60*60,loadingText:e.loadingText,loading:!0,reqInterceptor:r=>r,resInterceptor:r=>r,errInterceptor:()=>{},...t,...c};if(!n.cacheKey){const r=(n.cachePrefix||"api").replace(/:$/,"");n.cacheKey=`${r}:${e.url}`}return["reqInterceptor","resInterceptor","errInterceptor"].forEach(r=>{const o=[...U(t[r]),...U(c[r])];n[r]=o.length?C.composeAsync(...o):a=>a}),n}function q(e,t){const c=Array.from(t);return()=>e(...A.cloneDeepWithDescriptors(c))}function E(e,t,c,n,r){return b.apply(this,arguments)}function b(){return b=C._asyncToGenerator(function*(e,t,c,n,r){let o;n.loading&&(j(n.loadingText),o=()=>{D(),o=null});try{var a;const u=yield n.reqInterceptor(c,n),l=yield e(t,u);return(a=o)===null||a===void 0||a(),yield n.resInterceptor(l,n,r)}catch(u){var s;(s=o)===null||s===void 0||s();const l=yield n.errInterceptor(u,n);return l!==void 0?l:Promise.reject(u)}}),b.apply(this,arguments)}function S(e,t){function c(n,r,o,a,s){const u=m.source(),l=q(c,arguments),i=F({url:n,loadingText:"加载中..."},t,s),{urlRes:y,headers:T,configRes:h}=k(n,e,a);if(i.isCache){const d=C.getCache(i.cacheKey);if(d)return Promise.resolve(d)}const p=r.toUpperCase()==="GET"?O.JSON:i.qs?O.FORM_URLENCODED:O.JSON,g={cancelToken:u.token,method:r,url:y,data:o,header:{"Content-Type":p,...T},...h};return E(x,"request",g,i,l).then(d=>(i.isCache&&C.setCache(i.cacheKey,d,i.cacheExpire),d))}return c.get=_(c,"get"),c.post=_(c,"post"),c}function L(e,t){return function c(n,r,o,a){const s=m.source(),u=q(c,arguments),l=F({loadingText:"上传中..."},t,a),{urlRes:i,headers:y,configRes:T}=k(n,e,o),{keyName:h="file",filePath:f,...p}={keyName:"file",...r};if(!f||!f.startsWith("http://tmp")&&!f.startsWith("wxfile://tmp"))return Promise.resolve({data:f});const g={cancelToken:s.token,url:i,filePath:f,name:h,formData:p,header:{...y},...T};return E(x,"uploadFile",g,l,u)}}function $(e,t){return function c(n,r,o,a){const s=m.source(),u=q(c,arguments),l=F({loadingText:"下载中..."},t,a),{urlRes:i,headers:y,configRes:T}=k(n,e,o);let h=i;if(r&&typeof r=="object"){const p=Object.entries(r).filter(g=>{let[,d]=g;return d!=null&&d!==""}).map(g=>{let[d,I]=g;return`${encodeURIComponent(d)}=${encodeURIComponent(I)}`}).join("&");p&&(h+=(h.includes("?")?"&":"?")+p)}const f={cancelToken:s.token,url:h,header:{...y},...T};return E(x,"downloadFile",f,l,u)}}exports.CONTENT_TYPES=O;exports.CancelToken=m;exports.createDownloadFile=$;exports.createRequest=S;exports.createUploadFile=L;exports.endLoading=D;exports.promisifyRequest=x;exports.startLoading=j;
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./aliPay/index.js"),a=require("./array/index.js"),s=require("./date/index.js"),o=require("./fs/index.js"),g=require("./getLocation/index.js"),r=require("./http/index.js"),e=require("./index-4975afce.js"),n=require("./object/index.js"),t=require("./pageStack/index.js"),i=require("./validate/index.js"),d=require("./index-9456b3d9.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./aliPay/index.js"),a=require("./array/index.js"),s=require("./date/index.js"),o=require("./fs/index.js"),g=require("./getLocation/index.js"),r=require("./http/index.js"),e=require("./index-4975afce.js"),n=require("./object/index.js"),t=require("./pageStack/index.js"),i=require("./validate/index.js"),d=require("./index-9456b3d9.js"),P=require("./lodash");Object.assign(exports,P);exports.alipaySubmit=c.alipaySubmit;exports.exchangeArrP=a.exchangeArrP;exports.filterTree=a.filterTree;exports.findTreeItem=a.findTreeItem;exports.flatWithKey=a.flatWithKey;exports.getTreePath=a.getTreePath;exports.groupBy=a.groupBy;exports.reverseForEach=a.reverseForEach;exports.treeItemSetParent=a.treeItemSetParent;exports.dateFormat=s.dateFormat;exports.getDate=s.getDate;exports.$fs=o.$fs;exports.chooseImg=o.chooseImg;exports.getArraybufferTempPath=o.getArraybufferTempPath;exports.getImgBase64Prefix=o.getImgBase64Prefix;exports.readFile=o.readFile;exports.saveImageToPhotosAlbum=o.saveImageToPhotosAlbum;exports.writeFile=o.writeFile;exports.getLocation=g.getLocation;exports.openLocation=g.openLocation;exports.CONTENT_TYPES=r.CONTENT_TYPES;exports.CancelToken=r.CancelToken;exports.createDownloadFile=r.createDownloadFile;exports.createRequest=r.createRequest;exports.createUploadFile=r.createUploadFile;exports.endLoading=r.endLoading;exports.promisifyRequest=r.promisifyRequest;exports.startLoading=r.startLoading;exports.compareVersion=e.compareVersion;exports.compose=e.compose;exports.composeAsync=e.composeAsync;exports.debounce=e.debounce;exports.debouncePromise=e.debouncePromise;exports.decodeURIParams=e.decodeURIParams;exports.encodeURIParams=e.encodeURIParams;exports.getCache=e.getCache;exports.getOnLoadParams=e.getOnLoadParams;exports.getPascalCase=e.getPascalCase;exports.getQueryParams=e.getQueryParams;exports.getQueryParamsFromHash=e.getQueryParamsFromHash;exports.getQueryParamsFromSearch=e.getQueryParamsFromSearch;exports.getRandom=e.getRandom;exports.getRandomStr=e.getRandomStr;exports.pipe=e.pipe;exports.pipeAsync=e.pipeAsync;exports.randomColor=e.randomColor;exports.removeCache=e.removeCache;exports.renewCache=e.renewCache;exports.setCache=e.setCache;exports.throttle=e.throttle;exports.toQueryString=e.toQueryString;exports.cloneDeepWithDescriptors=n.cloneDeepWithDescriptors;exports.getRawType=n.getRawType;exports.hasOwnProperty=n.hasOwnProperty;exports.backToRoute=t.backToRoute;exports.findPageByFullPath=t.findPageByFullPath;exports.findPageByRoute=t.findPageByRoute;exports.getCurrentPage=t.getCurrentPage;exports.getCurrentPageOptions=t.getCurrentPageOptions;exports.getCurrentRoute=t.getCurrentRoute;exports.getPageStack=t.getPageStack;exports.getPageVm=t.getPageVm;exports.getPrevPage=t.getPrevPage;exports.getPrevRoute=t.getPrevRoute;exports.isExternal=i.isExternal;exports.validDate=i.validDate;exports.validIDCard=i.validIDCard;exports.validPhone=i.validPhone;exports.validPostalCode=i.validPostalCode;exports.validURL=i.validURL;exports.wx=d.index;
|
package/lib/pageStack/index.d.ts
CHANGED
|
@@ -1,57 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 注意:fullPath / navUrl 基于页面onLoad的options,页面运行时动态修改url参数不会自动刷新,需要重新调用工具函数获取
|
|
3
|
+
* 禁止使用页面对象引用做相等判断,请使用route/fullPath字符串对比
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface PageWrap extends UniApp.PageInstance {
|
|
7
|
+
/** 不带开头斜杠 pages/xxx/xxx?a=1,用于路由匹配对比;基于onLoad options */
|
|
8
|
+
fullPath: string | null;
|
|
9
|
+
/** 带开头斜杠 /pages/xxx/xxx?a=1,可直接用于uni.navigateTo url;基于onLoad options */
|
|
10
|
+
navUrl: string | null;
|
|
11
|
+
}
|
|
12
|
+
|
|
1
13
|
/**
|
|
2
14
|
* 获取当前页面实例
|
|
3
|
-
* @returns
|
|
15
|
+
* @returns 当前页面对象,栈空/异常返回 null
|
|
4
16
|
*/
|
|
5
|
-
export declare function getCurrentPage():
|
|
17
|
+
export declare function getCurrentPage(): PageWrap | null;
|
|
6
18
|
|
|
7
19
|
/**
|
|
8
20
|
* 获取上一页页面实例
|
|
9
21
|
* @returns 上一页实例,无则 null
|
|
10
22
|
*/
|
|
11
|
-
export declare function getPrevPage():
|
|
23
|
+
export declare function getPrevPage(): PageWrap | null;
|
|
12
24
|
|
|
13
25
|
/**
|
|
14
|
-
*
|
|
15
|
-
* @returns
|
|
26
|
+
* 获取完整页面栈副本(每项均为包装对象,带fullPath、navUrl;避免外部修改原生页面栈数组)
|
|
27
|
+
* @returns PageWrap数组
|
|
16
28
|
*/
|
|
17
|
-
export declare function getPageStack():
|
|
29
|
+
export declare function getPageStack(): PageWrap[];
|
|
18
30
|
|
|
19
31
|
/**
|
|
20
|
-
* 获取当前页面路由(不带 query
|
|
21
|
-
* @returns
|
|
32
|
+
* 获取当前页面路由(不带 query 参数,返回格式 pages/xxx/xxx)
|
|
33
|
+
* @returns 路由字符串或null
|
|
22
34
|
*/
|
|
23
35
|
export declare function getCurrentRoute(): string | null;
|
|
24
36
|
|
|
25
37
|
/**
|
|
26
38
|
* 获取当前页面 onLoad options 参数
|
|
27
|
-
* @returns
|
|
39
|
+
* @returns options 对象或null
|
|
28
40
|
*/
|
|
29
|
-
export declare function getCurrentPageOptions(): Record<string, string | undefined> | null;
|
|
41
|
+
export declare function getCurrentPageOptions(): Record<string, string | number | boolean | undefined> | null;
|
|
30
42
|
|
|
31
43
|
/**
|
|
32
44
|
* 获取上一页路由
|
|
33
|
-
* @returns
|
|
45
|
+
* @returns 路由字符串或null
|
|
34
46
|
*/
|
|
35
47
|
export declare function getPrevRoute(): string | null;
|
|
36
48
|
|
|
37
49
|
/**
|
|
38
50
|
* 根据路由在页面栈中查找页面对象
|
|
39
51
|
* @param route 页面路由,支持带/不带开头 /
|
|
40
|
-
* @returns
|
|
52
|
+
* @returns PageWrap|null
|
|
53
|
+
*/
|
|
54
|
+
export declare function findPageByRoute(route: string): PageWrap | null;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 根据fullPath查找页面栈
|
|
58
|
+
* @param fullPath 不带前置斜杠 pages/xxx/xxx?a=1
|
|
59
|
+
* @returns PageWrap|null
|
|
41
60
|
*/
|
|
42
|
-
export declare function
|
|
61
|
+
export declare function findPageByFullPath(fullPath: string): PageWrap | null;
|
|
43
62
|
|
|
44
63
|
/**
|
|
45
|
-
*
|
|
64
|
+
* 回退到指定路由页面,封装uni.navigateBack为Promise
|
|
65
|
+
* ⚠️ reLaunch兜底会清空全部页面栈,请谨慎开启
|
|
66
|
+
* ⚠️ delta超出页面栈层数时,原生会直接回退到首页,工具无法拦截
|
|
67
|
+
* ⚠️ uni.reLaunch 极少触发fail回调,路由错误也不会进入fail;reLaunch场景统一返回false
|
|
46
68
|
* @param targetRoute 目标页面路由,支持带/不带 /
|
|
47
|
-
* @param useReLaunchFallback
|
|
48
|
-
* @returns true
|
|
69
|
+
* @param useReLaunchFallback 找不到页面是否使用reLaunch兜底跳转,默认false
|
|
70
|
+
* @returns true=navigateBack成功;false=未找到/使用兜底跳转/异常
|
|
49
71
|
*/
|
|
50
72
|
export declare function backToRoute(targetRoute: string, useReLaunchFallback?: boolean): Promise<boolean>;
|
|
51
73
|
|
|
52
74
|
/**
|
|
53
|
-
*
|
|
54
|
-
* @param pageIns
|
|
55
|
-
* @returns Vue
|
|
75
|
+
* 安全获取页面的Vue组件$vm实例
|
|
76
|
+
* @param pageIns 包装页面对象
|
|
77
|
+
* @returns Vue组件实例,页面销毁/不存在返回null;业务建议自行做类型断言
|
|
56
78
|
*/
|
|
57
|
-
export declare function getPageVm(pageIns:
|
|
79
|
+
export declare function getPageVm(pageIns: PageWrap | null | undefined): any | null;
|
package/lib/pageStack/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("../index-4975afce.js");function c(t){if(!t)return null;let n=null,e=null;try{const{route:u,options:r}=t;if(u){const l=P.toQueryString(r??{});n=l?`${u}?${l}`:u,e=`/${n}`}}catch{n=null,e=null}return{...t,fullPath:n,navUrl:e}}function i(){try{const t=getCurrentPages();return t.length?c(t[t.length-1]):null}catch{return null}}function o(){try{const t=getCurrentPages();return t.length<2?null:c(t[t.length-2])}catch{return null}}function a(){try{return getCurrentPages().map(t=>c(t)).filter(Boolean)}catch{return[]}}function d(){try{var t;const n=i();return(t=n==null?void 0:n.route)!==null&&t!==void 0?t:null}catch{return null}}function h(){try{var t;const n=i();return(t=n==null?void 0:n.options)!==null&&t!==void 0?t:null}catch{return null}}function y(){try{var t;const n=o();return(t=n==null?void 0:n.route)!==null&&t!==void 0?t:null}catch{return null}}function g(t){return typeof t!="string"?"":t.replace(/^\/+/,"")}function v(t){try{var n;const e=a(),u=g(t);return u&&(n=e.find(r=>r.route===u))!==null&&n!==void 0?n:null}catch{return null}}function R(t){try{var n;const e=a();return t&&(n=e.find(u=>u.fullPath===t))!==null&&n!==void 0?n:null}catch{return null}}function m(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return new Promise(e=>{try{const u=a(),r=g(t);if(!r){e(!1);return}const l=u.findIndex(s=>s.route===r);if(l===u.length-1){e(!0);return}if(l===-1){n?uni.reLaunch({url:`/${r}`,success:()=>e(!1),fail:()=>e(!1)}):e(!1);return}const f=u.length-1-l;uni.navigateBack({delta:f,success:()=>e(!0),fail:()=>e(!1)})}catch{e(!1)}})}function C(t){try{var n;return t&&(n=t.$vm)!==null&&n!==void 0?n:null}catch{return null}}exports.backToRoute=m;exports.findPageByFullPath=R;exports.findPageByRoute=v;exports.getCurrentPage=i;exports.getCurrentPageOptions=h;exports.getCurrentRoute=d;exports.getPageStack=a;exports.getPageVm=C;exports.getPrevPage=o;exports.getPrevRoute=y;
|