@ybgnb/utils 0.0.9 → 0.1.1
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/dist/common/biz-result.d.ts.map +1 -0
- package/dist/common/error.d.ts +15 -0
- package/dist/common/error.d.ts.map +1 -0
- package/dist/index.d.ts +22 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +333 -8
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +2 -0
- package/dist/index.umd.cjs.map +1 -0
- package/dist/types/github.d.ts +10 -0
- package/dist/types/github.d.ts.map +1 -0
- package/dist/types/helpers.d.ts +49 -0
- package/dist/types/helpers.d.ts.map +1 -0
- package/dist/types/network.d.ts +16 -0
- package/dist/types/network.d.ts.map +1 -0
- package/dist/types/physical.d.ts +17 -0
- package/dist/types/physical.d.ts.map +1 -0
- package/dist/types/utl.d.ts +8 -0
- package/dist/types/utl.d.ts.map +1 -0
- package/dist/utils/array.d.ts +13 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/dom/color.d.ts +33 -0
- package/dist/utils/dom/color.d.ts.map +1 -0
- package/dist/utils/dom/css.d.ts +5 -0
- package/dist/utils/dom/css.d.ts.map +1 -0
- package/dist/utils/dom/img.d.ts +15 -0
- package/dist/utils/dom/img.d.ts.map +1 -0
- package/dist/utils/{page-utils.d.ts → dom/page.d.ts} +2 -1
- package/dist/utils/dom/page.d.ts.map +1 -0
- package/dist/utils/dom/scroll.d.ts +14 -0
- package/dist/utils/dom/scroll.d.ts.map +1 -0
- package/dist/utils/error.d.ts +22 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/function.d.ts +22 -0
- package/dist/utils/function.d.ts.map +1 -0
- package/dist/utils/github.d.ts +7 -0
- package/dist/utils/github.d.ts.map +1 -0
- package/dist/utils/id.d.ts +5 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/network.d.ts +12 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/{random-utils.d.ts → random.d.ts} +1 -1
- package/dist/utils/random.d.ts.map +1 -0
- package/dist/utils/sleep.d.ts +14 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/time.d.ts +11 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/url.d.ts +30 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/package.json +24 -13
- package/dist/types/error.d.ts +0 -15
- package/dist/types/error.d.ts.map +0 -1
- package/dist/types/error.js +0 -19
- package/dist/types/error.js.map +0 -1
- package/dist/types/extended-type.d.ts +0 -7
- package/dist/types/extended-type.d.ts.map +0 -1
- package/dist/types/extended-type.js +0 -3
- package/dist/types/extended-type.js.map +0 -1
- package/dist/utils/base-utils.d.ts +0 -44
- package/dist/utils/base-utils.d.ts.map +0 -1
- package/dist/utils/base-utils.js +0 -75
- package/dist/utils/base-utils.js.map +0 -1
- package/dist/utils/biz-result.d.ts.map +0 -1
- package/dist/utils/biz-result.js +0 -42
- package/dist/utils/biz-result.js.map +0 -1
- package/dist/utils/function-utils.d.ts +0 -7
- package/dist/utils/function-utils.d.ts.map +0 -1
- package/dist/utils/function-utils.js +0 -19
- package/dist/utils/function-utils.js.map +0 -1
- package/dist/utils/network-utils.d.ts +0 -24
- package/dist/utils/network-utils.d.ts.map +0 -1
- package/dist/utils/network-utils.js +0 -48
- package/dist/utils/network-utils.js.map +0 -1
- package/dist/utils/page-utils.d.ts.map +0 -1
- package/dist/utils/page-utils.js +0 -36
- package/dist/utils/page-utils.js.map +0 -1
- package/dist/utils/random-utils.d.ts.map +0 -1
- package/dist/utils/random-utils.js +0 -53
- package/dist/utils/random-utils.js.map +0 -1
- /package/dist/{utils → common}/biz-result.d.ts +0 -0
package/dist/utils/biz-result.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { BaseUtils } from "./base-utils.js";
|
|
2
|
-
import { CommonError } from "../types/error.js";
|
|
3
|
-
/**
|
|
4
|
-
* 业务执行结果
|
|
5
|
-
*/
|
|
6
|
-
export class BizResult {
|
|
7
|
-
constructor(success, msg, data) {
|
|
8
|
-
this.success = success;
|
|
9
|
-
this.msg = msg;
|
|
10
|
-
this.data = data;
|
|
11
|
-
}
|
|
12
|
-
static createSuccess(data) {
|
|
13
|
-
return new BizResult(true, '操作成功', data);
|
|
14
|
-
}
|
|
15
|
-
static createFail(msg = '操作失败', data) {
|
|
16
|
-
return new BizResult(false, msg, data);
|
|
17
|
-
}
|
|
18
|
-
static createError(e) {
|
|
19
|
-
return new BizResult(false, BaseUtils.getErrorMessage(e));
|
|
20
|
-
}
|
|
21
|
-
async toPromise() {
|
|
22
|
-
if (this.success) {
|
|
23
|
-
return this.data;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
throw new CommonError(this.msg);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* 执行业务(自动包裹BuResult)
|
|
32
|
-
* @param run 执行方法
|
|
33
|
-
*/
|
|
34
|
-
export const execBiz = async (run) => {
|
|
35
|
-
try {
|
|
36
|
-
return BizResult.createSuccess(await run());
|
|
37
|
-
}
|
|
38
|
-
catch (e) {
|
|
39
|
-
return BizResult.createError(e);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=biz-result.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"biz-result.js","sourceRoot":"","sources":["../../src/utils/biz-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,SAAS;IAKpB,YAAY,OAAgB,EAAE,GAAW,EAAE,IAAQ;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,aAAa,CAAI,IAAO;QAC7B,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAAI,MAAc,MAAM,EAAE,IAAQ;QACjD,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,WAAW,CAAI,CAAU;QAC9B,OAAO,IAAI,SAAS,CAAI,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC;IAOD,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,IAAS,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAK,GAAqB,EAAyB,EAAE;IAC/E,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,aAAa,CAAI,MAAM,GAAG,EAAE,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"function-utils.d.ts","sourceRoot":"","sources":["../../src/utils/function-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAelF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 随机运行参数
|
|
3
|
-
* @param fns
|
|
4
|
-
* @param maxCount 最多执行次数(1 ~ fns.length)
|
|
5
|
-
*/
|
|
6
|
-
export function runRandomFunctions(fns, maxCount) {
|
|
7
|
-
maxCount = maxCount ?? fns.length;
|
|
8
|
-
const count = Math.floor(Math.random() * maxCount) + 1;
|
|
9
|
-
const shuffled = [...fns];
|
|
10
|
-
for (let i = shuffled.length - 1; i > 0; i--) {
|
|
11
|
-
const j = Math.floor(Math.random() * (i + 1));
|
|
12
|
-
[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
|
|
13
|
-
}
|
|
14
|
-
const selected = shuffled.slice(0, count);
|
|
15
|
-
for (const fn of selected) {
|
|
16
|
-
fn();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=function-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"function-utils.js","sourceRoot":"","sources":["../../src/utils/function-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAsB,EAAE,QAAiB;IAC1E,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAA;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAEtD,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC5C;QAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAEzC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,EAAE,EAAE,CAAA;IACN,CAAC;AACH,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
interface NetworkInformation extends EventTarget {
|
|
2
|
-
downlink: number;
|
|
3
|
-
rtt: number;
|
|
4
|
-
effectiveType: 'slow-2g' | '2g' | '3g' | '4g';
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* 网络状态信息
|
|
8
|
-
* - 'offline': 无网络
|
|
9
|
-
* - 'online': 在线但不支持 NetworkInformation API
|
|
10
|
-
* - NetworkInformation: 含详细网络信息
|
|
11
|
-
*/
|
|
12
|
-
export type NetworkInfo = 'offline' | Omit<NetworkInformation, keyof EventTarget> | 'online';
|
|
13
|
-
/**
|
|
14
|
-
* 获取网络信息
|
|
15
|
-
*/
|
|
16
|
-
export declare function getNetworkInfo(): NetworkInfo;
|
|
17
|
-
/**
|
|
18
|
-
* 监听网络状态变化
|
|
19
|
-
* @param listener 监听器
|
|
20
|
-
* @returns 成功监听时返回解绑函数
|
|
21
|
-
*/
|
|
22
|
-
export declare function onNetworkChange(listener: (info: NetworkInfo) => void): () => void;
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=network-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-utils.d.ts","sourceRoot":"","sources":["../../src/utils/network-utils.ts"],"names":[],"mappings":"AAAA,UAAU,kBAAmB,SAAQ,WAAW;IAE9C,QAAQ,EAAE,MAAM,CAAC;IAEjB,GAAG,EAAE,MAAM,CAAC;IAEZ,aAAa,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,WAAW,CAAC,GAAG,QAAQ,CAAA;AAM5F;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAiB5C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,cAoBpE"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
function isConnection(obj) {
|
|
2
|
-
return obj !== null && typeof obj === 'object' && 'downlink' in obj && 'rtt' in obj && 'effectiveType' in obj;
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* 获取网络信息
|
|
6
|
-
*/
|
|
7
|
-
export function getNetworkInfo() {
|
|
8
|
-
if (!navigator.onLine) {
|
|
9
|
-
return 'offline';
|
|
10
|
-
}
|
|
11
|
-
if ('connection' in navigator && isConnection(navigator.connection)) {
|
|
12
|
-
// 现代 Web API 直接获取网络连接的信息
|
|
13
|
-
const connection = navigator.connection;
|
|
14
|
-
return {
|
|
15
|
-
downlink: connection.downlink,
|
|
16
|
-
rtt: connection.rtt,
|
|
17
|
-
effectiveType: connection.effectiveType
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
return 'online';
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 监听网络状态变化
|
|
26
|
-
* @param listener 监听器
|
|
27
|
-
* @returns 成功监听时返回解绑函数
|
|
28
|
-
*/
|
|
29
|
-
export function onNetworkChange(listener) {
|
|
30
|
-
const handleChange = () => {
|
|
31
|
-
listener(getNetworkInfo());
|
|
32
|
-
};
|
|
33
|
-
if ('connection' in navigator && isConnection(navigator.connection)) {
|
|
34
|
-
// 现代 Web API
|
|
35
|
-
const connection = navigator.connection;
|
|
36
|
-
connection.addEventListener('change', handleChange);
|
|
37
|
-
return () => connection.removeEventListener('change', handleChange);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
window.addEventListener('online', handleChange);
|
|
41
|
-
window.addEventListener('offline', handleChange);
|
|
42
|
-
return () => {
|
|
43
|
-
window.removeEventListener('online', handleChange);
|
|
44
|
-
window.removeEventListener('offline', handleChange);
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=network-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-utils.js","sourceRoot":"","sources":["../../src/utils/network-utils.ts"],"names":[],"mappings":"AAiBA,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,UAAU,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,eAAe,IAAI,GAAG,CAAC;AAChH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,yBAAyB;QACzB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,aAAa,EAAE,UAAU,CAAC,aAAa;SACxC,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAA;IACjB,CAAC;AAEH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAqC;IAEnE,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,aAAa;QACb,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACnD,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QAEN,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC/C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAChD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACnD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page-utils.d.ts","sourceRoot":"","sources":["../../src/utils/page-utils.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,wBAAwB;IACvC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,wBAAwB,uBAiCpE"}
|
package/dist/utils/page-utils.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 监听页面可见性变化(兼容旧的IE/Chrome)
|
|
3
|
-
* @param listener 监听器
|
|
4
|
-
* @returns 成功监听时返回解绑函数
|
|
5
|
-
*/
|
|
6
|
-
export function onVisibilityChange(listener) {
|
|
7
|
-
let hiddenPropName = undefined, hiddenEventName = undefined;
|
|
8
|
-
if (typeof document.hidden !== "undefined") {
|
|
9
|
-
// 现代 Web API
|
|
10
|
-
hiddenPropName = 'hidden';
|
|
11
|
-
hiddenEventName = 'visibilitychange';
|
|
12
|
-
}
|
|
13
|
-
else if ('msHidden' in document && typeof document.msHidden !== "undefined") {
|
|
14
|
-
// 旧 IE
|
|
15
|
-
hiddenPropName = 'msHidden';
|
|
16
|
-
hiddenEventName = 'msvisibilitychange';
|
|
17
|
-
}
|
|
18
|
-
else if ('webkitHidden' in document && typeof document.webkitHidden !== "undefined") {
|
|
19
|
-
// 旧 Chrome
|
|
20
|
-
hiddenPropName = 'webkitHidden';
|
|
21
|
-
hiddenEventName = 'webkitvisibilitychange';
|
|
22
|
-
}
|
|
23
|
-
if (!hiddenPropName || !hiddenEventName) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
const handler = () => {
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
28
|
-
// @ts-ignore
|
|
29
|
-
listener(document[hiddenPropName]);
|
|
30
|
-
};
|
|
31
|
-
document.addEventListener(hiddenEventName, handler);
|
|
32
|
-
return () => {
|
|
33
|
-
document.removeEventListener(hiddenEventName, handler);
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=page-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page-utils.js","sourceRoot":"","sources":["../../src/utils/page-utils.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAkC;IACnE,IAAI,cAAc,GAAuB,SAAS,EAChD,eAAe,GAAuB,SAAS,CAAC;IAElD,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3C,aAAa;QACb,cAAc,GAAG,QAAQ,CAAC;QAC1B,eAAe,GAAG,kBAAkB,CAAA;IACtC,CAAC;SAAM,IAAI,UAAU,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC9E,OAAO;QACP,cAAc,GAAG,UAAU,CAAC;QAC5B,eAAe,GAAG,oBAAoB,CAAA;IACxC,CAAC;SAAM,IAAI,cAAc,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;QACtF,WAAW;QACX,cAAc,GAAG,cAAc,CAAC;QAChC,eAAe,GAAG,wBAAwB,CAAA;IAC5C,CAAC;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,6DAA6D;QAC7D,aAAa;QACb,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAEpD,OAAO,GAAG,EAAE;QACV,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random-utils.d.ts","sourceRoot":"","sources":["../../src/utils/random-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAOxC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAOrE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAExC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 数组洗牌
|
|
3
|
-
*/
|
|
4
|
-
export function shuffle(arr) {
|
|
5
|
-
const clone = arr.slice();
|
|
6
|
-
for (let i = clone.length - 1; i > 0; i--) {
|
|
7
|
-
const j = Math.floor(Math.random() * (i + 1));
|
|
8
|
-
[clone[i], clone[j]] = [clone[j], clone[i]];
|
|
9
|
-
}
|
|
10
|
-
return clone;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* 获取 [min, max] 的随机整数
|
|
14
|
-
*/
|
|
15
|
-
export function randomInt(min, max) {
|
|
16
|
-
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* 获取 [min, max) 的随机浮点数
|
|
20
|
-
*/
|
|
21
|
-
export function randomFloat(min, max) {
|
|
22
|
-
return Math.random() * (max - min) + min;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 从数组中随机取若干项,不可重复
|
|
26
|
-
*/
|
|
27
|
-
export function sample(arr, count) {
|
|
28
|
-
return shuffle(arr).slice(0, count);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* 从数组中随机取若干项,可重复
|
|
32
|
-
*/
|
|
33
|
-
export function sampleWithReplacement(arr, count) {
|
|
34
|
-
const result = [];
|
|
35
|
-
for (let i = 0; i < count; i++) {
|
|
36
|
-
const index = randomInt(0, arr.length - 1);
|
|
37
|
-
result.push(arr[index]);
|
|
38
|
-
}
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* 从数组中获取随机项
|
|
43
|
-
*/
|
|
44
|
-
export function sampleOne(arr) {
|
|
45
|
-
return arr[randomInt(0, arr.length - 1)];
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 获取 1~n 的随机数
|
|
49
|
-
*/
|
|
50
|
-
export function random1ToN(n) {
|
|
51
|
-
return randomInt(1, n);
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=random-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random-utils.js","sourceRoot":"","sources":["../../src/utils/random-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,GAAQ;IACjC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,GAAW;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,GAAW;IAClD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAI,GAAQ,EAAE,KAAa;IAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAI,GAAQ,EAAE,KAAa;IAC9D,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAI,GAAQ;IACnC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC"}
|
|
File without changes
|