@daysnap/utils 0.0.58 → 0.0.60

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/es/cached.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 缓存、记忆函数,缓存函数的运算结果
3
+ * 需注意缓存的函数得是纯函数
4
+ */
5
+ export declare function cached<T extends (...args: any[]) => any>(fn: T): (...args: Parameters<T>) => ReturnType<T>;
package/es/cached.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * 缓存、记忆函数,缓存函数的运算结果
3
+ * 需注意缓存的函数得是纯函数
4
+ */
5
+ export function cached(fn) {
6
+ const cache = Object.create(null);
7
+ return function cachedFn(...args) {
8
+ const key = JSON.stringify(args);
9
+ const hit = cache[key];
10
+ return hit || (cache[key] = fn(...args));
11
+ };
12
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 退出全屏
3
+ * 成功则 resolve , 如果不支持退出全屏或退出失败则 rejected
4
+ * [MDN Reference](https://developer.mozilla.org/zh-CN/docs/Web/API/Document/exitFullscreen)
5
+ */
6
+ export declare function exitFullscreen(): Promise<any>;
@@ -0,0 +1,27 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /**
11
+ * 退出全屏
12
+ * 成功则 resolve , 如果不支持退出全屏或退出失败则 rejected
13
+ * [MDN Reference](https://developer.mozilla.org/zh-CN/docs/Web/API/Document/exitFullscreen)
14
+ */
15
+ export function exitFullscreen() {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const doc = window.document;
18
+ const exit = doc.exitFullscreen ||
19
+ doc.msExitFullscreen ||
20
+ doc.mozCancelFullScreen ||
21
+ doc.webkitExitFullscreen;
22
+ if (exit) {
23
+ return yield exit();
24
+ }
25
+ return Promise.reject();
26
+ });
27
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 过滤对象的 undefined null '' 属性,返回一个新对象
3
+ */
4
+ export declare function filterEmptyValue(obj: Record<string, any>): Record<string, any>;
@@ -0,0 +1,12 @@
1
+ import { isEmpty } from './isEmpty';
2
+ /**
3
+ * 过滤对象的 undefined null '' 属性,返回一个新对象
4
+ */
5
+ export function filterEmptyValue(obj) {
6
+ return Object.entries(obj).reduce((res, [key, value]) => {
7
+ if (!isEmpty(value)) {
8
+ res[key] = value;
9
+ }
10
+ return res;
11
+ }, {});
12
+ }
package/es/getRandom.js CHANGED
@@ -1,11 +1,9 @@
1
+ import { listGenerator } from './listGenerator';
1
2
  /**
2
3
  * 生成一个随机字符串
3
4
  * @param length 生成随机字符串的长度
4
5
  * @param alphabet 字母表
5
6
  */
6
7
  export function getRandom(length, alphabet = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM') {
7
- return new Array(length)
8
- .fill('')
9
- .map(() => alphabet[Math.floor(Math.random() * alphabet.length)])
10
- .join('');
8
+ return listGenerator(length, () => alphabet[Math.floor(Math.random() * alphabet.length)]).join('');
11
9
  }
package/es/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './base64ToBlob';
2
2
  export * from './blobToBase64';
3
+ export * from './cached';
3
4
  export * from './camelCase';
4
5
  export * from './canvasToBlob';
5
6
  export * from './capitalize';
@@ -11,9 +12,11 @@ export * from './createHexColorByHash';
11
12
  export * from './debounce';
12
13
  export * from './downloadFile';
13
14
  export * from './each';
15
+ export * from './exitFullscreen';
14
16
  export * from './filterBankCardNo';
15
17
  export * from './filterCRLF';
16
18
  export * from './filterEmoji';
19
+ export * from './filterEmptyValue';
17
20
  export * from './filterIdCard';
18
21
  export * from './filterName';
19
22
  export * from './filterPhone';
@@ -51,6 +54,7 @@ export * from './isJSONString';
51
54
  export * from './isLan';
52
55
  export * from './isLicenseCode';
53
56
  export * from './isMobile';
57
+ export * from './isNativeFunction';
54
58
  export * from './isNull';
55
59
  export * from './isNumber';
56
60
  export * from './isObject';
@@ -64,6 +68,7 @@ export * from './isWeChat';
64
68
  export * from './isWeChatMiniProgram';
65
69
  export * from './isWindow';
66
70
  export * from './kebabCase';
71
+ export * from './listGenerator';
67
72
  export * from './mousewheel';
68
73
  export * from './normalizePath';
69
74
  export * from './omit';
@@ -76,6 +81,7 @@ export * from './parseQuery';
76
81
  export * from './pascalCase';
77
82
  export * from './pick';
78
83
  export * from './replaceCrlf';
84
+ export * from './requestFullScreen';
79
85
  export * from './reserve';
80
86
  export * from './rgbToHex';
81
87
  export * from './round';
package/es/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /* 本文件自动生成 './scripts/entry.js' */
2
2
  export * from './base64ToBlob';
3
3
  export * from './blobToBase64';
4
+ export * from './cached';
4
5
  export * from './camelCase';
5
6
  export * from './canvasToBlob';
6
7
  export * from './capitalize';
@@ -12,9 +13,11 @@ export * from './createHexColorByHash';
12
13
  export * from './debounce';
13
14
  export * from './downloadFile';
14
15
  export * from './each';
16
+ export * from './exitFullscreen';
15
17
  export * from './filterBankCardNo';
16
18
  export * from './filterCRLF';
17
19
  export * from './filterEmoji';
20
+ export * from './filterEmptyValue';
18
21
  export * from './filterIdCard';
19
22
  export * from './filterName';
20
23
  export * from './filterPhone';
@@ -52,6 +55,7 @@ export * from './isJSONString';
52
55
  export * from './isLan';
53
56
  export * from './isLicenseCode';
54
57
  export * from './isMobile';
58
+ export * from './isNativeFunction';
55
59
  export * from './isNull';
56
60
  export * from './isNumber';
57
61
  export * from './isObject';
@@ -65,6 +69,7 @@ export * from './isWeChat';
65
69
  export * from './isWeChatMiniProgram';
66
70
  export * from './isWindow';
67
71
  export * from './kebabCase';
72
+ export * from './listGenerator';
68
73
  export * from './mousewheel';
69
74
  export * from './normalizePath';
70
75
  export * from './omit';
@@ -77,6 +82,7 @@ export * from './parseQuery';
77
82
  export * from './pascalCase';
78
83
  export * from './pick';
79
84
  export * from './replaceCrlf';
85
+ export * from './requestFullScreen';
80
86
  export * from './reserve';
81
87
  export * from './rgbToHex';
82
88
  export * from './round';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 判断是不是内置函数
3
+ * 内置函数toString后的主体代码块为 [native code]
4
+ */
5
+ export declare function isNativeFunction(val: unknown): boolean;
@@ -0,0 +1,8 @@
1
+ import { isFunction } from './isFunction';
2
+ /**
3
+ * 判断是不是内置函数
4
+ * 内置函数toString后的主体代码块为 [native code]
5
+ */
6
+ export function isNativeFunction(val) {
7
+ return isFunction(val) && /native code/.test(val.toString());
8
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * list 生成器,快速生成数据
3
+ * @param length 个数
4
+ */
5
+ export declare function listGenerator<T = any>(length: number, fn: (index: number) => T): T[];
@@ -0,0 +1,7 @@
1
+ /**
2
+ * list 生成器,快速生成数据
3
+ * @param length 个数
4
+ */
5
+ export function listGenerator(length, fn) {
6
+ return new Array(length).fill('').map((_, index) => fn(index));
7
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 开启全屏
3
+ * 成功则 resolve , 如果不支持全屏或开启失败则 rejected
4
+ * [MDN Reference] https://developer.mozilla.org/zh-CN/docs/Web/API/Element/requestFullscreen
5
+ */
6
+ export declare function requestFullScreen(ele?: HTMLElement): Promise<any>;
@@ -0,0 +1,27 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /**
11
+ * 开启全屏
12
+ * 成功则 resolve , 如果不支持全屏或开启失败则 rejected
13
+ * [MDN Reference] https://developer.mozilla.org/zh-CN/docs/Web/API/Element/requestFullscreen
14
+ */
15
+ export function requestFullScreen(ele = window.document.documentElement) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const element = ele;
18
+ const fullScreen = element.requestFullscreen ||
19
+ element.mozRequestFullScreen ||
20
+ element.msRequestFullscreen ||
21
+ element.webkitRequestFullscreen;
22
+ if (fullScreen) {
23
+ return yield fullScreen.call(element);
24
+ }
25
+ return Promise.reject();
26
+ });
27
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 缓存、记忆函数,缓存函数的运算结果
3
+ * 需注意缓存的函数得是纯函数
4
+ */
5
+ export declare function cached<T extends (...args: any[]) => any>(fn: T): (...args: Parameters<T>) => ReturnType<T>;
package/lib/cached.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cached = void 0;
4
+ /**
5
+ * 缓存、记忆函数,缓存函数的运算结果
6
+ * 需注意缓存的函数得是纯函数
7
+ */
8
+ function cached(fn) {
9
+ const cache = Object.create(null);
10
+ return function cachedFn(...args) {
11
+ const key = JSON.stringify(args);
12
+ const hit = cache[key];
13
+ return hit || (cache[key] = fn(...args));
14
+ };
15
+ }
16
+ exports.cached = cached;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 退出全屏
3
+ * 成功则 resolve , 如果不支持退出全屏或退出失败则 rejected
4
+ * [MDN Reference](https://developer.mozilla.org/zh-CN/docs/Web/API/Document/exitFullscreen)
5
+ */
6
+ export declare function exitFullscreen(): Promise<any>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.exitFullscreen = void 0;
13
+ /**
14
+ * 退出全屏
15
+ * 成功则 resolve , 如果不支持退出全屏或退出失败则 rejected
16
+ * [MDN Reference](https://developer.mozilla.org/zh-CN/docs/Web/API/Document/exitFullscreen)
17
+ */
18
+ function exitFullscreen() {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ const doc = window.document;
21
+ const exit = doc.exitFullscreen ||
22
+ doc.msExitFullscreen ||
23
+ doc.mozCancelFullScreen ||
24
+ doc.webkitExitFullscreen;
25
+ if (exit) {
26
+ return yield exit();
27
+ }
28
+ return Promise.reject();
29
+ });
30
+ }
31
+ exports.exitFullscreen = exitFullscreen;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 过滤对象的 undefined null '' 属性,返回一个新对象
3
+ */
4
+ export declare function filterEmptyValue(obj: Record<string, any>): Record<string, any>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterEmptyValue = void 0;
4
+ const isEmpty_1 = require("./isEmpty");
5
+ /**
6
+ * 过滤对象的 undefined null '' 属性,返回一个新对象
7
+ */
8
+ function filterEmptyValue(obj) {
9
+ return Object.entries(obj).reduce((res, [key, value]) => {
10
+ if (!(0, isEmpty_1.isEmpty)(value)) {
11
+ res[key] = value;
12
+ }
13
+ return res;
14
+ }, {});
15
+ }
16
+ exports.filterEmptyValue = filterEmptyValue;
package/lib/getRandom.js CHANGED
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRandom = void 0;
4
+ const listGenerator_1 = require("./listGenerator");
4
5
  /**
5
6
  * 生成一个随机字符串
6
7
  * @param length 生成随机字符串的长度
7
8
  * @param alphabet 字母表
8
9
  */
