@planarcat/js-toolkit 1.6.0 → 1.7.9

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 (43) hide show
  1. package/README.md +59 -32
  2. package/dist/date/compileDateFormatter.d.ts +16 -0
  3. package/dist/date/compileDateFormatter.d.ts.map +1 -0
  4. package/dist/date/compileDateFormatter.js +315 -0
  5. package/dist/date/compileDateFormatter.js.map +1 -0
  6. package/dist/date/formatDate.d.ts +41 -6
  7. package/dist/date/formatDate.d.ts.map +1 -1
  8. package/dist/date/formatDate.js +74 -150
  9. package/dist/date/formatDate.js.map +1 -1
  10. package/dist/date/{formatDatePlain.d.ts → regularDateFormatter.d.ts} +12 -13
  11. package/dist/date/regularDateFormatter.d.ts.map +1 -0
  12. package/dist/date/regularDateFormatter.js +305 -0
  13. package/dist/date/regularDateFormatter.js.map +1 -0
  14. package/dist/index.d.ts +2 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/object/toFormattedNumber.d.ts +2 -2
  18. package/dist/object/toFormattedNumber.d.ts.map +1 -1
  19. package/dist/object/toFormattedNumber.js +8 -8
  20. package/dist/object/toFormattedNumber.js.map +1 -1
  21. package/dist/object/toFormattedNumberString.d.ts +2 -2
  22. package/dist/object/toFormattedNumberString.d.ts.map +1 -1
  23. package/dist/object/toFormattedNumberString.js +8 -6
  24. package/dist/object/toFormattedNumberString.js.map +1 -1
  25. package/dist/types/date.d.ts +18 -1
  26. package/dist/types/date.d.ts.map +1 -1
  27. package/dist/types/object.d.ts.map +1 -1
  28. package/dist/utils/cache.d.ts +38 -0
  29. package/dist/utils/cache.d.ts.map +1 -0
  30. package/dist/utils/cache.js +69 -0
  31. package/dist/utils/cache.js.map +1 -0
  32. package/dist/utils/constants.d.ts +9 -1
  33. package/dist/utils/constants.d.ts.map +1 -1
  34. package/dist/utils/constants.js +10 -10
  35. package/dist/utils/constants.js.map +1 -1
  36. package/package.json +78 -74
  37. package/dist/date/formatDateCompiled.d.ts +0 -30
  38. package/dist/date/formatDateCompiled.d.ts.map +0 -1
  39. package/dist/date/formatDateCompiled.js +0 -126
  40. package/dist/date/formatDateCompiled.js.map +0 -1
  41. package/dist/date/formatDatePlain.d.ts.map +0 -1
  42. package/dist/date/formatDatePlain.js +0 -128
  43. package/dist/date/formatDatePlain.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -4,12 +4,12 @@
4
4
  * @module @planarcat/js-toolkit
5
5
  */
6
6
  export { default as formatDate } from './date/formatDate';
7
- export type { DateFormatOptions, DateInput } from './types/date';
7
+ export type { DateFormatOptions, DateInput, DateFormatMode, WeekdayNames, } from './types/date';
8
8
  export { default as debounce } from './function/debounce';
9
9
  export type { DebounceOptions, DebouncedFunction } from './types/function';
10
10
  export declare const VERSION = "__VERSION__";
11
11
  export declare const LIBRARY_NAME = "@planarcat/js-toolkit";
12
12
  export { default as toFormattedNumber } from './object/toFormattedNumber';
13
13
  export { default as toFormattedNumberString } from './object/toFormattedNumberString';
