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.
@@ -126,7 +126,7 @@ export interface NormalizeOpts {
126
126
  cachePrefix?: string;
127
127
  /** 完整缓存key,传入则完全覆盖,优先级高于cachePrefix */
128
128
  cacheKey: string;
129
- /** 缓存过期时间,单位ms */
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
- /** 缓存过期时间,单位ms */
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:1e3*60*60*1,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;
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"),m=require("./lodash");Object.assign(exports,m);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.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;
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;
@@ -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 当前页面对象,栈空返回 null
15
+ * @returns 当前页面对象,栈空/异常返回 null
4
16
  */
5
- export declare function getCurrentPage(): UniApp.PageInstance | null;
17
+ export declare function getCurrentPage(): PageWrap | null;
6
18
 
7
19
  /**
8
20
  * 获取上一页页面实例
9
21
  * @returns 上一页实例,无则 null
10
22
  */
11
- export declare function getPrevPage(): UniApp.PageInstance | null;
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(): UniApp.PageInstance[];
29
+ export declare function getPageStack(): PageWrap[];
18
30
 
19
31
  /**
20
- * 获取当前页面路由(不带 query 参数)
21
- * @returns 路由字符串,栈空返回 null
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 页面启动参数,栈空返回 null
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 路由字符串,无上一页返回 null
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 找到返回页面对象,否则 null
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 findPageByRoute(route: string): UniApp.PageInstance | null;
61
+ export declare function findPageByFullPath(fullPath: string): PageWrap | null;
43
62
 
44
63
  /**
45
- * 回退到指定路由页面(封装 navigateBack Promise)
64
+ * 回退到指定路由页面,封装uni.navigateBack为Promise
65
+ * ⚠️ reLaunch兜底会清空全部页面栈,请谨慎开启
66
+ * ⚠️ delta超出页面栈层数时,原生会直接回退到首页,工具无法拦截
67
+ * ⚠️ uni.reLaunch 极少触发fail回调,路由错误也不会进入fail;reLaunch场景统一返回false
46
68
  * @param targetRoute 目标页面路由,支持带/不带 /
47
- * @param useReLaunchFallback 找不到页面是否开启reLaunch兜底,默认false;reLaunch会清空整个页面栈
48
- * @returns true 使用navigateBack回退;false 未找到页面或执行兜底跳转
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
- * 安全获取页面Vue组件$vm实例
54
- * @param pageIns 页面对象实例
55
- * @returns Vue组件实例,不存在/已销毁返回null
75
+ * 安全获取页面的Vue组件$vm实例
76
+ * @param pageIns 包装页面对象
77
+ * @returns Vue组件实例,页面销毁/不存在返回null;业务建议自行做类型断言
56
78
  */
57
- export declare function getPageVm(pageIns: UniApp.PageInstance | null | undefined): any | null;
79
+ export declare function getPageVm(pageIns: PageWrap | null | undefined): any | null;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function a(){try{const t=getCurrentPages();return t.length?t[t.length-1]:null}catch{return null}}function g(){try{const t=getCurrentPages();return t.length<2?null:t[t.length-2]}catch{return null}}function c(){try{return[...getCurrentPages()]}catch{return[]}}function s(){try{var t;const n=a();return(t=n==null?void 0:n.route)!==null&&t!==void 0?t:null}catch{return null}}function P(){try{var t;const n=a();return(t=n==null?void 0:n.options)!==null&&t!==void 0?t:null}catch{return null}}function d(){try{var t;const n=g();return(t=n==null?void 0:n.route)!==null&&t!==void 0?t:null}catch{return null}}function i(t){return typeof t!="string"?"":t.replace(/^\/+/,"")}function h(t){try{var n;const e=c(),r=i(t);return r&&(n=e.find(u=>u.route===r))!==null&&n!==void 0?n:null}catch{return null}}function y(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return new Promise(e=>{try{const r=c(),u=i(t);if(!u){e(!1);return}const l=r.findIndex(f=>f.route===u);if(l===r.length-1){e(!0);return}if(l===-1){n?uni.reLaunch({url:`/${u}`,success:()=>e(!1),fail:()=>e(!1)}):e(!1);return}const o=r.length-1-l;uni.navigateBack({delta:o,success:()=>e(!0),fail:()=>e(!1)})}catch{e(!1)}})}function v(t){try{var n;return t&&(n=t.$vm)!==null&&n!==void 0?n:null}catch{return null}}exports.backToRoute=y;exports.findPageByRoute=h;exports.getCurrentPage=a;exports.getCurrentPageOptions=P;exports.getCurrentRoute=s;exports.getPageStack=c;exports.getPageVm=v;exports.getPrevPage=g;exports.getPrevRoute=d;
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utils-uniapp",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "aubyn's utils for uniapp",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",