9
10
  function getRandom(length, alphabet = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM') {
10
- return new Array(length)
11
- .fill('')
12
- .map(() => alphabet[Math.floor(Math.random() * alphabet.length)])
13
- .join('');
11
+ return (0, listGenerator_1.listGenerator)(length, () => alphabet[Math.floor(Math.random() * alphabet.length)]).join('');
14
12
  }
15
13
  exports.getRandom = getRandom;
package/lib/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './base64ToBlob';
2
2
  export * from './blobToBase64';
3
+ export * from './cached';
3
4
  export * from './camelCase';
4
5
  export * from './canvasToBlob';
5
6
  export * from './capitalize';
@@ -11,9 +12,11 @@ export * from './createHexColorByHash';
11
12
  export * from './debounce';
12
13
  export * from './downloadFile';
13
14
  export * from './each';
15
+ export * from './exitFullscreen';
14
16
  export * from './filterBankCardNo';
15
17
  export * from './filterCRLF';
16
18
  export * from './filterEmoji';
19
+ export * from './filterEmptyValue';
17
20
  export * from './filterIdCard';
18
21
  export * from './filterName';
19
22
  export * from './filterPhone';
@@ -51,6 +54,7 @@ export * from './isJSONString';
51
54
  export * from './isLan';
52
55
  export * from './isLicenseCode';
