befly-shared 1.3.4 → 1.3.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "befly-shared",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "private": false,
5
5
  "description": "Befly 纯函数与纯常量共享包(不包含 Node/浏览器特定实现)",
6
6
  "license": "Apache-2.0",
@@ -24,5 +24,5 @@
24
24
  "engines": {
25
25
  "bun": ">=1.3.0"
26
26
  },
27
- "gitHead": "564115664323c9d73351945129aa7d57d440eb58"
27
+ "gitHead": "f97afb740dabb7d42dd1f9d6bae5ec4744359d1c"
28
28
  }
@@ -0,0 +1,61 @@
1
+ function toErrorArray(params: { error?: unknown; errors?: unknown[] }) {
2
+ if (params.errors && params.errors.length > 0) {
3
+ return params.errors;
4
+ }
5
+
6
+ if (typeof params.error === "undefined") {
7
+ return [];
8
+ }
9
+
10
+ return [params.error];
11
+ }
12
+
13
+ function getSingleErrorMsg(error: unknown) {
14
+ const anyError = error as any;
15
+ const msg = anyError?.data?.msg || anyError?.msg || anyError?.message;
16
+ if (!msg) {
17
+ return "";
18
+ }
19
+ return String(msg);
20
+ }
21
+
22
+ function getMergedErrorMsg(params: { errors: unknown[]; fallbackMsg: string; separator: string }) {
23
+ const messages: string[] = [];
24
+ const used = new Set<string>();
25
+
26
+ for (const item of params.errors) {
27
+ const msg = getSingleErrorMsg(item);
28
+ if (!msg) {
29
+ continue;
30
+ }
31
+ if (used.has(msg)) {
32
+ continue;
33
+ }
34
+
35
+ used.add(msg);
36
+ messages.push(msg);
37
+ }
38
+
39
+ if (messages.length === 0) {
40
+ return params.fallbackMsg;
41
+ }
42
+
43
+ return messages.join(params.separator);
44
+ }
45
+
46
+ export function notifyError(params: { error?: unknown; errors?: unknown[]; fallbackMsg?: string; silent?: boolean; separator?: string }) {
47
+ if (params.silent) {
48
+ return;
49
+ }
50
+
51
+ const errors = toErrorArray({ error: params.error, errors: params.errors });
52
+ const fallbackMsg = typeof params.fallbackMsg === "string" ? String(params.fallbackMsg) : "";
53
+ const separator = typeof params.separator === "string" && params.separator ? String(params.separator) : ";";
54
+
55
+ const msg = getMergedErrorMsg({ errors: errors, fallbackMsg: fallbackMsg, separator: separator });
56
+ if (!msg) {
57
+ return;
58
+ }
59
+
60
+ MessagePlugin.error(msg);
61
+ }