@planarcat/js-toolkit 1.5.2 → 1.5.4

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/README.md CHANGED
@@ -122,7 +122,7 @@ console.log(toFormattedNumberString(0, { zeroValue: '-' }));
122
122
  // 预处理函数
123
123
  console.log(
124
124
  toFormattedNumberString(0.1234, {
125
- preProcessor: num => num * 100,
125
+ preProcessor: (original, num) => num * 100,
126
126
  suffix: '%',
127
127
  })
128
128
  );
@@ -131,7 +131,7 @@ console.log(
131
131
  // 函数类型前缀
132
132
  console.log(
133
133
  toFormattedNumberString(123.456, {
134
- prefix: num => `$${Math.floor(num)}`,
134
+ prefix: (original, num, formatted) => `$${Math.floor(num)}`,
135
135
  })
136
136
  );
137
137
  // 输出: "$123123.456"
@@ -139,7 +139,7 @@ console.log(
139
139
  // 函数类型后缀
140
140
  console.log(
141
141
  toFormattedNumberString(123.456, {
142
- suffix: num => `/${num.toFixed(0)}`,
142
+ suffix: (original, num, formatted) => `/${num.toFixed(0)}`,
143
143
  })
144
144
  );
145
145
  // 输出: "123.456/123"
@@ -248,6 +248,25 @@ npm run test:coverage
248
248
 
249
249
  ## 更新日志
250
250
 
251
+ ### v1.5.3
252
+
253
+ - ✨ 增强了 `toFormattedNumberString` 函数,为 `preProcessor`、`prefix` 和 `suffix` 函数更新了参数顺序
254
+ - ✨ `preProcessor` 现在接收两个参数:原始对象和转化后的 number
255
+ - ✨ `prefix` 如果是函数,现在接收三个参数:原始对象、转化后的 number、格式化后的字符串
256
+ - ✨ `suffix` 如果是函数,现在接收三个参数:原始对象、转化后的 number、格式化后的字符串
257
+ - ✨ 增强了测试用例,验证新功能
258
+ - ✨ 更新了文档,明确说明每个函数参数的用途
259
+
260
+ ### v1.5.2
261
+
262
+ - ✨ 更新了函数返回值类型说明,明确区分数组和非数组输入的返回值
263
+ - ✨ 生成了最新的 API 文档
264
+
265
+ ### v1.5.1
266
+
267
+ - ✨ 更新了 README 文档,修复了参数名称
268
+ - ✨ 生成了最新的 API 文档
269
+
251
270
  ### v1.5.0
252
271
 
253
272
  - ✨ 为 `toFormattedNumberString` 函数的前缀后缀添加函数类型支持
@@ -13,8 +13,8 @@
13
13
  * @param options.nanValue - 当值为NaN时的显示,默认NaN
14
14
  *
15
15
  * @returns 格式化后的数字或数字数组
16
- * - 如果输入是单个值,返回格式化后的数字
17
- * - 如果输入是数组,返回格式化后的数字数组
16
+ * - 当传入的 object 为非数组时,返回 number
17
+ * - 当传入的 object 为数组时,返回 number[]
18
18
  * - 支持深层数组递归处理
19
19
  *
20
20
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"toFormattedNumberString.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"AAyEA,iBAAS,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GAAG,MAAM,EAAE,CAAC;AAElI,iBAAS,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GAAG,MAAM,CAAC;AAyH9H,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"toFormattedNumberString.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"AA0EA,iBAAS,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GAAG,MAAM,EAAE,CAAC;AAElI,iBAAS,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GAAG,MAAM,CAAC;AAiI9H,eAAe,uBAAuB,CAAC"}
@@ -19,14 +19,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
19
19
  * @param options.zeroValue - 当值为0时的显示,默认'0'
20
20
  * @param options.localized - 是否使用本地化格式,默认false
21
21
  * @param options.preProcessor - 预处理函数,在数字转换后、字符串格式化前应用
22
- * @param options.prefix - 前缀,可以是字符串或函数,默认''
23
- * 如果是函数,会接收格式化前的数字作为参数,返回字符串作为前缀
24
- * @param options.suffix - 后缀,可以是字符串或函数,默认''
25
- * 如果是函数,会接收格式化前的数字作为参数,返回字符串作为后缀
22
+ * 接收两个参数:原始对象和转化后的数字
23
+ * @param options.prefix - 前缀,字符串或函数
24
+ * 如果是函数,会接收三个参数:原始对象、转化后的数字、格式化后的字符串,返回字符串作为前缀
25
+ * @param options.suffix - 后缀,字符串或函数
26
+ * 如果是函数,会接收三个参数:原始对象、转化后的数字、格式化后的字符串,返回字符串作为后缀
26
27
  *
27
28
  * @returns 格式化后的数字字符串或字符串数组
28
- * - 如果输入是单个值,返回格式化后的字符串
29
- * - 如果输入是数组,返回格式化后的字符串数组
29
+ * - 当传入的 object 为非数组时,返回 string
30
+ * - 当传入的 object 为数组时,返回 string[]
30
31
  * - 支持深层数组递归处理
31
32
  *
32
33
  * @example
@@ -51,18 +52,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
51
52
  *
52
53
  * // 预处理函数
53
54
  * toFormattedNumberString(0.1234, {
54
- * preProcessor: (num) => num * 100,
55
+ * preProcessor: (original, num) => num * 100,
55
56
  * suffix: '%'
56
57
  * }); // "12.34%"
57
58
  *
58
59
  * // 函数类型前缀
59
60
  * toFormattedNumberString(123.456, {
60
- * prefix: (num) => `$${Math.floor(num)}`
61
+ * prefix: (original, num, formatted) => `$${Math.floor(num)}`
61
62
  * }); // "$123123.456"
62
63
  *
63
64
  * // 函数类型后缀
64
65
  * toFormattedNumberString(123.456, {
65
- * suffix: (num) => `/${num.toFixed(0)}`
66
+ * suffix: (original, num, formatted) => `/${num.toFixed(0)}`
66
67
  * }); // "123.456/123"
67
68
  *
68
69
  * // 处理数组
@@ -77,42 +78,46 @@ const toFormattedNumber_1 = __importDefault(require("./toFormattedNumber"));
77
78
  // 主函数实现
78
79
  function toFormattedNumberString(object, options) {
79
80
  // 解构并设置默认值
80
- const { decimalPlaces = true, nanValue = 'NaN', zeroValue = '0', localized = false, preProcessor, prefix = '', suffix = '' } = options || {};
81
- /**
82
- * 处理前缀或后缀,可以是字符串或函数
83
- * @param prefixOrSuffix - 前缀或后缀,可以是字符串或函数
84
- * @param num - 要传递给函数的数字
85
- * @returns 处理后的前缀或后缀字符串
86
- */
87
- const processPrefixSuffix = (prefixOrSuffix, num) => {
88
- if (typeof prefixOrSuffix === 'function') {
89
- return prefixOrSuffix(num);
90
- }
91
- return prefixOrSuffix;
92
- };
81
+ const { decimalPlaces = true, nanValue = 'NaN', zeroValue = '0', localized, preProcessor, prefix = '', suffix = '' } = options || {};
93
82
  /**
94
83
  * 添加前缀和后缀
95
- * @param str - 要添加前缀后缀的字符串
96
- * @param num - 要传递给前缀后缀函数的数字
84
+ * @param prefix - 前缀
85
+ * @param suffix - 后缀
86
+ * @param formatted - 格式化后的字符串
87
+ * @param converted - 转化后的数字
88
+ * @param original - 原始对象
97
89
  * @returns 添加了前缀后缀的字符串
98
90
  */
99
- const addPrefixSuffix = (str, num) => {
100
- const processedPrefix = processPrefixSuffix(prefix, num);
101
- const processedSuffix = processPrefixSuffix(suffix, num);
102
- return `${processedPrefix}${str}${processedSuffix}`;
91
+ const addPrefixSuffix = (prefix, suffix, formatted, converted, original) => {
92
+ let processedPrefix;
93
+ if (typeof prefix === 'function') {
94
+ processedPrefix = prefix(original, converted, formatted);
95
+ }
96
+ else {
97
+ processedPrefix = prefix;
98
+ }
99
+ let processedSuffix;
100
+ if (typeof suffix === 'function') {
101
+ processedSuffix = suffix(original, converted, formatted);
102
+ }
103
+ else {
104
+ processedSuffix = suffix;
105
+ }
106
+ return `${processedPrefix}${formatted}${processedSuffix}`;
103
107
  };
104
108
  /**
105
109
  * 将单个数字转换为格式化字符串
106
- * @param num - 要转换的数字
110
+ * @param converted - 转化后的数字
111
+ * @param original - 原始对象
107
112
  * @returns 格式化后的字符串
108
113
  */
109
- const convertNumberToString = (num) => {
114
+ const convertNumberToString = (converted, original) => {
110
115
  // 处理0情况
111
- if (num === 0) {
112
- return addPrefixSuffix(zeroValue, num);
116
+ if (converted === 0) {
117
+ return addPrefixSuffix(prefix, suffix, zeroValue, converted, original);
113
118
  }
114
119
  // 应用预处理函数
115
- const processedNum = preProcessor ? preProcessor(num) : num;
120
+ const processedNum = preProcessor ? preProcessor(original, converted) : converted;
116
121
  // 格式化数字为字符串
117
122
  let strNum;
118
123
  if (localized) {
@@ -141,7 +146,7 @@ function toFormattedNumberString(object, options) {
141
146
  }
142
147
  }
143
148
  // 添加前缀和后缀
144
- return addPrefixSuffix(strNum, processedNum);
149
+ return addPrefixSuffix(prefix, suffix, strNum, processedNum, original);
145
150
  };
146
151
  /**
147
152
  * 检查字符串是否包含数字
@@ -154,18 +159,19 @@ function toFormattedNumberString(object, options) {
154
159
  /**
155
160
  * 递归处理值,转换为格式化字符串
156
161
  * @param value - 要处理的值
162
+ * @param original - 原始对象或数组元素
157
163
  * @returns 格式化后的字符串或字符串数组
158
164
  */
159
- const processValue = (value) => {
165
+ const processValue = (value, original = object) => {
160
166
  if (Array.isArray(value)) {
161
167
  // 递归处理数组
162
- return value.map(processValue);
168
+ return value.map((item, _index) => processValue(item, item));
163
169
  }
164
170
  else {
165
171
  // 检查是否为无数字的字符串
166
172
  if (typeof value === 'string' && !hasNumbers(value)) {
167
173
  // 无数字的字符串返回0
168
- return addPrefixSuffix(zeroValue, 0);
174
+ return addPrefixSuffix(prefix, suffix, zeroValue, 0, original);
169
175
  }
170
176
  // 对于其他类型,首先将输入转换为数字
171
177
  // 注意:toFormattedNumber对于单个值会返回number类型
@@ -176,10 +182,10 @@ function toFormattedNumberString(object, options) {
176
182
  // 检查是否为NaN
177
183
  if (isNaN(num)) {
178
184
  // 其他NaN情况,使用nanValue
179
- return addPrefixSuffix(nanValue, num);
185
+ return addPrefixSuffix(prefix, suffix, nanValue, num, original);
180
186
  }
181
187
  // 正常数字转换
182
- return convertNumberToString(num);
188
+ return convertNumberToString(num, original);
183
189
  }
184
190
  };
185
191
  // 处理输入值
@@ -1 +1 @@
1
- {"version":3,"file":"toFormattedNumberString.js","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toFormattedNumberString.js","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"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"}
@@ -41,17 +41,20 @@ export interface ToFormattedNumberStringOptions extends CommonFormatOptions {
41
41
  /**
42
42
  * 预处理函数,在对象被处理为数字后调用,
43
43
  * 默认无。
44
+ * 接收参数:原始对象、转化后的数字,返回处理后的数字
44
45
  */
45
- preProcessor?: (num: number) => number;
46
+ preProcessor?: (original: unknown, converted: number) => number;
46
47
  /**
47
48
  * 前缀,可以是字符串或函数,
48
49
  * 默认''。
50
+ * 如果是函数,接收参数:原始对象、转化后数字、格式化后的字符串,返回字符串作为前缀
49
51
  */
50
- prefix?: string | ((value: number) => string);
52
+ prefix?: string | ((original: unknown, converted: number, formatted: string) => string);
51
53
  /**
52
54
  * 后缀,可以是字符串或函数,
53
55
  * 默认''。
56
+ * 如果是函数,接收参数:原始对象、转化后数字、格式化后的字符串,返回字符串作为后缀
54
57
  */
55
- suffix?: string | ((value: number) => string);
58
+ suffix?: string | ((original: unknown, converted: number, formatted: string) => string);
56
59
  }
57
60
  //# sourceMappingURL=object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/types/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACvE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACjD"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/types/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACvE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACxF;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAC3F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planarcat/js-toolkit",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "description": "一个自用的带学习性质的(目前)现代化的 JavaScript/TypeScript 实用工具库,提供类型安全、高性能的常用函数,包括对象转换、日期处理、函数优化等开发常用工具。",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",