util-helpers 4.18.0 → 4.19.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 +4 -3
- package/dist/util-helpers.js +51 -2
- package/dist/util-helpers.js.map +1 -1
- package/dist/util-helpers.min.js +1 -1
- package/dist/util-helpers.min.js.map +1 -1
- package/esm/VERSION.js +1 -1
- package/esm/index.js +2 -1
- package/esm/loadScript.js +39 -0
- package/lib/VERSION.js +1 -1
- package/lib/index.js +3 -1
- package/lib/loadScript.js +41 -0
- package/package.json +2 -6
- package/types/index.d.ts +1 -0
- package/types/isPromiseLike.d.ts +1 -0
- package/types/loadScript.d.ts +30 -0
- package/types/normalizeString.d.ts +1 -0
- package/types/waitTime.d.ts +1 -0
package/esm/VERSION.js
CHANGED
package/esm/index.js
CHANGED
|
@@ -43,6 +43,7 @@ export { default as round } from './round.js';
|
|
|
43
43
|
export { default as ajax } from './ajax.js';
|
|
44
44
|
export { default as calculateCursorPosition } from './calculateCursorPosition.js';
|
|
45
45
|
export { default as download } from './download.js';
|
|
46
|
+
export { default as loadScript } from './loadScript.js';
|
|
46
47
|
export { default as randomString } from './randomString.js';
|
|
47
48
|
export { default as strlen } from './strlen.js';
|
|
48
49
|
export { default as waitTime } from './waitTime.js';
|
|
@@ -56,6 +57,6 @@ export { default as findTreeSelect } from './findTreeSelect.js';
|
|
|
56
57
|
export { setDisableWarning } from './utils/config.js';
|
|
57
58
|
export { default as VERSION } from './VERSION.js';
|
|
58
59
|
|
|
59
|
-
var version = "4.
|
|
60
|
+
var version = "4.19.0";
|
|
60
61
|
|
|
61
62
|
export { version };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { __rest, __assign } from 'tslib';
|
|
2
|
+
|
|
3
|
+
function loadScript(src, options) {
|
|
4
|
+
return new Promise(function (resolve, reject) {
|
|
5
|
+
var head = document.head;
|
|
6
|
+
var script = document.createElement('script');
|
|
7
|
+
var _a = options || {}, attrs = _a.attrs, _b = _a.destroyOnError, destroyOnError = _b === void 0 ? true : _b, restOptions = __rest(_a, ["attrs", "destroyOnError"]);
|
|
8
|
+
var props = __assign(__assign({ async: true, type: 'text/javascript' }, restOptions), { src: src });
|
|
9
|
+
for (var key in props) {
|
|
10
|
+
if (key === 'onload' || key === 'onerror') {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
script[key] = props[key];
|
|
14
|
+
}
|
|
15
|
+
if (typeof attrs === 'object') {
|
|
16
|
+
Object.keys(attrs).forEach(function (key) {
|
|
17
|
+
script.setAttribute(key, attrs[key]);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
script.onload = function (ev) {
|
|
21
|
+
var _a;
|
|
22
|
+
this.onerror = this.onload = null;
|
|
23
|
+
(_a = props.onload) === null || _a === void 0 ? void 0 : _a.call(this, ev);
|
|
24
|
+
resolve(script);
|
|
25
|
+
};
|
|
26
|
+
script.onerror = function (ev) {
|
|
27
|
+
var _a;
|
|
28
|
+
this.onerror = this.onload = null;
|
|
29
|
+
(_a = props.onerror) === null || _a === void 0 ? void 0 : _a.call(this, ev);
|
|
30
|
+
if (destroyOnError) {
|
|
31
|
+
head.removeChild(script);
|
|
32
|
+
}
|
|
33
|
+
reject(new URIError('Failed to load ' + this.src));
|
|
34
|
+
};
|
|
35
|
+
head.appendChild(script);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { loadScript as default };
|
package/lib/VERSION.js
CHANGED
package/lib/index.js
CHANGED
|
@@ -45,6 +45,7 @@ var round = require('./round.js');
|
|
|
45
45
|
var ajax = require('./ajax.js');
|
|
46
46
|
var calculateCursorPosition = require('./calculateCursorPosition.js');
|
|
47
47
|
var download = require('./download.js');
|
|
48
|
+
var loadScript = require('./loadScript.js');
|
|
48
49
|
var randomString = require('./randomString.js');
|
|
49
50
|
var strlen = require('./strlen.js');
|
|
50
51
|
var waitTime = require('./waitTime.js');
|
|
@@ -58,7 +59,7 @@ var findTreeSelect = require('./findTreeSelect.js');
|
|
|
58
59
|
var config = require('./utils/config.js');
|
|
59
60
|
var VERSION = require('./VERSION.js');
|
|
60
61
|
|
|
61
|
-
exports.version = "4.
|
|
62
|
+
exports.version = "4.19.0";
|
|
62
63
|
|
|
63
64
|
exports.isMobile = isMobile;
|
|
64
65
|
exports.isTelephone = isTelephone;
|
|
@@ -105,6 +106,7 @@ exports.round = round;
|
|
|
105
106
|
exports.ajax = ajax;
|
|
106
107
|
exports.calculateCursorPosition = calculateCursorPosition;
|
|
107
108
|
exports.download = download;
|
|
109
|
+
exports.loadScript = loadScript;
|
|
108
110
|
exports.randomString = randomString;
|
|
109
111
|
exports.strlen = strlen;
|
|
110
112
|
exports.waitTime = waitTime;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
|
|
5
|
+
function loadScript(src, options) {
|
|
6
|
+
return new Promise(function (resolve, reject) {
|
|
7
|
+
var head = document.head;
|
|
8
|
+
var script = document.createElement('script');
|
|
9
|
+
var _a = options || {}, attrs = _a.attrs, _b = _a.destroyOnError, destroyOnError = _b === void 0 ? true : _b, restOptions = tslib.__rest(_a, ["attrs", "destroyOnError"]);
|
|
10
|
+
var props = tslib.__assign(tslib.__assign({ async: true, type: 'text/javascript' }, restOptions), { src: src });
|
|
11
|
+
for (var key in props) {
|
|
12
|
+
if (key === 'onload' || key === 'onerror') {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
script[key] = props[key];
|
|
16
|
+
}
|
|
17
|
+
if (typeof attrs === 'object') {
|
|
18
|
+
Object.keys(attrs).forEach(function (key) {
|
|
19
|
+
script.setAttribute(key, attrs[key]);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
script.onload = function (ev) {
|
|
23
|
+
var _a;
|
|
24
|
+
this.onerror = this.onload = null;
|
|
25
|
+
(_a = props.onload) === null || _a === void 0 ? void 0 : _a.call(this, ev);
|
|
26
|
+
resolve(script);
|
|
27
|
+
};
|
|
28
|
+
script.onerror = function (ev) {
|
|
29
|
+
var _a;
|
|
30
|
+
this.onerror = this.onload = null;
|
|
31
|
+
(_a = props.onerror) === null || _a === void 0 ? void 0 : _a.call(this, ev);
|
|
32
|
+
if (destroyOnError) {
|
|
33
|
+
head.removeChild(script);
|
|
34
|
+
}
|
|
35
|
+
reject(new URIError('Failed to load ' + this.src));
|
|
36
|
+
};
|
|
37
|
+
head.appendChild(script);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = loadScript;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "util-helpers",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.19.0",
|
|
4
4
|
"description": "一个基于业务场景的工具方法库",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -11,10 +11,6 @@
|
|
|
11
11
|
"test": "jest --verbose",
|
|
12
12
|
"test:coverage": "jest --coverage",
|
|
13
13
|
"test:coverage:local": "cross-env COVERAGE_LOCAL=1 jest --coverage && open ./coverage/lcov-report/index.html",
|
|
14
|
-
"test:math": "jest --verbose test/math",
|
|
15
|
-
"test:type": "jest --verbose test/type",
|
|
16
|
-
"test:validator": "jest --verbose test/validator",
|
|
17
|
-
"test:processor": "jest --verbose test/processor",
|
|
18
14
|
"build": "npm run build:module && npm run build:dist && npm run build:types",
|
|
19
15
|
"build:module": "rm -rf esm && rm -rf lib && rollup -c rollup.module.config.mjs",
|
|
20
16
|
"build:dist": "rm -rf dist && rollup -c rollup.umd.config.mjs",
|
|
@@ -97,6 +93,6 @@
|
|
|
97
93
|
},
|
|
98
94
|
"dependencies": {
|
|
99
95
|
"tslib": "^2.5.0",
|
|
100
|
-
"ut2": "^1.0.
|
|
96
|
+
"ut2": "^1.0.2"
|
|
101
97
|
}
|
|
102
98
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -100,6 +100,7 @@ export { default as round } from './round';
|
|
|
100
100
|
export { default as ajax } from './ajax';
|
|
101
101
|
export { default as calculateCursorPosition } from './calculateCursorPosition';
|
|
102
102
|
export { default as download } from './download';
|
|
103
|
+
export { default as loadScript } from './loadScript';
|
|
103
104
|
export { default as randomString } from './randomString';
|
|
104
105
|
export { default as strlen } from './strlen';
|
|
105
106
|
export { default as waitTime } from './waitTime';
|
package/types/isPromiseLike.d.ts
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
type ScriptAttribute = Pick<HTMLScriptElement, 'async' | 'crossOrigin' | 'defer' | 'integrity' | 'noModule' | 'referrerPolicy' | 'text' | 'type' | 'onload' | 'onerror' | 'id' | 'className'> & {
|
|
2
|
+
attrs: Record<string, string>;
|
|
3
|
+
destroyOnError: boolean;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* 加载 js 文件。
|
|
7
|
+
*
|
|
8
|
+
* 默认属性 `async=true` `type=text/javascript` 。如果加载失败,默认会删除该 `script` 的 `dom` 标签。
|
|
9
|
+
*
|
|
10
|
+
* <em style="font-weight: bold;">注意:该方法仅适用于浏览器端。</em>
|
|
11
|
+
*
|
|
12
|
+
* @static
|
|
13
|
+
* @alias module:Other.loadScript
|
|
14
|
+
* @since 4.19.0
|
|
15
|
+
* @param {string} src js 地址。
|
|
16
|
+
* @param {Object} [options] script 标签属性。比如 `async` `defer` `onload` `onerror` `id` 等。如果需要设置属性,可以使用 `attrs` 。如果加载失败或错误不想删除,可以使用 `destroyOnError=false` 。
|
|
17
|
+
* @return {Promise<HTMLScriptElement>} 异步返回 script 元素。
|
|
18
|
+
* @example
|
|
19
|
+
*
|
|
20
|
+
* loadScript('some.js').then(script=>{
|
|
21
|
+
* // do something
|
|
22
|
+
* })
|
|
23
|
+
*
|
|
24
|
+
* loadScript('some.js', { id: 'xxx', async: false, attrs: { foo: 'bar' } }).then(script=>{
|
|
25
|
+
* // do something
|
|
26
|
+
* })
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
declare function loadScript(src: string, options?: Partial<ScriptAttribute>): Promise<HTMLScriptElement>;
|
|
30
|
+
export default loadScript;
|