14
- export type { ToFormattedNumberOptions, ToFormattedNumberStringOptions } from './types/object';
14
+ export type { ToFormattedNumberOptions, ToFormattedNumberStringOptions, } from './types/object';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,eAAO,MAAM,OAAO,gBAAgB,CAAC;AACrC,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAGpD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACtF,YAAY,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,eAAO,MAAM,OAAO,gBAAgB,CAAC;AACrC,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAGpD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACtF,YAAY,EACV,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,gBAAgB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,SAAS;AACT,gDAA0D;AAAjD,yHAAA,OAAO,OAAc;AAG9B,SAAS;AACT,gDAA0D;AAAjD,qHAAA,OAAO,OAAY;AAG5B,SAAS;AACI,QAAA,OAAO,GAAG,aAAa,CAAC,CAAC,QAAQ;AACjC,QAAA,YAAY,GAAG,uBAAuB,CAAC;AAEpD,SAAS;AACT,gEAA0E;AAAjE,uIAAA,OAAO,OAAqB;AACrC,4EAAsF;AAA7E,mJAAA,OAAO,OAA2B;AAG3C,aAAa;AACb,2DAA2D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,SAAS;AACT,gDAA0D;AAAjD,yHAAA,OAAO,OAAc;AAQ9B,SAAS;AACT,gDAA0D;AAAjD,qHAAA,OAAO,OAAY;AAG5B,SAAS;AACI,QAAA,OAAO,GAAG,aAAa,CAAC,CAAC,QAAQ;AACjC,QAAA,YAAY,GAAG,uBAAuB,CAAC;AAEpD,SAAS;AACT,gEAA0E;AAAjE,uIAAA,OAAO,OAAqB;AACrC,4EAAsF;AAA7E,mJAAA,OAAO,OAA2B;AAM3C,aAAa;AACb,2DAA2D"}
@@ -51,7 +51,7 @@
51
51
  * toFormattedNumber('abc', { nanValue: -1 }); // -1