53
56
  export * from './isMobile';
57
+ export * from './isNativeFunction';
54
58
  export * from './isNull';
55
59
  export * from './isNumber';
56
60
  export * from './isObject';
@@ -64,6 +68,7 @@ export * from './isWeChat';
64
68
  export * from './isWeChatMiniProgram';
65
69
  export * from './isWindow';
66
70
  export * from './kebabCase';
71
+ export * from './listGenerator';
67
72
  export * from './mousewheel';
68
73
  export * from './normalizePath';
69
74
  export * from './omit';
@@ -76,6 +81,7 @@ export * from './parseQuery';
76
81
  export * from './pascalCase';
77
82
  export * from './pick';
78
83
  export * from './replaceCrlf';
84
+ export * from './requestFullScreen';
79
85
  export * from './reserve';
80
86
  export * from './rgbToHex';
81
87
  export * from './round';
package/lib/index.js CHANGED
@@ -17,6 +17,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  __exportStar(require("./base64ToBlob"), exports);
19
19
  __exportStar(require("./blobToBase64"), exports);
20
+ __exportStar(require("./cached"), exports);
20
21
  __exportStar(require("./camelCase"), exports);
21
22
  __exportStar(require("./canvasToBlob"), exports);
22
23
  __exportStar(require("./capitalize"), exports);
