@zjlab-fe/util 0.2.7 → 0.2.9
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/README.md +7 -2
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/types/index.d.ts +6 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,12 +13,17 @@
|
|
|
13
13
|
* @param options.locale {string} 可选,语言,默认是zh,可选值有zh和en
|
|
14
14
|
* @param options.precision {number} 可选,精度(小数点后最多保留几位),默认是0,即没有小数点
|
|
15
15
|
* @param options.showByte {boolean} 可选,是否是展示字节单位,默认是false
|
|
16
|
+
* @param options.splitUnit {boolean} 可选,是否分离出单位,默认是false,如果为true,则返回{ num: string; unit: string }
|
|
16
17
|
*/
|
|
17
|
-
function formatNumber(total: number, options?: {
|
|
18
|
+
export declare function formatNumber(total: number, options?: {
|
|
18
19
|
locale?: string;
|
|
19
20
|
precision?: number;
|
|
20
21
|
showByte?: boolean;
|
|
21
|
-
|
|
22
|
+
splitUnit?: boolean;
|
|
23
|
+
}): string | {
|
|
24
|
+
num: string;
|
|
25
|
+
unit: string;
|
|
26
|
+
};
|
|
22
27
|
```
|
|
23
28
|
|
|
24
29
|
### 下载文件
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"query-string";import n from"numeral";import o from"axios";function t(e){var n=new v,t=o.create({});return t.interceptors.request.use((function(n){var o,t=window[null!==(o=null==e?void 0:e.authTokenNamespace)&&void 0!==o?o:"_subApp"],
|
|
1
|
+
import e from"query-string";import n from"numeral";import o from"axios";function t(e){var n=new v,t=o.create({});return t.interceptors.request.use((function(n){var o,t=window[null!==(o=null==e?void 0:e.authTokenNamespace)&&void 0!==o?o:"_subApp"],a=null==t?void 0:t.token;return a&&(n.headers.Authorization="Bearer ".concat(a)),(null==t?void 0:t.language)&&(n.headers.language=t.language),n}),(function(e){return Promise.reject(e)})),t.interceptors.response.use((function(e){var o;return 401===(null===(o=null==e?void 0:e.data)||void 0===o?void 0:o.code)?(n.postMessage("login"),Promise.reject({code:401,msg:"用户未登录"})):e}),(function(e){var o,t,a,r,i;if(e.response&&(401===e.response.status&&n.postMessage("login"),(null===(t=null===(o=e.response)||void 0===o?void 0:o.data)||void 0===t?void 0:t.msg)||(null===(r=null===(a=e.response)||void 0===a?void 0:a.data)||void 0===r?void 0:r.message)))return Promise.reject(null===(i=e.response)||void 0===i?void 0:i.data);return Promise.reject(e)})),t}var a=[],r=!1;function i(e,o){for(var t=o||{},a=t.locale,r=void 0===a?"zh":a,i=t.precision,s=void 0===i?0:i,c=t.showByte,l=void 0!==c&&c,u=t.splitUnit,d=void 0!==u&&u,f="",p=0;p<s;p++)f+="0";if(!1===l&&"zh"===r)return e>=1e8?d?{num:n(e/1e8).format("0.[".concat(f,"]")),unit:"亿"}:"".concat(n(e/1e8).format("0.[".concat(f,"]")),"亿"):e>=1e4?d?{num:n(e/1e4).format("0.[".concat(f,"]")),unit:"万"}:"".concat(n(e/1e4).format("0.[".concat(f,"]")),"万"):d?{num:"".concat(e),unit:""}:"".concat(e);var v="";v=0===s?"0b":"0.[".concat(f,"b]");var h=n(e).format(v),w=function(e){var n={size:0,unit:"B"};if(!e)return n;var o=e.match(/^([\d.]+)\s*([KMGTPEZY]?B?)?$/i);if(!o)return n;var t=parseFloat(o[1]),a=(o[2]||"B").toUpperCase();return 1===a.length&&(a+="B"),{size:t,unit:a}}(h),g=w.size,m=w.unit;return!0===l?d?{num:"".concat(g),unit:m}:h:d?{num:"".concat(g),unit:m.replace("K","k")}:(h=h.substring(0,h.length-1)).replace("K","k")}function s(e,n,o,t,i){var s;n?window.open(e):(a.push({url:e,headers:t,locale:i}),r||(r=!0,null===(s=null==o?void 0:o.loading)||void 0===s||s.call(o,"zh"===i?"下载中":"Downloading"),c(o)))}function c(e){if(a.length>0){var n=a.shift(),o="string"==typeof n?n:n.url,t="string"==typeof n?{}:n.headers||{},i="string"==typeof n?"zh":n.locale||"zh";fetch(o,{headers:t}).then((function(e){if(200===(null==e?void 0:e.status)){var n=function(e){if(!e)return"";var n=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(e);return n&&n[1]?n[1].replace(/['"]/g,""):""}(e.headers.get("Content-Disposition"))||function(e){if(e){var n=e.split("/").pop();if(n&&n.indexOf(".")>-1)return decodeURIComponent(n.split("?")[0])}return""}(o);return e.blob().then((function(e){var o=URL.createObjectURL(e),t=document.createElement("a");t.style.display="none",document.body.appendChild(t),t.href=o,n&&(t.download=n),t.click(),t.remove(),URL.revokeObjectURL(o)}))}return Promise.reject({message:null==e?void 0:e.statusText})})).catch((function(){var n;null===(n=null==e?void 0:e.error)||void 0===n||n.call(e,"zh"===i?"文件下载异常:".concat(o):"File download error: ".concat(o))})).finally((function(){setTimeout((function(){c(e)}),1e3)}))}else r=!1}function l(e){var n=e,o=e.indexOf("?");-1!==o&&(n=e.substring(0,o));var t=n.lastIndexOf(".");return n.substring(t+1)}function u(e){if(Array.isArray(e)){var n=[];return e.forEach((function(e){n.push(u(e))})),n}if("[object Object]"===Object.prototype.toString.call(e)){var o={};return Object.keys(e).forEach((function(n){o[n]=u(e[n])})),o}return"string"==typeof e?e.trim():e}var d,f="zjlab_util_ifm";!function(e){e.HASH_CHANGE="zjlab_util_ifm_hashChange",e.PUSH_STATE="zjlab_util_ifm_pushState",e.REPLACE_STATE="zjlab_util_ifm_replaceState"}(d||(d={}));var p,v=function(){function e(){this.onMessageCallback={}}return e.prototype.postMessageToIfm=function(e,n,o,t){var a;if(e){var r=void 0;"function"==typeof o?r=o:t&&(r=t);var i="".concat(f,"_").concat(n);r&&this.onMessage(n,r,!0),null===(a=e.contentWindow)||void 0===a||a.postMessage({type:i,data:"function"==typeof o?null:o},"*")}else console.error("postMessage error, no parent")},e.prototype.postMessage=function(e,n,o){if(window.parent&&window.parent!==window){var t=void 0;"function"==typeof n?t=n:o&&(t=o);var a="";a=-1!==[d.HASH_CHANGE,d.PUSH_STATE,d.REPLACE_STATE].indexOf(e)?e:"".concat(f,"_").concat(e),t&&this.onMessage(e,t,!0),window.parent.postMessage({type:a,data:"function"==typeof n?null:n},"*")}else console.error("postMessage error, no parent")},e.prototype.onMessage=function(e,n,o){var t=function(a){o&&window.removeEventListener("message",t);var r=a.data||{},i=r.data,s=r.type;-1!==[d.HASH_CHANGE,d.PUSH_STATE,d.REPLACE_STATE].indexOf(e)?s===e&&n(i):s==="".concat(f,"_").concat(e)&&n(i)};this.onMessageCallback[e]||(this.onMessageCallback[e]=[]),this.onMessageCallback[e].push(t),window.addEventListener("message",t)},e.prototype.destroy=function(){var e=this,n=Object.keys(this.onMessageCallback);n.length>0&&n.forEach((function(n){var o;null===(o=e.onMessageCallback[n])||void 0===o||o.forEach((function(e){window.removeEventListener("message",e)}))}))},e}();function h(){window.addEventListener("message",(function(e){var n=e.data||{},o=n.data,t=n.type;if(t===d.HASH_CHANGE||t===d.PUSH_STATE||t===d.REPLACE_STATE){var a="".concat(window.location.pathname,"?iframeUrl=").concat(encodeURIComponent(o.href));console.log("+++ iframe url data",t,o),window.history.replaceState(null,"",a)}}))}function w(n){var o=e.parse(window.location.search);return(null==o?void 0:o.iframeUrl)?decodeURIComponent(o.iframeUrl):n}function g(e,n){var o=new v;if(window.parent&&window.parent!==window){window.onhashchange=function(){o.postMessage(d.HASH_CHANGE,{href:window.location.href})};var t=window.history.pushState;window.history.pushState=function(e,n,a){t.call(window.history,e,n,a),a&&o.postMessage(d.PUSH_STATE,{href:-1!==a.indexOf("//")?a:window.location.origin+a})};var a=window.history.replaceState;window.history.replaceState=function(e,n,t){a.call(window.history,e,n,t),t&&o.postMessage(d.REPLACE_STATE,{href:-1!==t.indexOf("//")?t:window.location.origin+t})},window.addEventListener("popstate",(function(e){o.postMessage(d.REPLACE_STATE,{href:window.location.href})})),o.postMessage("getUserInfo",(function(o){var t;window[null!==(t=null==n?void 0:n.namespace)&&void 0!==t?t:"_subApp"]=o,e&&e(o)}))}}!function(e){e.zh="zh",e.en="en"}(p||(p={}));export{v as IfmChannel,s as downloadFile,i as formatNumber,t as getAxiosInstanceWithAuth,l as getFileExt,w as getIframeUrl,h as mainAppInit,g as subAppInit,u as trimObj};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("query-string"),n=require("numeral"),
|
|
1
|
+
"use strict";var e=require("query-string"),n=require("numeral"),t=require("axios");var o=[],r=!1;function a(e){if(o.length>0){var n=o.shift(),t="string"==typeof n?n:n.url,i="string"==typeof n?{}:n.headers||{},s="string"==typeof n?"zh":n.locale||"zh";fetch(t,{headers:i}).then((function(e){if(200===(null==e?void 0:e.status)){var n=function(e){if(!e)return"";var n=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(e);return n&&n[1]?n[1].replace(/['"]/g,""):""}(e.headers.get("Content-Disposition"))||function(e){if(e){var n=e.split("/").pop();if(n&&n.indexOf(".")>-1)return decodeURIComponent(n.split("?")[0])}return""}(t);return e.blob().then((function(e){var t=URL.createObjectURL(e),o=document.createElement("a");o.style.display="none",document.body.appendChild(o),o.href=t,n&&(o.download=n),o.click(),o.remove(),URL.revokeObjectURL(t)}))}return Promise.reject({message:null==e?void 0:e.statusText})})).catch((function(){var n;null===(n=null==e?void 0:e.error)||void 0===n||n.call(e,"zh"===s?"文件下载异常:".concat(t):"File download error: ".concat(t))})).finally((function(){setTimeout((function(){a(e)}),1e3)}))}else r=!1}var i,s="zjlab_util_ifm";!function(e){e.HASH_CHANGE="zjlab_util_ifm_hashChange",e.PUSH_STATE="zjlab_util_ifm_pushState",e.REPLACE_STATE="zjlab_util_ifm_replaceState"}(i||(i={}));var c,l=function(){function e(){this.onMessageCallback={}}return e.prototype.postMessageToIfm=function(e,n,t,o){var r;if(e){var a=void 0;"function"==typeof t?a=t:o&&(a=o);var i="".concat(s,"_").concat(n);a&&this.onMessage(n,a,!0),null===(r=e.contentWindow)||void 0===r||r.postMessage({type:i,data:"function"==typeof t?null:t},"*")}else console.error("postMessage error, no parent")},e.prototype.postMessage=function(e,n,t){if(window.parent&&window.parent!==window){var o=void 0;"function"==typeof n?o=n:t&&(o=t);var r="";r=-1!==[i.HASH_CHANGE,i.PUSH_STATE,i.REPLACE_STATE].indexOf(e)?e:"".concat(s,"_").concat(e),o&&this.onMessage(e,o,!0),window.parent.postMessage({type:r,data:"function"==typeof n?null:n},"*")}else console.error("postMessage error, no parent")},e.prototype.onMessage=function(e,n,t){var o=function(r){t&&window.removeEventListener("message",o);var a=r.data||{},c=a.data,l=a.type;-1!==[i.HASH_CHANGE,i.PUSH_STATE,i.REPLACE_STATE].indexOf(e)?l===e&&n(c):l==="".concat(s,"_").concat(e)&&n(c)};this.onMessageCallback[e]||(this.onMessageCallback[e]=[]),this.onMessageCallback[e].push(o),window.addEventListener("message",o)},e.prototype.destroy=function(){var e=this,n=Object.keys(this.onMessageCallback);n.length>0&&n.forEach((function(n){var t;null===(t=e.onMessageCallback[n])||void 0===t||t.forEach((function(e){window.removeEventListener("message",e)}))}))},e}();!function(e){e.zh="zh",e.en="en"}(c||(c={})),exports.IfmChannel=l,exports.downloadFile=function(e,n,t,i,s){var c;n?window.open(e):(o.push({url:e,headers:i,locale:s}),r||(r=!0,null===(c=null==t?void 0:t.loading)||void 0===c||c.call(t,"zh"===s?"下载中":"Downloading"),a(t)))},exports.formatNumber=function(e,t){for(var o=t||{},r=o.locale,a=void 0===r?"zh":r,i=o.precision,s=void 0===i?0:i,c=o.showByte,l=void 0!==c&&c,u=o.splitUnit,d=void 0!==u&&u,f="",p=0;p<s;p++)f+="0";if(!1===l&&"zh"===a)return e>=1e8?d?{num:n(e/1e8).format("0.[".concat(f,"]")),unit:"亿"}:"".concat(n(e/1e8).format("0.[".concat(f,"]")),"亿"):e>=1e4?d?{num:n(e/1e4).format("0.[".concat(f,"]")),unit:"万"}:"".concat(n(e/1e4).format("0.[".concat(f,"]")),"万"):d?{num:"".concat(e),unit:""}:"".concat(e);var v="";v=0===s?"0b":"0.[".concat(f,"b]");var h=n(e).format(v),w=function(e){var n={size:0,unit:"B"};if(!e)return n;var t=e.match(/^([\d.]+)\s*([KMGTPEZY]?B?)?$/i);if(!t)return n;var o=parseFloat(t[1]),r=(t[2]||"B").toUpperCase();return 1===r.length&&(r+="B"),{size:o,unit:r}}(h),g=w.size,m=w.unit;return!0===l?d?{num:"".concat(g),unit:m}:h:d?{num:"".concat(g),unit:m.replace("K","k")}:(h=h.substring(0,h.length-1)).replace("K","k")},exports.getAxiosInstanceWithAuth=function(e){var n=new l,o=t.create({});return o.interceptors.request.use((function(n){var t,o=window[null!==(t=null==e?void 0:e.authTokenNamespace)&&void 0!==t?t:"_subApp"],r=null==o?void 0:o.token;return r&&(n.headers.Authorization="Bearer ".concat(r)),(null==o?void 0:o.language)&&(n.headers.language=o.language),n}),(function(e){return Promise.reject(e)})),o.interceptors.response.use((function(e){var t;return 401===(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.code)?(n.postMessage("login"),Promise.reject({code:401,msg:"用户未登录"})):e}),(function(e){var t,o,r,a,i;if(e.response&&(401===e.response.status&&n.postMessage("login"),(null===(o=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===o?void 0:o.msg)||(null===(a=null===(r=e.response)||void 0===r?void 0:r.data)||void 0===a?void 0:a.message)))return Promise.reject(null===(i=e.response)||void 0===i?void 0:i.data);return Promise.reject(e)})),o},exports.getFileExt=function(e){var n=e,t=e.indexOf("?");-1!==t&&(n=e.substring(0,t));var o=n.lastIndexOf(".");return n.substring(o+1)},exports.getIframeUrl=function(n){var t=e.parse(window.location.search);return(null==t?void 0:t.iframeUrl)?decodeURIComponent(t.iframeUrl):n},exports.mainAppInit=function(){window.addEventListener("message",(function(e){var n=e.data||{},t=n.data,o=n.type;if(o===i.HASH_CHANGE||o===i.PUSH_STATE||o===i.REPLACE_STATE){var r="".concat(window.location.pathname,"?iframeUrl=").concat(encodeURIComponent(t.href));console.log("+++ iframe url data",o,t),window.history.replaceState(null,"",r)}}))},exports.subAppInit=function(e,n){var t=new l;if(window.parent&&window.parent!==window){window.onhashchange=function(){t.postMessage(i.HASH_CHANGE,{href:window.location.href})};var o=window.history.pushState;window.history.pushState=function(e,n,r){o.call(window.history,e,n,r),r&&t.postMessage(i.PUSH_STATE,{href:-1!==r.indexOf("//")?r:window.location.origin+r})};var r=window.history.replaceState;window.history.replaceState=function(e,n,o){r.call(window.history,e,n,o),o&&t.postMessage(i.REPLACE_STATE,{href:-1!==o.indexOf("//")?o:window.location.origin+o})},window.addEventListener("popstate",(function(e){t.postMessage(i.REPLACE_STATE,{href:window.location.href})})),t.postMessage("getUserInfo",(function(t){var o;window[null!==(o=null==n?void 0:n.namespace)&&void 0!==o?o:"_subApp"]=t,e&&e(t)}))}},exports.trimObj=function e(n){if(Array.isArray(n)){var t=[];return n.forEach((function(n){t.push(e(n))})),t}if("[object Object]"===Object.prototype.toString.call(n)){var o={};return Object.keys(n).forEach((function(t){o[t]=e(n[t])})),o}return"string"==typeof n?n.trim():n};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,12 +8,17 @@
|
|
|
8
8
|
* @param options.locale {string} 可选,语言,默认是zh,可选值有zh和en
|
|
9
9
|
* @param options.precision {number} 可选,精度(小数点后最多保留几位),默认是0,即没有小数点
|
|
10
10
|
* @param options.showByte {boolean} 可选,是否是展示字节单位,默认是false
|
|
11
|
+
* @param options.splitUnit {boolean} 可选,是否分离出单位,默认是false,如果为true,则返回{ num: string; unit: string }
|
|
11
12
|
*/
|
|
12
13
|
export declare function formatNumber(total: number, options?: {
|
|
13
14
|
locale?: string;
|
|
14
15
|
precision?: number;
|
|
15
16
|
showByte?: boolean;
|
|
16
|
-
|
|
17
|
+
splitUnit?: boolean;
|
|
18
|
+
}): string | {
|
|
19
|
+
num: string;
|
|
20
|
+
unit: string;
|
|
21
|
+
};
|
|
17
22
|
/**
|
|
18
23
|
* 下载文件
|
|
19
24
|
* @param url {string} 文件url
|