util-helpers 4.0.6 → 4.2.0

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.
Files changed (50) hide show
  1. package/README.md +10 -51
  2. package/dist/util-helpers.js +230 -64
  3. package/dist/util-helpers.min.js +1 -1
  4. package/dist/util-helpers.min.js.map +1 -1
  5. package/esm/blobToDataURL.js +43 -0
  6. package/esm/dataURLToBlob.js +31 -0
  7. package/esm/divide.js +17 -8
  8. package/esm/formatBankCard.js +1 -1
  9. package/esm/formatMoney.js +7 -5
  10. package/esm/index.js +11 -0
  11. package/esm/isBusinessLicense.js +2 -2
  12. package/esm/isSocialCreditCode.js +2 -2
  13. package/esm/minus.js +17 -8
  14. package/esm/parseIdCard.js +1 -1
  15. package/esm/plus.js +17 -8
  16. package/esm/replaceChar.js +1 -1
  17. package/esm/setDataURLPrefix.js +30 -0
  18. package/esm/times.js +17 -8
  19. package/esm/utils/convertToString.js +2 -11
  20. package/esm/utils/math.util.js +4 -5
  21. package/esm/waitTime.js +26 -0
  22. package/lib/blobToDataURL.js +51 -0
  23. package/lib/dataURLToBlob.js +39 -0
  24. package/lib/divide.js +29 -8
  25. package/lib/formatBankCard.js +1 -1
  26. package/lib/formatMoney.js +6 -5
  27. package/lib/index.js +32 -0
  28. package/lib/isBusinessLicense.js +2 -2
  29. package/lib/isSocialCreditCode.js +2 -2
  30. package/lib/minus.js +29 -8
  31. package/lib/parseIdCard.js +1 -1
  32. package/lib/plus.js +29 -8
  33. package/lib/replaceChar.js +1 -1
  34. package/lib/setDataURLPrefix.js +38 -0
  35. package/lib/times.js +29 -8
  36. package/lib/utils/convertToString.js +2 -12
  37. package/lib/utils/math.util.js +4 -3
  38. package/lib/waitTime.js +34 -0
  39. package/package.json +2 -2
  40. package/types/blobToDataURL.d.ts +25 -0
  41. package/types/dataURLToBlob.d.ts +15 -0
  42. package/types/divide.d.ts +2 -4
  43. package/types/index.d.ts +4 -0
  44. package/types/minus.d.ts +2 -4
  45. package/types/plus.d.ts +2 -4
  46. package/types/setDataURLPrefix.d.ts +25 -0
  47. package/types/times.d.ts +2 -4
  48. package/types/utils/convertToString.d.ts +2 -2
  49. package/types/utils/math.util.d.ts +7 -0
  50. package/types/waitTime.d.ts +20 -0
package/lib/index.js CHANGED
@@ -165,6 +165,24 @@ Object.defineProperty(exports, "parseIdCard", {
165
165
  return _parseIdCard["default"];
166
166
  }
167
167
  });
