a-js-tools 0.3.0 → 0.5.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.
package/README.md CHANGED
@@ -18,6 +18,9 @@ npm install a-js-tools --save
18
18
  - `getRandomString` 获取随机字符串
19
19
  - `escapeRegExp` 转义字符串为简单的正则表达式
20
20
  - `autoEscapedRegExp` 生成简单的正则表达式
21
+ - `isBrowser` 是否为浏览器环境
22
+ - `isNode` 是否为 Node 环境
23
+ - `createConstructor` 构造构造函数
21
24
 
22
25
  ## class 名称转化
23
26
 
package/cjs/index.cjs CHANGED
@@ -6,6 +6,7 @@ var getRandomString = require('./src/getRandomString.cjs');
6
6
  var performance = require('./src/performance.cjs');
7
7
  var escapeRegExp = require('./src/regexp/escapeRegExp.cjs');
8
8
  var autoEscapedRegExp = require('./src/regexp/autoEscapedRegExp.cjs');
9
+ var isNode = require('./src/isNode.cjs');
9
10
 
10
11
 
11
12
 
@@ -18,3 +19,5 @@ exports.debounce = performance.debounce;
18
19
  exports.throttle = performance.throttle;
19
20
  exports.escapeRegExp = escapeRegExp.escapeRegExp;
20
21
  exports.autoEscapedRegExp = autoEscapedRegExp.autoEscapedRegExp;
22
+ exports.isBrowser = isNode.isBrowser;
23
+ exports.isNode = isNode.isNode;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var aTypeOfJs = require('a-type-of-js');
4
+ var isNode = require('./isNode.cjs');
4
5
 
5
6
  /**
6
7
  * 获取随机字符串
@@ -77,7 +78,7 @@ function getRandomString(options) {
77
78
  interleaveString(templateCharsArr, initOptions.chars3);
78
79
  }
79
80
  // 使用密码学安全的随机数生成器
80
- const bytes = !aTypeOfJs.isUndefined(window) && window.crypto
81
+ const bytes = isNode.isBrowser() && window.crypto
81
82
  ? window.crypto.getRandomValues(new Uint8Array(initOptions.length))
82
83
  : global.crypto.getRandomValues(new Uint8Array(initOptions.length));
83
84
  let result = '';
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var aTypeOfJs = require('a-type-of-js');
4
+
5
+ /**
6
+ *
7
+ * 判断当前环境是否为 node 环境
8
+ *
9
+ */
10
+ function isNode() {
11
+ return aTypeOfJs.isUndefined(window) || aTypeOfJs.isUndefined(window.document);
12
+ }
13
+ /**
14
+ *
15
+ * 是否为浏览器环境
16
+ *
17
+ */
18
+ function isBrowser() {
19
+ return !isNode();
20
+ }
21
+
22
+ exports.isBrowser = isBrowser;
23
+ exports.isNode = isNode;
package/mjs/index.mjs CHANGED
@@ -4,3 +4,4 @@ export { getRandomString } from './src/getRandomString.mjs';
4
4
  export { debounce, throttle } from './src/performance.mjs';
5
5
  export { escapeRegExp } from './src/regexp/escapeRegExp.mjs';
6
6
  export { autoEscapedRegExp } from './src/regexp/autoEscapedRegExp.mjs';
7
+ export { isBrowser, isNode } from './src/isNode.mjs';
@@ -1,4 +1,5 @@
1
- import { isPlainObject, isNumber, isNaN, isUndefined } from 'a-type-of-js';
1
+ import { isPlainObject, isNumber, isNaN } from 'a-type-of-js';
2
+ import { isBrowser } from './isNode.mjs';
2
3
 
3
4
  /**
4
5
  * 获取随机字符串
@@ -75,7 +76,7 @@ function getRandomString(options) {
75
76
  interleaveString(templateCharsArr, initOptions.chars3);
76
77
  }
77
78
  // 使用密码学安全的随机数生成器
78
- const bytes = !isUndefined(window) && window.crypto
79
+ const bytes = isBrowser() && window.crypto
79
80
  ? window.crypto.getRandomValues(new Uint8Array(initOptions.length))
80
81
  : global.crypto.getRandomValues(new Uint8Array(initOptions.length));
81
82
  let result = '';
@@ -0,0 +1,20 @@
1
+ import { isUndefined } from 'a-type-of-js';
2
+
3
+ /**
4
+ *
5
+ * 判断当前环境是否为 node 环境
6
+ *
7
+ */
8
+ function isNode() {
9
+ return isUndefined(window) || isUndefined(window.document);
10
+ }
11
+ /**
12
+ *
13
+ * 是否为浏览器环境
14
+ *
15
+ */
16
+ function isBrowser() {
17
+ return !isNode();
18
+ }
19
+
20
+ export { isBrowser, isNode };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "module",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "name": "a-js-tools",
5
5
  "description": "一点点 🤏 js 函数",
6
6
  "license": "ISC",
package/types/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export { toLowerCamelCase, toSplitCase, getRandomFloat, getRandomInt, getRandomS
2
2
  export { throttle, debounce } from './src/performance';
3
3
  export type { DebounceAndThrottleReturnType } from './src/performance';
4
4
  export { escapeRegExp, autoEscapedRegExp } from './src/regexp';
5
+ export { isBrowser, isNode } from './src/isNode';
@@ -0,0 +1,10 @@
1
+ interface CreateConstructor<T> {
2
+ new (): T;
3
+ }
4
+ /**
5
+ *
6
+ * 构建一个 Constructor 构造函数
7
+ *
8
+ */
9
+ export declare function createConstructor<T>(constructor: (...argumentList: unknown[]) => T): CreateConstructor<T>;
10
+ export {};
@@ -0,0 +1,12 @@
1
+ /**
2
+ *
3
+ * 判断当前环境是否为 node 环境
4
+ *
5
+ */
6
+ export declare function isNode(): boolean;
7
+ /**
8
+ *
9
+ * 是否为浏览器环境
10
+ *
11
+ */
12
+ export declare function isBrowser(): boolean;