52
52
  * ```
53
53
  */
54
- declare function toFormattedNumber(object: unknown[], options?: import('../types/object').ToFormattedNumberOptions): number[];
55
- declare function toFormattedNumber(object: unknown, options?: import('../types/object').ToFormattedNumberOptions): number;
54
+ declare function toFormattedNumber(object: unknown[], options?: import("../types/object").ToFormattedNumberOptions): number[];
55
+ declare function toFormattedNumber(object: unknown, options?: import("../types/object").ToFormattedNumberOptions): number;
56
56
  export default toFormattedNumber;
57
57
  //# sourceMappingURL=toFormattedNumber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toFormattedNumber.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,iBAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAAC;AAEtH,iBAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,wBAAwB,GAAG,MAAM,CAAC;AAgDlH,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"toFormattedNumber.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,iBAAS,iBAAiB,CACxB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,wBAAwB,GAC3D,MAAM,EAAE,CAAC;AAEZ,iBAAS,iBAAiB,CACxB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,wBAAwB,GAC3D,MAAM,CAAC;AAmDV,eAAe,iBAAiB,CAAC"}
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
8
8
  function extractNumberFromString(str) {
9
9
  // 匹配数字体系:0~9,小数点,正负号,科学计数法
10
10
  const match = str.match(/[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/);
11
- return match ? match[0] : '';
11
+ return match ? match[0] : "";
12
12
  }
13
13
  /**
14
14
  * 将单个值转换为数字
@@ -17,24 +17,24 @@ function extractNumberFromString(str) {
17
17
  */
18
18
  function convertToNumber(value) {
19
19
  switch (typeof value) {
20
- case 'number':
20
+ case "number":
21
21
  return value;
22
- case 'string': {
22
+ case "string": {
23
23
  const numStr = extractNumberFromString(value);
24
24
  return numStr ? Number(numStr) : 0;
25
25
  }
26
- case 'boolean':
26
+ case "boolean":
27
27
  return value ? 1 : 0;
28
- case 'function':
29
- case 'symbol':
28
+ case "function":
29
+ case "symbol":
30
30
  return NaN;
31
- case 'object':
31
+ case "object":
32
32
  if (value === null) {
33
33
  return NaN;
34
34
  }
35
35
  // 其他对象类型返回NaN
36
36
  return NaN;
37
- case 'undefined':
37
+ case "undefined":
38
38
  return NaN;
39
39
  default:
40
40
  return NaN;
@@ -1 +1 @@
1
- {"version":3,"file":"toFormattedNumber.js","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,GAAW;IACxC,2BAA2B;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAc;IACnC,QAAQ,OAAO,KAAK,EAAE,CAAC;QACnB,KAAK,QAAQ;YACT,OAAO,KAAK,CAAC;QACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,SAAS;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACT,OAAO,GAAG,CAAC;QACf,KAAK,QAAQ;YACT,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC;YACf,CAAC;YACD,cAAc;YACd,OAAO,GAAG,CAAC;QACf,KAAK,WAAW;YACZ,OAAO,GAAG,CAAC;QACf;YACI,OAAO,GAAG,CAAC;IACnB,CAAC;AACL,CAAC;AA2DD,QAAQ;AACR,SAAS,iBAAiB,CAAC,MAAe,EAAE,OAA4D;IACpG,WAAW;IACX,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE/D;;;;OAIG;IACH,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE;QAC/C,UAAU;QACV,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,yBAAyB;QACzB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YACzB,gBAAgB;YAChB,OAAO,GAAG,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,eAAe;YACf,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,YAAY,GAAG,CAAC,KAAc,EAAqB,EAAE;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,WAAW;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAa,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,QAAQ;YACR,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACnC,QAAQ;YACR,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC;IAEF,QAAQ;IACR,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"toFormattedNumber.js","sourceRoot":"","sources":["../../src/object/toFormattedNumber.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,GAAW;IAC1C,2BAA2B;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,GAAG,CAAC;YACb,CAAC;YACD,cAAc;YACd,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAiED,QAAQ;AACR,SAAS,iBAAiB,CACxB,MAAe,EACf,OAA4D;IAE5D,WAAW;IACX,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE/D;;;;OAIG;IACH,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE;QACjD,UAAU;QACV,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,yBAAyB;QACzB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,gBAAgB;YAChB,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,eAAe;YACf,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,YAAY,GAAG,CAAC,KAAc,EAAqB,EAAE;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,WAAW;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAa,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,QAAQ;YACR,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACnC,QAAQ;YACR,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,QAAQ;IACR,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
@@ -1,4 +1,4 @@
1
- declare function toFormattedNumberString(object: unknown[], options?: import('../types/object').ToFormattedNumberStringOptions): string[];
2
- declare function toFormattedNumberString(object: unknown, options?: import('../types/object').ToFormattedNumberStringOptions): string;
1
+ declare function toFormattedNumberString(object: unknown[], options?: import("../types/object").ToFormattedNumberStringOptions): string[];
2
+ declare function toFormattedNumberString(object: unknown, options?: import("../types/object").ToFormattedNumberStringOptions): string;
3
3
  export default toFormattedNumberString;
4
4
  //# sourceMappingURL=toFormattedNumberString.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toFormattedNumberString.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"AAsNA,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;AAkB9H,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"toFormattedNumberString.d.ts","sourceRoot":"","sources":["../../src/object/toFormattedNumberString.ts"],"names":[],"mappings":"AAuOA,iBAAS,uBAAuB,CAC9B,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GACjE,MAAM,EAAE,CAAC;AAEZ,iBAAS,uBAAuB,CAC9B,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,8BAA8B,GACjE,MAAM,CAAC;AA6BV,eAAe,uBAAuB,CAAC"}
@@ -82,14 +82,14 @@ function hasNumbers(str) {
82
82
  */
83
83
  function addPrefixSuffix(prefix, suffix, formatted, converted, original) {
84
84
  let processedPrefix;
85
- if (typeof prefix === 'function') {
85
+ if (typeof prefix === "function") {
86
86
  processedPrefix = prefix(original, converted, formatted);
87
87
  }
88
88
  else {
89
89
  processedPrefix = prefix;
90
90
  }
91
91
  let processedSuffix;
92
- if (typeof suffix === 'function') {
92
+ if (typeof suffix === "function") {
93
93
  processedSuffix = suffix(original, converted, formatted);
94
94
  }
95
95
  else {
@@ -111,7 +111,9 @@ function format(converted, original, options) {
111
111
  return addPrefixSuffix(prefix, suffix, zeroValue, converted, original);
112
112
  }
113
113
  // 应用预处理函数
114
- const preProcessed = preProcessor ? preProcessor(original, converted) : converted;
114
+ const preProcessed = preProcessor
115
+ ? preProcessor(original, converted)
116
+ : converted;
115
117
  // 格式化数字为字符串
116
118
  let formatted;
117
119
  if (localized) {
@@ -157,13 +159,13 @@ function processValue(value, original, options) {
157
159
  }
158
160
  else {
159
161
  // 检查是否为无数字的字符串
160
- if (typeof value === 'string' && !hasNumbers(value)) {
162
+ if (typeof value === "string" && !hasNumbers(value)) {
161
163
  // 无数字的字符串返回0
162
164
  return addPrefixSuffix(prefix, suffix, zeroValue, 0, original);
163
165
  }
164
166
  // 对于其他类型,首先将输入转换为数字
165
167
  // 注意:toFormattedNumber对于单个值会返回number类型
166
- const converted = typeof value === 'number'
168
+ const converted = typeof value === "number"
167
169
  ? value
168
170
  : (0, toFormattedNumber_1.default)(value, {
169
171
  decimalPlaces,
@@ -181,7 +183,7 @@ function processValue(value, original, options) {
181
183
  // 主函数实现
182
184
  function toFormattedNumberString(object, options) {
183
185
  // 解构并设置默认值
184
- const { decimalPlaces = true, nanValue = 'NaN', zeroValue = '0', localized, preProcessor, prefix = '', suffix = '' } = options || {};
186
+ const { decimalPlaces = true, nanValue = "NaN", zeroValue = "0", localized, preProcessor, prefix = "", suffix = "", } = options || {};
185
187
  // 处理输入值
186
188
  return processValue(object, object, {
187
189
  decimalPlaces,
@@ -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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"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * 周名称映射类型
3
+ */
4
+ export type WeekdayNames = Record<string, [string, string, string, string, string, string, string]> | [string, string, string, string, string, string, string];
1
5
  /**
2
6
  * 日期格式化选项接口
3
7
  */
@@ -12,15 +16,28 @@ export interface DateFormatOptions {
12
16
  * @default 'zh-CN'
13
17
  */
14
18
  locale?: string;
19
+ /**
20
+ * 格式化模式
21
+ * @default 'auto'
22
+ */
23
+ mode?: DateFormatMode;
15
24
  /**
16
25
  * 自定义格式化处理器
17
26
  */
18
27
  customFormatters?: Record<string, (date: Date) => string>;
28
+ /**
29
+ * 周名称映射,可以是完整映射或仅当前语言的映射
30
+ */
31
+ weekdayNames?: WeekdayNames;
19
32
  }
33
+ /**
34
+ * 日期格式化模式
35
+ */
36
+ export type DateFormatMode = 'compile' | 'regular' | 'auto';
20
37
  /**
21
38
  * 支持的格式化标记
22
39
  */
23
- export type DateFormatToken = 'YYYY' | 'YY' | 'MMMM' | 'MMM' | 'MM' | 'M' | 'DDD' | 'DD' | 'D' | 'Do' | 'HH' | 'H' | 'hh' | 'h' | 'mm' | 'm' | 'ss' | 's' | 'SSS' | 'S' | 'A' | 'a' | 'dddd' | 'ddd' | 'd' | 'WW' | 'W' | 'Q' | 'X' | 'x' | 'timestamp';
40
+ export type DateFormatToken = 'YYYY' | 'YY' | 'MMMM' | 'MMM' | 'MM' | 'M' | 'DDD' | 'DD' | 'D' | 'HH' | 'H' | 'hh' | 'h' | 'mm' | 'm' | 'ss' | 's' | 'SSS' | 'S' | 'A' | 'a' | 'dd' | 'd' | 'WW' | 'W' | 'Q' | 'X' | 'x';
24
41
  /**
25
42
  * 可接受的日期输入类型
26
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/types/date.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACrB,MAAM,GACN,IAAI,GACJ,MAAM,GACN,KAAK,GACL,IAAI,GACJ,GAAG,GACH,KAAK,GACL,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,KAAK,GACL,GAAG,GACH,GAAG,GACH,GAAG,GACH,MAAM,GACN,KAAK,GACL,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,WAAW,CAAC;AAElB;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/types/date.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GACxE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;IAE1D;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,IAAI,GACJ,MAAM,GACN,KAAK,GACL,IAAI,GACJ,GAAG,GACH,KAAK,GACL,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,KAAK,GACL,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAER;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC"}
@@ -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;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACxF;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAC3F"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/types/object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACzE;;;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;;;OAGG;IACH,MAAM,CAAC,EACH,MAAM,GACN,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC1E;;;OAGG;IACH,MAAM,CAAC,EACH,MAAM,GACN,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAC3E"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * LRU 缓存实现
3
+ * 用于存储编译后的日期格式化函数
4
+ */
5
+ /**
6
+ * LRU 缓存类
7
+ */
8
+ export declare class LRUCache<K, V> {
9
+ private cache;
10
+ private maxSize;
11
+ /**
12
+ * 构造函数
13
+ * @param maxSize 缓存最大容量,默认 100
14
+ */
15
+ constructor(maxSize?: number);
16
+ /**
17
+ * 获取缓存项
18
+ * @param key 缓存键
19
+ * @returns 缓存值,不存在返回 undefined
20
+ */
21
+ get(key: K): V | undefined;
22
+ /**
23
+ * 设置缓存项
24
+ * @param key 缓存键
25
+ * @param value 缓存值
26
+ */
27
+ set(key: K, value: V): void;
28
+ /**
29
+ * 清空缓存
30
+ */
31
+ clear(): void;
32
+ /**
33
+ * 获取缓存大小
34
+ * @returns 缓存大小
35
+ */
36
+ size(): number;
37
+ }
38
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,OAAO,CAAS;IAExB;;;OAGG;gBACS,OAAO,GAAE,MAAY;IAKjC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAU1B;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAe3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,MAAM;CAGf"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /**
3
+ * LRU 缓存实现
4
+ * 用于存储编译后的日期格式化函数
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.LRUCache = void 0;
8
+ /**
9
+ * LRU 缓存类
10
+ */
11
+ class LRUCache {
12
+ /**
13
+ * 构造函数
14
+ * @param maxSize 缓存最大容量,默认 100
15
+ */
16
+ constructor(maxSize = 100) {
17
+ this.cache = new Map();
18
+ this.maxSize = maxSize;
19
+ }
20
+ /**
21
+ * 获取缓存项
22
+ * @param key 缓存键
23
+ * @returns 缓存值,不存在返回 undefined
24
+ */
25
+ get(key) {
26
+ const value = this.cache.get(key);
27
+ if (value !== undefined) {
28
+ // 移动到末尾表示最近使用
29
+ this.cache.delete(key);
30
+ this.cache.set(key, value);
31
+ }
32
+ return value;
33
+ }
34
+ /**
35
+ * 设置缓存项
36
+ * @param key 缓存键
37
+ * @param value 缓存值
38
+ */
39
+ set(key, value) {
40
+ // 如果已存在,先删除
41
+ if (this.cache.has(key)) {
42
+ this.cache.delete(key);
43
+ }
44
+ else if (this.cache.size >= this.maxSize) {
45
+ // 缓存已满,删除最久未使用的项(Map 的第一个元素)
46
+ const firstKeyResult = this.cache.keys().next();
47
+ if (!firstKeyResult.done) {
48
+ this.cache.delete(firstKeyResult.value);
49
+ }
50
+ }
51
+ // 添加到末尾
52
+ this.cache.set(key, value);
53
+ }
54
+ /**
55
+ * 清空缓存
56
+ */
57
+ clear() {
58
+ this.cache.clear();
59
+ }
60
+ /**
61
+ * 获取缓存大小
62
+ * @returns 缓存大小
63
+ */
64
+ size() {
65
+ return this.cache.size;
66
+ }
67
+ }
68
+ exports.LRUCache = LRUCache;
69
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;GAEG;AACH,MAAa,QAAQ;IAInB;;;OAGG;IACH,YAAY,UAAkB,GAAG;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAQ,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAM;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,cAAc;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,YAAY;QACZ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,6BAA6B;YAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,QAAQ;QACR,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AA9DD,4BA8DC"}
@@ -8,5 +8,13 @@ export declare const DEFAULT_DATE_FORMAT_OPTIONS: {
8
8
  /**
9
9
  * 周几中英文映射
10
10
  */
11
- export declare const WEEKDAY_MAP: Record<string, string[]>;
11
+ export declare const WEEKDAY_MAP: Record<string, [
12
+ string,
13
+ string,
14
+ string,
15
+ string,
16
+ string,
17
+ string,
18
+ string
19
+ ]>;
12
20
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWhD,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAC9B,MAAM,EACN;IAAC,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;CAAC,CAYzD,CAAC"}
@@ -5,22 +5,22 @@ exports.WEEKDAY_MAP = exports.DEFAULT_DATE_FORMAT_OPTIONS = void 0;
5
5
  * 默认格式化选项
6
6
  */
7
7
  exports.DEFAULT_DATE_FORMAT_OPTIONS = {
8
- timeZone: "local",
9
- locale: "zh-CN",
8
+ timeZone: 'local',
9
+ locale: 'zh-CN',
10
10
  };
11
11
  /**
12
12
  * 周几中英文映射
13
13
  */
14
14
  exports.WEEKDAY_MAP = {
15
- zh: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
15
+ zh: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
16
16
  en: [
17
- "Sunday",
18
- "Monday",
19
- "Tuesday",
20
- "Wednesday",
21
- "Thursday",
22
- "Friday",
23
- "Saturday",
17
+ 'Sunday',
18
+ 'Monday',
19
+ 'Tuesday',
20
+ 'Wednesday',
21
+ 'Thursday',
22
+ 'Friday',
23
+ 'Saturday',
24
24
  ],
25
25
  };
26
26
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,2BAA2B,GAAG;IACzC,QAAQ,EAAE,OAAgB;IAC1B,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF;;GAEG;AACU,QAAA,WAAW,GAA6B;IACnD,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9C,EAAE,EAAE;QACF,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,WAAW;QACX,UAAU;QACV,QAAQ;QACR,UAAU;KACX;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,2BAA2B,GAAG;IACzC,QAAQ,EAAE,OAAgB;IAC1B,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF;;GAEG;AACU,QAAA,WAAW,GAGpB;IACF,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9C,EAAE,EAAE;QACF,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,WAAW;QACX,UAAU;QACV,QAAQ;QACR,UAAU;KACX;CACF,CAAC"}
package/package.json CHANGED
@@ -1,76 +1,80 @@
1
1
  {
2
- "name": "@planarcat/js-toolkit",
3
- "version": "1.6.0",
4
- "description": "一个自用的带学习性质的(目前)现代化的 JavaScript/TypeScript 实用工具库,提供类型安全、高性能的常用函数,包括对象转换、日期处理、函数优化等开发常用工具。",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "dist",
9
- "README.md",
10
- "LICENSE"
2
+ "name": "@planarcat/js-toolkit",
3
+ "version": "1.7.9",
4
+ "description": "一个自用的带学习性质的(目前)现代化的 JavaScript/TypeScript 实用工具库,提供类型安全、高性能的常用函数,包括对象转换、日期处理、函数优化等开发常用工具。",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "keywords": [
13
+ "javascript",
14
+ "typescript",
15
+ "utility",
16
+ "toolkit",
17
+ "format-date",
18
+ "type-safe"
19
+ ],
20
+ "author": "planarcat",
21
+ "license": "MIT",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/planarcat/js-toolkit.git"
25
+ },
26
+ "bugs": {
27
+ "url": "https://github.com/planarcat/js-toolkit/issues"
28
+ },
29
+ "homepage": "https://github.com/planarcat/js-toolkit#readme",
30
+ "devDependencies": {
31
+ "@types/jest": "^29.5.14",
32
+ "@types/node": "^25.0.7",
33
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
34
+ "@typescript-eslint/parser": "^6.21.0",
35
+ "eslint": "^8.57.1",
36
+ "eslint-config-prettier": "^9.1.2",
37
+ "eslint-plugin-prettier": "^5.5.4",
38
+ "husky": "^9.1.7",
39
+ "jest": "^29.7.0",
40
+ "lint-staged": "^13.3.0",
41
+ "prettier": "^3.7.4",
42
+ "rimraf": "^5.0.10",
43
+ "ts-jest": "^29.4.6",
44
+ "ts-node": "^10.9.2",
45
+ "ts-node-dev": "^2.0.0",
46
+ "typedoc": "^0.28.16",
47
+ "typedoc-plugin-markdown": "^4.9.0",
48
+ "typescript": "^5.3.3"
49
+ },
50
+ "lint-staged": {
51
+ "*.{js,ts,tsx}": [
52
+ "eslint --fix",
53
+ "prettier --write"
11
54
  ],
12
- "scripts": {
13
- "build": "tsc -p tsconfig.build.json",
14
- "build:watch": "tsc --watch",
15
- "test": "jest",
16
- "test:watch": "jest --watch",
17
- "test:coverage": "jest --coverage",
18
- "lint": "eslint \"src/**/*.ts\" \"__tests__/**/*.ts\"",
19
- "lint:fix": "eslint \"src/**/*.ts\" \"__tests__/**/*.ts\" --fix",
20
- "format": "prettier --write \"src/**/*.ts\" \"__tests__/**/*.ts\"",
21
- "format:check": "prettier --check \"src/**/*.ts\" \"__tests__/**/*.ts\"",
22
- "prepare": "husky",
23
- "prepublishOnly": "npm run lint && npm test && npm run build",
24
- "clean": "rimraf dist coverage",
25
- "docs": "typedoc",
26
- "docs:watch": "typedoc --watch"
27
- },
28
- "keywords": [
29
- "javascript",
30
- "typescript",
31
- "utility",
32
- "toolkit",
33
- "format-date",
34
- "type-safe"
35
- ],
36
- "author": "planarcat",
37
- "license": "MIT",
38
- "repository": {
39
- "type": "git",
40
- "url": "https://github.com/planarcat/js-toolkit.git"
41
- },
42
- "bugs": {
43
- "url": "https://github.com/planarcat/js-toolkit/issues"
44
- },
45
- "homepage": "https://github.com/planarcat/js-toolkit#readme",
46
- "devDependencies": {
47
- "@types/jest": "^29.5.14",
48
- "@types/node": "^25.0.7",
49
- "@typescript-eslint/eslint-plugin": "^6.21.0",
50
- "@typescript-eslint/parser": "^6.21.0",
51
- "eslint": "^8.57.1",
52
- "eslint-config-prettier": "^9.1.2",
53
- "eslint-plugin-prettier": "^5.5.4",
54
- "husky": "^9.1.7",
55
- "jest": "^29.7.0",
56
- "lint-staged": "^13.3.0",
57
- "prettier": "^3.7.4",
58
- "rimraf": "^5.0.10",
59
- "ts-jest": "^29.4.6",
60
- "ts-node": "^10.9.2",
61
- "ts-node-dev": "^2.0.0",
62
- "typedoc": "^0.28.16",
63
- "typedoc-plugin-markdown": "^4.9.0",
64
- "typescript": "^5.3.3"
65
- },
66
- "lint-staged": {
67
- "*.{js,ts,tsx}": [
68
- "eslint --fix",
69
- "prettier --write"
70
- ],
71
- "\"*.{js,ts,tsx}\"": "[\"eslint --fix\", \"prettier --write\"]"
72
- },
73
- "publishConfig": {
74
- "access": "public"
75
- }
76
- }
55
+ "\"*.{js,ts,tsx}\"": "[\"eslint --fix\", \"prettier --write\"]"
56
+ },
57
+ "publishConfig": {
58
+ "access": "public"
59
+ },
60
+ "scripts": {
61
+ "build": "tsc -p tsconfig.build.json",
62
+ "build:watch": "tsc --watch",
63
+ "test": "jest",
64
+ "test:watch": "jest --watch",
65
+ "test:coverage": "jest --coverage",
66
+ "lint": "eslint \"src/**/*.ts\" \"__tests__/**/*.ts\"",
67
+ "lint:fix": "eslint \"src/**/*.ts\" \"__tests__/**/*.ts\" --fix",
68
+ "format": "prettier --write \"src/**/*.ts\" \"__tests__/**/*.ts\"",
69
+ "format:check": "prettier --check \"src/**/*.ts\" \"__tests__/**/*.ts\"",
70
+ "clean": "rimraf dist coverage",
71
+ "docs": "typedoc",
72
+ "docs:watch": "typedoc --watch",
73
+ "bump": "node scripts/bump-version.js",
74
+ "bump:patch": "node scripts/bump-version.js patch",
75
+ "bump:minor": "node scripts/bump-version.js minor",
76
+ "bump:major": "node scripts/bump-version.js major",
77
+ "bump:beta": "node scripts/bump-version.js prerelease beta",
78
+ "bump:alpha": "node scripts/bump-version.js prerelease alpha"
79
+ }
80
+ }
@@ -1,30 +0,0 @@
1
- /**
2
- * 编译模式日期格式化实现
3
- * 首次调用编译格式化字符串,后续调用使用缓存的编译函数
4
- */
5
- import { DateFormatOptions, DateInput } from '../types/date';
6
- /**
7
- * 编译后的格式化函数类型
8
- */
9
- type CompiledFormatter = (date: Date, options: DateFormatOptions) => string;
10
- /**
11
- * 编译格式化字符串,生成优化的格式化函数
12
- * @param formatStr - 格式化字符串
13
- * @returns 编译后的格式化函数
14
- */
15
- export declare function compileFormat(formatStr: string): CompiledFormatter;
16
- /**
17
- * 清除格式化缓存
18
- * @param formatStr - 可选,指定要清除的格式化字符串缓存
19
- */
20
- export declare function clearFormatCache(formatStr?: string): void;
21
- /**
22
- * 编译模式日期格式化
23
- * @param input - 要格式化的日期输入
24
- * @param formatStr - 格式化字符串
25
- * @param options - 格式化选项
26
- * @returns 格式化后的日期字符串
27
- */
28
- export declare function formatDateCompiled(input: DateInput, formatStr?: string, options?: Partial<DateFormatOptions>): string;
29
- export default formatDateCompiled;
30
- //# sourceMappingURL=formatDateCompiled.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatDateCompiled.d.ts","sourceRoot":"","sources":["../../src/date/formatDateCompiled.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI7D;;GAEG;AACH,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC;AAO5E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CA0FlE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAMzD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,SAAS,EAChB,SAAS,GAAE,MAA8B,EACzC,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACzC,MAAM,CASR;AAED,eAAe,kBAAkB,CAAC"}