168
+ Object.defineProperty(exports, "blobToDataURL", {
169
+ enumerable: true,
170
+ get: function get() {
171
+ return _blobToDataURL["default"];
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "dataURLToBlob", {
175
+ enumerable: true,
176
+ get: function get() {
177
+ return _dataURLToBlob["default"];
178
+ }
179
+ });
180
+ Object.defineProperty(exports, "setDataURLPrefix", {
181
+ enumerable: true,
182
+ get: function get() {
183
+ return _setDataURLPrefix["default"];
184
+ }
185
+ });
168
186
  Object.defineProperty(exports, "plus", {
169
187
  enumerable: true,
170
188
  get: function get() {
@@ -195,6 +213,12 @@ Object.defineProperty(exports, "round", {
195
213
  return _round["default"];
196
214
  }
197
215
  });
216
+ Object.defineProperty(exports, "waitTime", {
217
+ enumerable: true,
218
+ get: function get() {
219
+ return _waitTime["default"];
220
+ }
221
+ });
198
222
  Object.defineProperty(exports, "setDisableWarning", {
199
223
  enumerable: true,
200
224
  get: function get() {
@@ -256,6 +280,12 @@ var _bytesToSize = _interopRequireDefault(require("./bytesToSize"));
256
280
 
257
281
  var _parseIdCard = _interopRequireDefault(require("./parseIdCard"));
258
282
 
283
+ var _blobToDataURL = _interopRequireDefault(require("./blobToDataURL"));
284
+
285
+ var _dataURLToBlob = _interopRequireDefault(require("./dataURLToBlob"));
286
+
287
+ var _setDataURLPrefix = _interopRequireDefault(require("./setDataURLPrefix"));
288
+
259
289
  var _plus = _interopRequireDefault(require("./plus"));
260
290
 
261
291
  var _minus = _interopRequireDefault(require("./minus"));
@@ -266,6 +296,8 @@ var _divide = _interopRequireDefault(require("./divide"));
266
296
 
267
297
  var _round = _interopRequireDefault(require("./round"));
268
298
 
299
+ var _waitTime = _interopRequireDefault(require("./waitTime"));
300
+
269
301
  var _config = require("./utils/config");
270
302
 
271
303
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -85,9 +85,9 @@ function isBusinessLicense(value) {
85
85
  } // 前14位
86
86
 
87
87
 
88
- var preCode = valueStr.substr(0, 14); // 校验码
88
+ var preCode = valueStr.substring(0, 14); // 校验码
89
89
 
90
- var lastCode = valueStr.substr(-1); // 计算校验码
90
+ var lastCode = valueStr.substring(valueStr.length - 1); // 计算校验码
91
91
 
92
92
  var checkCode = sumCheckCode(preCode);
93
93
  return lastCode === String(checkCode);
@@ -104,9 +104,9 @@ function isSocialCreditCode(value) {
104
104
  } // 前17位
105
105
 
106
106
 
107
- var preCode = valueStr.substr(0, 17); // 校验码
107
+ var preCode = valueStr.substring(0, 17); // 校验码
108
108
 
109
- var lastCode = valueStr.substr(-1); // 计算校验码
109
+ var lastCode = valueStr.substring(valueStr.length - 1); // 计算校验码
110
110
 
111
111
  var checkCode = sumCheckCode(preCode);
112
112
  return lastCode === checkCode;
package/lib/minus.js CHANGED
@@ -9,17 +9,29 @@ var _math = require("./utils/math.util");
9
9
 
10
10
  var _times = _interopRequireDefault(require("./times"));
11
11
 
12
+ var _type = require("./utils/type");
13
+
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
15
 
16
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
17
+
18
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
23
+
24
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
14
28
  /**
15
29
  * 精确减法,支持多个数相减
16
30
  *
17
31
  * @static
18
32
  * @alias module:Math.minus
19
33
  * @since 3.1.0
20
- * @param {number|string} num1 相减的第一个数
21
- * @param {number|string} num2 相减的第二个数
22
- * @param {...number|string} others 相减的第其余数
34
+ * @param {...number|string} nums 相减的数
23
35
  * @returns {number} 差
24
36
  * @example
25
37
  *
@@ -32,14 +44,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
32
44
  * minus(1, 0.9, 0.02, 0.08);
33
45
  * // => 0
34
46
  */
35
- function minus(num1, num2) {
36
- for (var _len = arguments.length, others = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
37
- others[_key - 2] = arguments[_key];
47
+ function minus() {
48
+ for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
49
+ nums[_key] = arguments[_key];
38
50
  }
39
51
 
40
- if (others.length > 0) {
52
+ var num1 = nums[0],
53
+ num2 = nums[1],
54
+ rest = nums.slice(2);
55
+
56
+ if (rest.length > 0) {
57
+ return minus.apply(void 0, [minus(num1, num2)].concat(_toConsumableArray(rest)));
58
+ } // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
59
+
60
+
61
+ if ((!(0, _type.isNumber)(num2) || (0, _type.isNaN)(num2)) && !(0, _type.isString)(num2)) {
41
62
  // @ts-ignore
42
- return minus.apply(void 0, [minus(num1, num2)].concat(others));
63
+ return num1;
43
64
  }
44
65
 
45
66
  var baseNum = Math.pow(10, Math.max((0, _math.digitLength)(num1), (0, _math.digitLength)(num2)));
@@ -135,7 +135,7 @@ function parseIdCard(id) {
135
135
  }
136
136
 
137
137
  var birthday = "".concat(origin.year, "-").concat(origin.month, "-").concat(origin.day);
138
- var gender = Number(origin.gender) % 2 === 0 ? '女' : '男'; // const region = Regions.find(item => item[0] === origin.province?.substr(0, 1));
138
+ var gender = Number(origin.gender) % 2 === 0 ? '女' : '男'; // const region = Regions.find(item => item[0] === origin.province?.substring(0, 1));
139
139
 
140
140
  return {
141
141
  // region,
package/lib/plus.js CHANGED
@@ -9,17 +9,29 @@ var _math = require("./utils/math.util");
9
9
 
10
10
  var _times = _interopRequireDefault(require("./times"));
11
11
 
12
+ var _type = require("./utils/type");
13
+
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
15
 
16
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
17
+
18
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
23
+
24
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
14
28
  /**
15
29
  * 精确加法,支持多个数相加
16
30
  *
17
31
  * @static
18
32
  * @alias module:Math.plus
19
33
  * @since 3.1.0
20
- * @param {number|string} num1 相加的第一个数
21
- * @param {number|string} num2 相加的第二个数
22
- * @param {...number|string} others 相加的其余数
34
+ * @param {...number|string} nums 相加的数
23
35
  * @returns {number} 总和
24
36
  * @example
25
37
  *
@@ -32,14 +44,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
32
44
  * plus(0.1, 0.2, 0.3, 0.4);
33
45
  * // => 1
34
46
  */
35
- function plus(num1, num2) {
36
- for (var _len = arguments.length, others = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
37
- others[_key - 2] = arguments[_key];
47
+ function plus() {
48
+ for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
49
+ nums[_key] = arguments[_key];
38
50
  }
39
51
 
40
- if (others.length > 0) {
52
+ var num1 = nums[0],
53
+ num2 = nums[1],
54
+ rest = nums.slice(2);
55
+
56
+ if (rest.length > 0) {
57
+ return plus.apply(void 0, [plus(num1, num2)].concat(_toConsumableArray(rest)));
58
+ } // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
59
+
60
+
61
+ if ((!(0, _type.isNumber)(num2) || (0, _type.isNaN)(num2)) && !(0, _type.isString)(num2)) {
41
62
  // @ts-ignore
42
- return plus.apply(void 0, [plus(num1, num2)].concat(others));
63
+ return num1;
43
64
  }
44
65
 
45
66
  var baseNum = Math.pow(10, Math.max((0, _math.digitLength)(num1), (0, _math.digitLength)(num2)));
@@ -87,7 +87,7 @@ function replaceChar() {
87
87
  middleStr = _char.repeat(repeat);
88
88
  }
89
89
 
90
- return str.substr(0, start) + middleStr + str.substr(end);
90
+ return str.substring(0, start) + middleStr + str.substring(end);
91
91
  }
92
92
 
93
93
  var _default = replaceChar;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ /**
9
+ * 设置 DataURL 前缀、MIME 类型、base64 标识。<br/><br/>
10
+ *
11
+ * 如果你需要获取DataURL 的 MIME 类型和数据本身,推荐使用 <a href="https://www.npmjs.com/package/data-urls">data-urls</a>。
12
+ *
13
+ * @static
14
+ * @alias module:Processor.setDataURLPrefix
15
+ * @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
16
+ * @see 参考 {@link https://mimesniff.spec.whatwg.org/#understanding-mime-types|MIME types}
17
+ * @since 4.1.0
18
+ * @param {string} data 数据本身
19
+ * @param {string} [mimetype="image/png"] MIME 类型
20
+ * @param {boolean} [base64=true] 添加 base64 标识
21
+ * @returns {string} DataURL 格式的字符串
22
+ * @example
23
+ * const data = 'PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
24
+ * setDataURLPrefix(data); // data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
25
+ * setDataURLPrefix(data, 'image/png', false); // data:image/png,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
26
+ * setDataURLPrefix(data, 'image/jpg'); // data:image/jpg;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
27
+ * setDataURLPrefix(data, 'text/html'); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
28
+ * setDataURLPrefix(data, ''); // data:;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
29
+ * setDataURLPrefix(data, '', false); // data:,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
30
+ */
31
+ function setDataURLPrefix(data) {
32
+ var mimetype = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'image/png';
33
+ var base64 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
34
+ return "data:".concat(mimetype).concat(base64 ? ';base64' : '', ",").concat(data);
35
+ }
36
+
37
+ var _default = setDataURLPrefix;
38
+ exports["default"] = _default;
package/lib/times.js CHANGED
@@ -7,15 +7,27 @@ exports["default"] = void 0;
7
7
 
8
8
  var _math = require("./utils/math.util");
9
9
 
10
+ var _type = require("./utils/type");
11
+
12
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13
+
14
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
19
+
20
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
10
24
  /**
11
25
  * 精确乘法,支持多个数相乘
12
26
  *
13
27
  * @static
14
28
  * @alias module:Math.times
15
29
  * @since 3.1.0
16
- * @param {number|string} num1 相乘的第一个数
17
- * @param {number|string} num2 相乘的第二个数
18
- * @param {...number|string} others 相乘的其余数
30
+ * @param {...number|string} nums 相乘的数
19
31
  * @returns {number} 乘积
20
32
  * @example
21
33
  *
@@ -28,14 +40,23 @@ var _math = require("./utils/math.util");
28
40
  * times(3, 0.6, 2, 10);
29
41
  * // => 36
30
42
  */
31
- function times(num1, num2) {
32
- for (var _len = arguments.length, others = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
33
- others[_key - 2] = arguments[_key];
43
+ function times() {
44
+ for (var _len = arguments.length, nums = new Array(_len), _key = 0; _key < _len; _key++) {
45
+ nums[_key] = arguments[_key];
34
46
  }
35
47
 
36
- if (others.length > 0) {
48
+ var num1 = nums[0],
49
+ num2 = nums[1],
50
+ rest = nums.slice(2);
51
+
52
+ if (rest.length > 0) {
53
+ return times.apply(void 0, [times(num1, num2)].concat(_toConsumableArray(rest)));
54
+ } // 兼容处理,如果第2个参数为非数字或字符串时,返回第一个参数
55
+
56
+
57
+ if ((!(0, _type.isNumber)(num2) || (0, _type.isNaN)(num2)) && !(0, _type.isString)(num2)) {
37
58
  // @ts-ignore
38
- return times.apply(void 0, [times(num1, num2)].concat(others));
59
+ return num1;
39
60
  }
40
61
 
41
62
  var num1Changed = (0, _math.float2Fixed)(num1);
@@ -7,26 +7,16 @@ exports["default"] = void 0;
7
7
 
8
8
  var _isString = _interopRequireDefault(require("./type/isString"));
9
9
 
10
- var _config = require("./config");
11
-
12
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
11
 
14
12
  /**
15
13
  * 转换为字符串
16
14
  *
17
15
  * @param {*} value 值
18
- * @returns 字符串
16
+ * @returns {string} 字符串
19
17
  */
20
18
  function convertToString(value) {
21
- if (!(0, _isString["default"])(value)) {
22
- if (!_config.config.disableWarning) {
23
- console.warn("[validatePassword] value must be a string.");
24
- }
25
-
26
- return String(value);
27
- }
28
-
29
- return value;
19
+ return (0, _isString["default"])(value) ? value : String(value);
30
20
  }
31
21
 
32
22
  var _default = convertToString;
@@ -8,6 +8,7 @@ exports.strip = strip;
8
8
  exports.digitLength = digitLength;
9
9
  exports.float2Fixed = float2Fixed;
10
10
  exports.checkBoundary = checkBoundary;
11
+ exports.trimLeftZero = trimLeftZero;
11
12
  exports.scientificToNumber = scientificToNumber;
12
13
 
13
14
  var _constants = require("./constants");
@@ -99,13 +100,13 @@ function checkBoundary(num) {
99
100
 
100
101
 
101
102
  function trimLeftZero(num) {
102
- var reg = /^([+-])?(0+)([1-9\.]+)$/;
103
+ var reg = /^([+-])?(0+)([0-9\.]+)$/;
103
104
  var result = reg.exec(num);
104
105
  var sign;
105
106
 
106
107
  if (result) {
107
108
  sign = result[1] || '';
108
- return sign + result[3];
109
+ return sign + (result[3][0] === '.' ? '0' + result[3] : result[3]);
109
110
  }
110
111
 
111
112
  return num;
@@ -144,7 +145,7 @@ function scientificToNumber(num) {
144
145
  var dec = coeff_array[1]; //如果是整数,将整数除第一位之外的非零数字计入位数,相应的减少0的个数
145
146
 
146
147
  if (l - dec.length < 0) {
147
- num = trimLeftZero(coeff_array[0] + dec.substr(0, l)) + '.' + dec.substr(l);
148
+ num = trimLeftZero(coeff_array[0] + dec.substring(0, l)) + '.' + dec.substring(l);
148
149
  } else {
149
150
  //拼接字符串,如果是整数,不需要拼接小数点
150
151
  num = coeff_array.join('') + new Array(l - dec.length + 1).join(zero);
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ /**
9
+ * 等待时间返回 Promise 。常用于异步方法中延时。
10
+ *
11
+ * @static
12
+ * @alias module:Other.waitTime
13
+ * @since 3.1.0
14
+ * @param {number} [time=1000] 延时时间,单位毫秒
15
+ * @returns {Promise<void>}
16
+ * @example
17
+ * const test = async ()=>{
18
+ * await waitTime();
19
+ * // do something
20
+ * }
21
+ *
22
+ * waitTime(500).then(()=>{
23
+ * // do something
24
+ * })
25
+ */
26
+ function waitTime() {
27
+ var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;
28
+ return new Promise(function (resolve) {
29
+ setTimeout(resolve, time);
30
+ });
31
+ }
32
+
33
+ var _default = waitTime;
34
+ exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "util-helpers",
3
- "version": "4.0.6",
3
+ "version": "4.2.0",
4
4
  "description": "一个基于业务场景的工具方法库",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",
@@ -25,7 +25,7 @@
25
25
  "lint": "eslint src --ext .js",
26
26
  "lint:fix": "eslint src --ext .js --fix",
27
27
  "commit": "cz",
28
- "pub": "npm run build && npm publish",
28
+ "prepublishOnly": "npm test && npm run build",
29
29
  "types": "tsc"
30
30
  },
31
31
  "repository": {
@@ -0,0 +1,25 @@
1
+ export default blobToDataURL;
2
+ /**
3
+ * 将 Blob 或 File 对象转成 data:URL 格式的 Base64 字符串。
4
+ *
5
+ * @static
6
+ * @alias module:Processor.blobToDataURL
7
+ * @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL|FileReader.readAsDataURL()}
8
+ * @since 4.1.0
9
+ * @param {Blob} blob Blob 或 File 对象
10
+ * @returns {Promise<string>} data:URL 格式的 Base64 字符串。
11
+ * @example
12
+ * const aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // 一个包含DOMString的数组
13
+ * const htmlBlob = new Blob(aFileParts, { type: 'text/html' }); // 得到 blob
14
+ *
15
+ * blobToDataURL(htmlBlob).then(data=>{
16
+ * console.log(data); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
17
+ * });
18
+ *
19
+ * const textBlob = new Blob(aFileParts, { type: 'text/plain' });
20
+ *
21
+ * blobToDataURL(textBlob).then(data=>{
22
+ * console.log(data); // data:text/plain;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
23
+ * });
24
+ */
25
+ declare function blobToDataURL(blob: Blob): Promise<string>;
@@ -0,0 +1,15 @@
1
+ export default dataURLToBlob;
2
+ /**
3
+ * 将 DataURL 转为 Blob 对象
4
+ *
5
+ * @static
6
+ * @alias module:Processor.dataURLToBlob
7
+ * @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Glossary/Base64|Base64}
8
+ * @since 4.1.0
9
+ * @param {string} dataurl data: 协议的URL
10
+ * @returns {Blob} Blob 对象
11
+ * @example
12
+ * const dataurl = 'data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
13
+ * dataURLToBlob(dataurl);
14
+ */
15
+ declare function dataURLToBlob(dataurl: string): Blob;
package/types/divide.d.ts CHANGED
@@ -5,9 +5,7 @@ export default divide;
5
5
  * @static
6
6
  * @alias module:Math.divide
7
7
  * @since 3.1.0
8
- * @param {number|string} num1 除数
9
- * @param {number|string} num2 被除数
10
- * @param {...number|string} others 其余被除数
8
+ * @param {...number|string} nums 除数和被除数
11
9
  * @returns {number} 商数
12
10
  * @example
13
11
  *
@@ -20,4 +18,4 @@ export default divide;
20
18
  * divide(1000, 10, 10, 10);
21
19
  * // => 1
22
20
  */
23
- declare function divide(num1: number | string, num2: number | string, ...others: (number | string)[]): number;
21
+ declare function divide(...nums: (number | string)[]): number;
package/types/index.d.ts CHANGED
@@ -25,9 +25,13 @@ export { default as replaceChar } from "./replaceChar";
25
25
  export { default as numberToChinese } from "./numberToChinese";
26
26
  export { default as bytesToSize } from "./bytesToSize";
27
27
  export { default as parseIdCard } from "./parseIdCard";
28
+ export { default as blobToDataURL } from "./blobToDataURL";
29
+ export { default as dataURLToBlob } from "./dataURLToBlob";
30
+ export { default as setDataURLPrefix } from "./setDataURLPrefix";
28
31
  export { default as plus } from "./plus";
29
32
  export { default as minus } from "./minus";
30
33
  export { default as times } from "./times";
31
34
  export { default as divide } from "./divide";
32
35
  export { default as round } from "./round";
36
+ export { default as waitTime } from "./waitTime";
33
37
  export { setDisableWarning } from "./utils/config";
package/types/minus.d.ts CHANGED
@@ -5,9 +5,7 @@ export default minus;
5
5
  * @static
6
6
  * @alias module:Math.minus
7
7
  * @since 3.1.0
8
- * @param {number|string} num1 相减的第一个数
9
- * @param {number|string} num2 相减的第二个数
10
- * @param {...number|string} others 相减的第其余数
8
+ * @param {...number|string} nums 相减的数
11
9
  * @returns {number} 差
12
10
  * @example
13
11
  *
@@ -20,4 +18,4 @@ export default minus;
20
18
  * minus(1, 0.9, 0.02, 0.08);
21
19
  * // => 0
22
20
  */
23
- declare function minus(num1: number | string, num2: number | string, ...others: (number | string)[]): number;
21
+ declare function minus(...nums: (number | string)[]): number;
package/types/plus.d.ts CHANGED
@@ -5,9 +5,7 @@ export default plus;
5
5
  * @static
6
6
  * @alias module:Math.plus
7
7
  * @since 3.1.0
8
- * @param {number|string} num1 相加的第一个数
9
- * @param {number|string} num2 相加的第二个数
10
- * @param {...number|string} others 相加的其余数
8
+ * @param {...number|string} nums 相加的数
11
9
  * @returns {number} 总和
12
10
  * @example
13
11
  *
@@ -20,4 +18,4 @@ export default plus;
20
18
  * plus(0.1, 0.2, 0.3, 0.4);
21
19
  * // => 1
22
20
  */
23
- declare function plus(num1: number | string, num2: number | string, ...others: (number | string)[]): number;
21
+ declare function plus(...nums: (number | string)[]): number;
@@ -0,0 +1,25 @@
1
+ export default setDataURLPrefix;
2
+ /**
3
+ * 设置 DataURL 前缀、MIME 类型、base64 标识。<br/><br/>
4
+ *
5
+ * 如果你需要获取DataURL 的 MIME 类型和数据本身,推荐使用 <a href="https://www.npmjs.com/package/data-urls">data-urls</a>。
6
+ *
7
+ * @static
8
+ * @alias module:Processor.setDataURLPrefix
9
+ * @see 参考 {@link https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs|Data URLs}
10
+ * @see 参考 {@link https://mimesniff.spec.whatwg.org/#understanding-mime-types|MIME types}
11
+ * @since 4.1.0
12
+ * @param {string} data 数据本身
13
+ * @param {string} [mimetype="image/png"] MIME 类型
14
+ * @param {boolean} [base64=true] 添加 base64 标识
15
+ * @returns {string} DataURL 格式的字符串
16
+ * @example
17
+ * const data = 'PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=';
18
+ * setDataURLPrefix(data); // data:image/png;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
19
+ * setDataURLPrefix(data, 'image/png', false); // data:image/png,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
20
+ * setDataURLPrefix(data, 'image/jpg'); // data:image/jpg;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
21
+ * setDataURLPrefix(data, 'text/html'); // data:text/html;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
22
+ * setDataURLPrefix(data, ''); // data:;base64,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
23
+ * setDataURLPrefix(data, '', false); // data:,PGEgaWQ9ImEiPjxiIGlkPSJiIj5oZXkhPC9iPjwvYT4=
24
+ */
25
+ declare function setDataURLPrefix(data: string, mimetype?: string | undefined, base64?: boolean | undefined): string;
package/types/times.d.ts CHANGED
@@ -5,9 +5,7 @@ export default times;
5
5
  * @static
6
6
  * @alias module:Math.times
7
7
  * @since 3.1.0
8
- * @param {number|string} num1 相乘的第一个数
9
- * @param {number|string} num2 相乘的第二个数
10
- * @param {...number|string} others 相乘的其余数
8
+ * @param {...number|string} nums 相乘的数
11
9
  * @returns {number} 乘积
12
10
  * @example
13
11
  *
@@ -20,4 +18,4 @@ export default times;
20
18
  * times(3, 0.6, 2, 10);
21
19
  * // => 36
22
20
  */
23
- declare function times(num1: number | string, num2: number | string, ...others: (number | string)[]): number;
21
+ declare function times(...nums: (number | string)[]): number;
@@ -3,6 +3,6 @@ export default convertToString;
3
3
  * 转换为字符串
4
4
  *
5
5
  * @param {*} value 值
6
- * @returns 字符串
6
+ * @returns {string} 字符串
7
7
  */
8
- declare function convertToString(value: any): any;
8
+ declare function convertToString(value: any): string;
@@ -36,6 +36,13 @@ export function float2Fixed(num: number | string): number;
36
36
  * @returns
37
37
  */
38
38
  export function checkBoundary(num: number): void;
39
+ /**
40
+ * 去掉左边数字0
41
+ *
42
+ * @param {string} num 数字字符串
43
+ * @returns {string}
44
+ */
45
+ export function trimLeftZero(num: string): string;
39
46
  /**
40
47
  * 科学计数法转换成普通数字
41
48
  *
@@ -0,0 +1,20 @@
1
+ export default waitTime;
2
+ /**
3
+ * 等待时间返回 Promise 。常用于异步方法中延时。
4
+ *
5
+ * @static
6
+ * @alias module:Other.waitTime
7
+ * @since 3.1.0
8
+ * @param {number} [time=1000] 延时时间,单位毫秒
9
+ * @returns {Promise<void>}
10
+ * @example
11
+ * const test = async ()=>{
12
+ * await waitTime();
13
+ * // do something
14
+ * }
15
+ *
16
+ * waitTime(500).then(()=>{
17
+ * // do something
18
+ * })
19
+ */
20
+ declare function waitTime(time?: number | undefined): Promise<void>;