a2bei4-utils 1.0.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.
Files changed (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/a2bei4.utils.cjs.js +1112 -0
  4. package/dist/a2bei4.utils.cjs.js.map +1 -0
  5. package/dist/a2bei4.utils.cjs.min.js +2 -0
  6. package/dist/a2bei4.utils.cjs.min.js.map +1 -0
  7. package/dist/a2bei4.utils.esm.js +1070 -0
  8. package/dist/a2bei4.utils.esm.js.map +1 -0
  9. package/dist/a2bei4.utils.esm.min.js +2 -0
  10. package/dist/a2bei4.utils.esm.min.js.map +1 -0
  11. package/dist/a2bei4.utils.umd.js +1118 -0
  12. package/dist/a2bei4.utils.umd.js.map +1 -0
  13. package/dist/a2bei4.utils.umd.min.js +2 -0
  14. package/dist/a2bei4.utils.umd.min.js.map +1 -0
  15. package/dist/arr.cjs +34 -0
  16. package/dist/arr.cjs.map +1 -0
  17. package/dist/arr.js +31 -0
  18. package/dist/arr.js.map +1 -0
  19. package/dist/browser.cjs +60 -0
  20. package/dist/browser.cjs.map +1 -0
  21. package/dist/browser.js +56 -0
  22. package/dist/browser.js.map +1 -0
  23. package/dist/common.cjs +391 -0
  24. package/dist/common.cjs.map +1 -0
  25. package/dist/common.js +373 -0
  26. package/dist/common.js.map +1 -0
  27. package/dist/date.cjs +195 -0
  28. package/dist/date.cjs.map +1 -0
  29. package/dist/date.js +188 -0
  30. package/dist/date.js.map +1 -0
  31. package/dist/download.cjs +70 -0
  32. package/dist/download.cjs.map +1 -0
  33. package/dist/download.js +64 -0
  34. package/dist/download.js.map +1 -0
  35. package/dist/evt.cjs +155 -0
  36. package/dist/evt.cjs.map +1 -0
  37. package/dist/evt.js +152 -0
  38. package/dist/evt.js.map +1 -0
  39. package/dist/id.cjs +75 -0
  40. package/dist/id.cjs.map +1 -0
  41. package/dist/id.js +72 -0
  42. package/dist/id.js.map +1 -0
  43. package/dist/timer.cjs +57 -0
  44. package/dist/timer.cjs.map +1 -0
  45. package/dist/timer.js +55 -0
  46. package/dist/timer.js.map +1 -0
  47. package/dist/tree.cjs +99 -0
  48. package/dist/tree.cjs.map +1 -0
  49. package/dist/tree.js +95 -0
  50. package/dist/tree.js.map +1 -0
  51. package/package.json +146 -0
  52. package/readme.txt +18 -0
  53. package/types/arr.d.ts +18 -0
  54. package/types/browser.d.ts +51 -0
  55. package/types/common.d.ts +170 -0
  56. package/types/date.d.ts +77 -0
  57. package/types/download.d.ts +39 -0
  58. package/types/evt.d.ts +52 -0
  59. package/types/id.d.ts +39 -0
  60. package/types/index.d.ts +499 -0
  61. package/types/timer.d.ts +32 -0
  62. package/types/tree.d.ts +30 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * 通过动态创建 `<a>` 标签触发浏览器下载。
3
+ *
4
+ * @param {string} url - 任意可下载地址(同源或允许跨域)
5
+ * @param {string} [fileName] - 保存到本地的文件名;不传时使用时间戳
6
+ */
7
+ declare function downloadByUrl(url: string, fileName?: string): void;
8
+ /**
9
+ * 把 Blob 转成临时 URL 并触发下载,下载完成后立即释放内存。
10
+ *
11
+ * @param {Blob} blob - 待下载的 Blob(含 File)
12
+ * @param {string} [fileName] - 保存到本地的文件名
13
+ */
14
+ declare function downloadByBlob(blob: Blob, fileName?: string): void;
15
+ /**
16
+ * 将任意数据包装成 Blob 并下载。
17
+ *
18
+ * @param {string | ArrayBufferView | ArrayBuffer | Blob} data - 要写入文件的数据
19
+ * @param {string} [fileName] - 保存到本地的文件名
20
+ * @param {string} [mimeType] - MIME 类型;默认 `application/octet-stream`
21
+ */
22
+ declare function downloadByData(data: string | ArrayBufferView | ArrayBuffer | Blob, fileName?: string, mimeType?: string): void;
23
+ /**
24
+ * 快捷下载 Excel 文件(MIME 已固定)。
25
+ *
26
+ * @param {string | ArrayBufferView | ArrayBuffer | Blob} data - Excel 二进制或字符串内容
27
+ * @param {string} [fileName] - 保存到本地的文件名
28
+ */
29
+ declare function downloadExcel(data: string | ArrayBufferView | ArrayBuffer | Blob, fileName?: string): void;
30
+ /**
31
+ * 快捷下载 JSON 文件(MIME 已固定)。
32
+ * 若传入非字符串数据,会自行 `JSON.stringify`。
33
+ *
34
+ * @param {any} data - 要序列化的 JSON 数据
35
+ * @param {string} [fileName] - 保存到本地的文件名
36
+ */
37
+ declare function downloadJSON(data: any, fileName?: string): void;
38
+
39
+ export { downloadByBlob, downloadByData, downloadByUrl, downloadExcel, downloadJSON };
package/types/evt.d.ts ADDED
@@ -0,0 +1,52 @@
1
+ /**
2
+ * 简单、高性能的通用事件总线。
3
+ * - 支持命名空间事件
4
+ * - 支持一次性监听器
5
+ * - 返回唯一 flag,用于精确卸载
6
+ * - emit 时可选自定义 this 指向
7
+ */
8
+ declare class MyEvent {
9
+ evtPool: Map<any, any>;
10
+ /**
11
+ * 注册事件监听器。
12
+ * @param {string} name - 事件名
13
+ * @param {Function} fn - 回调函数
14
+ * @returns {string} flag - 唯一标识,用于 off
15
+ */
16
+ on(name: string, fn: Function): string;
17
+ /**
18
+ * 注册一次性监听器,触发后自动移除。
19
+ * @param {string} name - 事件名
20
+ * @param {Function} fn - 回调函数
21
+ * @returns {string} flag - 唯一标识
22
+ */
23
+ once(name: string, fn: Function): string;
24
+ /**
25
+ * 移除指定事件监听器。
26
+ * @param {string} name - 事件名
27
+ * @param {Function|string} fnOrFlag - 回调函数或 flag
28
+ */
29
+ off(name: string, fnOrFlag: Function | string): void;
30
+ /**
31
+ * 触发事件(同步执行)。
32
+ * @param {string} name - 事件名
33
+ * @param {*} [data] - 任意载荷
34
+ * @param {*} [fnThis] - 回调内部 this 指向,默认 undefined
35
+ */
36
+ emit(name: string, data?: any, fnThis?: any): void;
37
+ }
38
+ declare namespace MyEvent_CrossPagePlugin {
39
+ /**
40
+ * 为指定 MyEvent 实例安装跨页插件。
41
+ * @param {MyEvent} bus - 事件总线实例
42
+ * @param {Options} [opts] - 配置项
43
+ */
44
+ function install(bus: MyEvent, opts?: Options): void;
45
+ /**
46
+ * 卸载插件,恢复原始 emit 并停止监听。
47
+ * @param {MyEvent} bus - 事件总线实例
48
+ */
49
+ function uninstall(bus: MyEvent): void;
50
+ }
51
+
52
+ export { MyEvent, MyEvent_CrossPagePlugin };
package/types/id.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ /**
2
+ * 生成 RFC4122 版本 4 的 GUID/UUID。
3
+ * 收集来源:《基于mvc的javascript web富应用开发》 书中介绍是Robert Kieffer写的,还留了网址 http://goo.gl/0b0hu ,但实际访问不了。
4
+ * 格式:`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`
5
+ *
6
+ * @returns {string} 36 位大写 GUID
7
+ *
8
+ * @example
9
+ * // A2E0F340-6C3B-4D7F-B8C1-1E4F6A8B9C0D
10
+ * console.log(getGUID())
11
+ */
12
+ declare function getGUID(): string;
13
+ /**
14
+ * 分布式短 ID 生成器。
15
+ * 格式:`${timestamp}${flag}${serial}`,其中:
16
+ * - timestamp:毫秒级时间戳
17
+ * - flag:客户端标识串(自定义)
18
+ * - serial:同一毫秒内的序号,左补零到固定长度
19
+ */
20
+ declare class MyId {
21
+ /**
22
+ * @param {object} [option]
23
+ * @param {string} [option.flag] - 客户端标识,默认空串
24
+ * @param {number} [option.len=5] - 序号位长度(位数),安全范围 ≥0
25
+ */
26
+ constructor(option?: {
27
+ flag?: string | undefined;
28
+ len?: number | undefined;
29
+ });
30
+ /**
31
+ * 生成下一个全局唯一字符串 ID。
32
+ * 同一毫秒序号自动递增;序号溢出时会在控制台警告。
33
+ * @returns {string}
34
+ */
35
+ nextId(): string;
36
+ #private;
37
+ }
38
+
39
+ export { MyId, getGUID };