@@ -28,9 +29,11 @@ __exportStar(require("./createHexColorByHash"), exports);
28
29
  __exportStar(require("./debounce"), exports);
29
30
  __exportStar(require("./downloadFile"), exports);
30
31
  __exportStar(require("./each"), exports);
32
+ __exportStar(require("./exitFullscreen"), exports);
31
33
  __exportStar(require("./filterBankCardNo"), exports);
32
34
  __exportStar(require("./filterCRLF"), exports);
33
35
  __exportStar(require("./filterEmoji"), exports);
36
+ __exportStar(require("./filterEmptyValue"), exports);
34
37
  __exportStar(require("./filterIdCard"), exports);
35
38
  __exportStar(require("./filterName"), exports);
36
39
  __exportStar(require("./filterPhone"), exports);
@@ -68,6 +71,7 @@ __exportStar(require("./isJSONString"), exports);
68
71
  __exportStar(require("./isLan"), exports);
69
72
  __exportStar(require("./isLicenseCode"), exports);
70
73
  __exportStar(require("./isMobile"), exports);
74
+ __exportStar(require("./isNativeFunction"), exports);
71
75
  __exportStar(require("./isNull"), exports);
72
76
  __exportStar(require("./isNumber"), exports);
73
77
  __exportStar(require("./isObject"), exports);
@@ -81,6 +85,7 @@ __exportStar(require("./isWeChat"), exports);
81
85
  __exportStar(require("./isWeChatMiniProgram"), exports);
82
86
  __exportStar(require("./isWindow"), exports);
83
87
  __exportStar(require("./kebabCase"), exports);
88
+ __exportStar(require("./listGenerator"), exports);
84
89
  __exportStar(require("./mousewheel"), exports);
85
90
  __exportStar(require("./normalizePath"), exports);
86
91
  __exportStar(require("./omit"), exports);
@@ -93,6 +98,7 @@ __exportStar(require("./parseQuery"), exports);
93
98
  __exportStar(require("./pascalCase"), exports);
94
99
  __exportStar(require("./pick"), exports);
95
100
  __exportStar(require("./replaceCrlf"), exports);
101
+ __exportStar(require("./requestFullScreen"), exports);
96
102
  __exportStar(require("./reserve"), exports);
97
103
  __exportStar(require("./rgbToHex"), exports);
98
104
  __exportStar(require("./round"), exports);
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 判断是不是内置函数
3
+ * 内置函数toString后的主体代码块为 [native code]
4
+ */
5
+ export declare function isNativeFunction(val: unknown): boolean;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNativeFunction = void 0;
4
+ const isFunction_1 = require("./isFunction");
5
+ /**
6
+ * 判断是不是内置函数
7
+ * 内置函数toString后的主体代码块为 [native code]
8
+ */
9
+ function isNativeFunction(val) {
10
+ return (0, isFunction_1.isFunction)(val) && /native code/.test(val.toString());
11
+ }
12
+ exports.isNativeFunction = isNativeFunction;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * list 生成器,快速生成数据
3
+ * @param length 个数
4
+ */
5
+ export declare function listGenerator<T = any>(length: number, fn: (index: number) => T): T[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listGenerator = void 0;
4
+ /**
5
+ * list 生成器,快速生成数据
6
+ * @param length 个数
7
+ */
8
+ function listGenerator(length, fn) {
9
+ return new Array(length).fill('').map((_, index) => fn(index));
10
+ }
11
+ exports.listGenerator = listGenerator;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 开启全屏
3
+ * 成功则 resolve , 如果不支持全屏或开启失败则 rejected
4
+ * [MDN Reference] https://developer.mozilla.org/zh-CN/docs/Web/API/Element/requestFullscreen
5
+ */
6
+ export declare function requestFullScreen(ele?: HTMLElement): Promise<any>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.requestFullScreen = void 0;
13
+ /**
14
+ * 开启全屏
15
+ * 成功则 resolve , 如果不支持全屏或开启失败则 rejected
16
+ * [MDN Reference] https://developer.mozilla.org/zh-CN/docs/Web/API/Element/requestFullscreen
17
+ */
18
+ function requestFullScreen(ele = window.document.documentElement) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ const element = ele;
21
+ const fullScreen = element.requestFullscreen ||
22
+ element.mozRequestFullScreen ||
23
+ element.msRequestFullscreen ||
24
+ element.webkitRequestFullscreen;
25
+ if (fullScreen) {
26
+ return yield fullScreen.call(element);
27
+ }
28
+ return Promise.reject();
29
+ });
30
+ }
31
+ exports.requestFullScreen = requestFullScreen;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daysnap/utils",
3
- "version": "0.0.58",
3
+ "version": "0.0.60",
4
4
  "description": "通用的工具库",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",