@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.
Files changed (80) hide show
  1. package/dist/common/biz-result.d.ts.map +1 -0
  2. package/dist/common/error.d.ts +15 -0
  3. package/dist/common/error.d.ts.map +1 -0
  4. package/dist/index.d.ts +22 -8
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +333 -8
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.umd.cjs +2 -0
  9. package/dist/index.umd.cjs.map +1 -0
  10. package/dist/types/github.d.ts +10 -0
  11. package/dist/types/github.d.ts.map +1 -0
  12. package/dist/types/helpers.d.ts +49 -0
  13. package/dist/types/helpers.d.ts.map +1 -0
  14. package/dist/types/network.d.ts +16 -0
  15. package/dist/types/network.d.ts.map +1 -0
  16. package/dist/types/physical.d.ts +17 -0
  17. package/dist/types/physical.d.ts.map +1 -0
  18. package/dist/types/utl.d.ts +8 -0
  19. package/dist/types/utl.d.ts.map +1 -0
  20. package/dist/utils/array.d.ts +13 -0
  21. package/dist/utils/array.d.ts.map +1 -0
  22. package/dist/utils/dom/color.d.ts +33 -0
  23. package/dist/utils/dom/color.d.ts.map +1 -0
  24. package/dist/utils/dom/css.d.ts +5 -0
  25. package/dist/utils/dom/css.d.ts.map +1 -0
  26. package/dist/utils/dom/img.d.ts +15 -0
  27. package/dist/utils/dom/img.d.ts.map +1 -0
  28. package/dist/utils/{page-utils.d.ts → dom/page.d.ts} +2 -1
  29. package/dist/utils/dom/page.d.ts.map +1 -0
  30. package/dist/utils/dom/scroll.d.ts +14 -0
  31. package/dist/utils/dom/scroll.d.ts.map +1 -0
  32. package/dist/utils/error.d.ts +22 -0
  33. package/dist/utils/error.d.ts.map +1 -0
  34. package/dist/utils/function.d.ts +22 -0
  35. package/dist/utils/function.d.ts.map +1 -0
  36. package/dist/utils/github.d.ts +7 -0
  37. package/dist/utils/github.d.ts.map +1 -0
  38. package/dist/utils/id.d.ts +5 -0
  39. package/dist/utils/id.d.ts.map +1 -0
  40. package/dist/utils/network.d.ts +12 -0
  41. package/dist/utils/network.d.ts.map +1 -0
  42. package/dist/utils/{random-utils.d.ts → random.d.ts} +1 -1
  43. package/dist/utils/random.d.ts.map +1 -0
  44. package/dist/utils/sleep.d.ts +14 -0
  45. package/dist/utils/sleep.d.ts.map +1 -0
  46. package/dist/utils/time.d.ts +11 -0
  47. package/dist/utils/time.d.ts.map +1 -0
  48. package/dist/utils/url.d.ts +30 -0
  49. package/dist/utils/url.d.ts.map +1 -0
  50. package/package.json +24 -13
  51. package/dist/types/error.d.ts +0 -15
  52. package/dist/types/error.d.ts.map +0 -1
  53. package/dist/types/error.js +0 -19
  54. package/dist/types/error.js.map +0 -1
  55. package/dist/types/extended-type.d.ts +0 -7
  56. package/dist/types/extended-type.d.ts.map +0 -1
  57. package/dist/types/extended-type.js +0 -3
  58. package/dist/types/extended-type.js.map +0 -1
  59. package/dist/utils/base-utils.d.ts +0 -44
  60. package/dist/utils/base-utils.d.ts.map +0 -1
  61. package/dist/utils/base-utils.js +0 -75
  62. package/dist/utils/base-utils.js.map +0 -1
  63. package/dist/utils/biz-result.d.ts.map +0 -1
  64. package/dist/utils/biz-result.js +0 -42
  65. package/dist/utils/biz-result.js.map +0 -1
  66. package/dist/utils/function-utils.d.ts +0 -7
  67. package/dist/utils/function-utils.d.ts.map +0 -1
  68. package/dist/utils/function-utils.js +0 -19
  69. package/dist/utils/function-utils.js.map +0 -1
  70. package/dist/utils/network-utils.d.ts +0 -24
  71. package/dist/utils/network-utils.d.ts.map +0 -1
  72. package/dist/utils/network-utils.js +0 -48
  73. package/dist/utils/network-utils.js.map +0 -1
  74. package/dist/utils/page-utils.d.ts.map +0 -1
  75. package/dist/utils/page-utils.js +0 -36
  76. package/dist/utils/page-utils.js.map +0 -1
  77. package/dist/utils/random-utils.d.ts.map +0 -1
  78. package/dist/utils/random-utils.js +0 -53
  79. package/dist/utils/random-utils.js.map +0 -1
  80. /package/dist/{utils → common}/biz-result.d.ts +0 -0
@@ -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,7 +0,0 @@
1
- /**
2
- * 随机运行参数
3
- * @param fns
4
- * @param maxCount 最多执行次数(1 ~ fns.length)
5
- */
6
- export declare function runRandomFunctions(fns: Array<() => void>, maxCount?: number): void;
7
- //# sourceMappingURL=function-utils.d.ts.map
@@ -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"}
@@ -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