@anjianshi/utils 2.0.2 → 2.0.3

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/lang/string.d.ts CHANGED
@@ -23,3 +23,7 @@ export declare function safeParseFloat(value: string | number, fallback: number)
23
23
  * dp: 保留几位小数
24
24
  */
25
25
  export declare function readableSize(bytes: number, si?: boolean, dp?: number): string;
26
+ /**
27
+ * 解析 JSON,失败时不抛出异常,而是返回 undefined
28
+ */
29
+ export declare function safeParseJSON<T>(json: string): T | undefined;
package/lang/string.js CHANGED
@@ -78,3 +78,14 @@ export function readableSize(bytes, si = false, dp = 1) {
78
78
  } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);
79
79
  return `${bytes.toFixed(dp)} ${units[u]}`;
80
80
  }
81
+ /**
82
+ * 解析 JSON,失败时不抛出异常,而是返回 undefined
83
+ */
84
+ export function safeParseJSON(json) {
85
+ try {
86
+ return JSON.parse(json);
87
+ }
88
+ catch (e) {
89
+ return undefined;
90
+ }
91
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anjianshi/utils",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Common JavaScript Utils",
5
5
  "homepage": "https://github.com/anjianshi/js-packages/utils",
6
6
  "bugs": {
@@ -29,9 +29,9 @@
29
29
  "typeorm": "^0.3.20",
30
30
  "vconsole": "^3.15.1",
31
31
  "typescript": "^5.4.4",
32
- "@anjianshi/presets-typescript": "3.0.0",
33
- "@anjianshi/presets-prettier": "3.0.0",
34
32
  "@anjianshi/presets-eslint-typescript": "4.0.1",
33
+ "@anjianshi/presets-prettier": "3.0.0",
34
+ "@anjianshi/presets-typescript": "3.0.0",
35
35
  "@anjianshi/presets-eslint-node": "4.0.1"
36
36
  },
37
37
  "eslintIgnore": [],
package/url.js CHANGED
@@ -10,7 +10,7 @@
10
10
  import isPlainObject from 'lodash/isPlainObject.js';
11
11
  function parseQuery(url, options) {
12
12
  const { array = false, loose = false, decode = true } = options ?? {};
13
- // 正常状态下,将仅剩 a=1&b=1(即不会再有 ? 和 #);loose 模型下,可能为 a=1&b=2#c=3?d=4
13
+ // 正常状态下,将仅剩 a=1&b=1(即不会再有 ? 和 #);loose 模式下,可能为 a=1&b=2#c=3?d=4
14
14
  const queryString = (loose ? /(\?|#)(.+)/ : /(\?)(.+?)(#|$)/).exec(url)?.[2] ?? '';
15
15
  if (!queryString)
16
16
  return {};