@idlebox/common 1.3.15 → 1.3.16

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 (90) hide show
  1. package/{dist → lib}/common-alpha.d.ts +10 -0
  2. package/{dist → lib}/common-beta.d.ts +10 -0
  3. package/{dist → lib}/common-public.d.ts +10 -0
  4. package/{dist → lib}/common.d.ts +10 -0
  5. package/lib/function/callbackList.cjs +4 -0
  6. package/lib/function/callbackList.cjs.map +1 -1
  7. package/lib/function/callbackList.js +4 -0
  8. package/lib/function/callbackList.js.map +1 -1
  9. package/lib/string/concatType.generated.cjs +8 -0
  10. package/lib/string/concatType.generated.cjs.map +1 -1
  11. package/lib/string/concatType.generated.js +8 -0
  12. package/lib/string/concatType.generated.js.map +1 -1
  13. package/{dist → lib}/tsdoc-metadata.json +1 -1
  14. package/package.json +12 -12
  15. package/src/array/arrayDiff.ts +31 -0
  16. package/src/array/arraySame.ts +15 -0
  17. package/src/array/arrayUnique.ts +50 -0
  18. package/src/array/normalizeArray.ts +13 -0
  19. package/src/array/sortAlpha.ts +15 -0
  20. package/src/date/consts.ts +5 -0
  21. package/src/date/isInvalid.ts +6 -0
  22. package/src/date/sibling.ts +28 -0
  23. package/src/date/timeString.ts +150 -0
  24. package/src/date/unix.ts +13 -0
  25. package/src/debugging/serializable.ts +146 -0
  26. package/src/debugging/tryInspect.ts +37 -0
  27. package/src/error/convertUnknown.ts +10 -0
  28. package/src/error/getFrame.ts +13 -0
  29. package/src/function/asyncCallbackList.ts +75 -0
  30. package/src/function/callbackList.ts +88 -0
  31. package/src/function/delayCallbackList.ts +45 -0
  32. package/src/function/functionName.ts +39 -0
  33. package/src/index.generated.ts +289 -0
  34. package/src/lifecycle/dispose/bridges/rxjs.ts +6 -0
  35. package/src/lifecycle/dispose/disposableEvent.ts +117 -0
  36. package/src/lifecycle/dispose/disposedError.ts +16 -0
  37. package/src/lifecycle/dispose/lifecycle.async.ts +61 -0
  38. package/src/lifecycle/dispose/lifecycle.global.ts +61 -0
  39. package/src/lifecycle/dispose/lifecycle.sync.ts +79 -0
  40. package/src/lifecycle/dispose/lifecycle.ts +28 -0
  41. package/src/lifecycle/event/event.ts +81 -0
  42. package/src/lifecycle/event/memorized.ts +39 -0
  43. package/src/lifecycle/promise/cancel.ts +16 -0
  44. package/src/lifecycle/promise/cancellationToken/driver.browser.ts +55 -0
  45. package/src/lifecycle/promise/cancellationToken/driver.common.ts +43 -0
  46. package/src/lifecycle/promise/cancellationToken/source.ts +48 -0
  47. package/src/lifecycle/promise/deferredPromise.ts +104 -0
  48. package/src/lifecycle/timeout/timeout.ts +48 -0
  49. package/src/lifecycle/timeout/timeoutError.ts +16 -0
  50. package/src/log/logger.ts +148 -0
  51. package/src/mapSet/customSet.ts +91 -0
  52. package/src/mapSet/extendMap.ts +40 -0
  53. package/src/misc/assertNotNull.ts +21 -0
  54. package/src/object/definePublicConstant.ts +10 -0
  55. package/src/object/initOnRead.ts +27 -0
  56. package/src/object/objectPath.ts +10 -0
  57. package/src/object/objectSame.ts +52 -0
  58. package/src/path/isAbsolute.ts +11 -0
  59. package/src/path/normalizePath.ts +8 -0
  60. package/src/path/pathArray.ts +42 -0
  61. package/src/platform/globalObject.ts +22 -0
  62. package/src/platform/globalSingleton.ts +82 -0
  63. package/src/platform/globalSymbol.ts +36 -0
  64. package/src/platform/os.ts +46 -0
  65. package/src/promise/awaitIterator.ts +19 -0
  66. package/src/promise/finishAllPromise.ts +50 -0
  67. package/src/promise/promiseBool.ts +10 -0
  68. package/src/promise/promisePool.ts +40 -0
  69. package/src/promise/timeoutPromisePool.ts +22 -0
  70. package/src/reflection/classes/hookClass.ts +47 -0
  71. package/src/reflection/classes/singleton.ts +33 -0
  72. package/src/reflection/methods/bind.ts +30 -0
  73. package/src/reflection/methods/initOnRead.ts +11 -0
  74. package/src/reflection/methods/memorize.ts +33 -0
  75. package/src/string/castCase.ts +44 -0
  76. package/src/string/concatType.generated.ts +265 -0
  77. package/src/string/concatType.generator.ts +31 -0
  78. package/src/string/escapeRegexp.ts +4 -0
  79. package/src/string/pad2.ts +11 -0
  80. package/src/string/sizeString.ts +52 -0
  81. package/src/tsconfig.json +14 -0
  82. package/src/typingHelper/deep.partial.ts +16 -0
  83. package/src/typingHelper/deep.readonly.ts +16 -0
  84. package/src/typingHelper/deep.required.ts +16 -0
  85. package/src/typingHelper/deep.writable.ts +16 -0
  86. package/src/typingHelper/literal.ts +1 -0
  87. package/docs/common.api.json +0 -21737
  88. package/docs/common.api.md +0 -1139
  89. package/docs/package-public.d.ts +0 -952
  90. package/docs/tsdoc-metadata.json +0 -11
@@ -106,6 +106,9 @@ export declare class CallbackList<Argument extends unknown[]> {
106
106
  protected stop: boolean;
107
107
  constructor();
108
108
  count(): number;
109
+ /**
110
+ * remove all callback
111
+ */
109
112
  reset(): void;
110
113
  /**
111
114
  * @param name optional name of `item` (will assign displayName to `item`)
@@ -117,6 +120,7 @@ export declare class CallbackList<Argument extends unknown[]> {
117
120
  */
118
121
  remove(item: MyCallback<Argument>): null | MyCallback<Argument>;
119
122
  /**
123
+ * in a callback, call this.stopRun() to stop remain callbacks (not by return false)
120
124
  * @returns {boolean} true if every callback called, false if stop in middle
121
125
  */
122
126
  run(...argument: Argument): boolean;
@@ -156,6 +160,12 @@ export declare enum ColorKind {
156
160
  DETECT = 3
157
161
  }
158
162
 
163
+ /**
164
+ *
165
+ * GENERATED FILE, DO NOT MODIFY
166
+ * 这是生成的文件,千万不要修改
167
+ *
168
+ */
159
169
  export declare function concatStringType<T0 extends string>(t0: T0): `${T0}`;
160
170
 
161
171
  export declare function concatStringType<T0 extends string, T1 extends string>(t0: T0, t1: T1): `${T0}${T1}`;
@@ -106,6 +106,9 @@ export declare class CallbackList<Argument extends unknown[]> {
106
106
  protected stop: boolean;
107
107
  constructor();
108
108
  count(): number;
109
+ /**
110
+ * remove all callback
111
+ */
109
112
  reset(): void;
110
113
  /**
111
114
  * @param name optional name of `item` (will assign displayName to `item`)
@@ -117,6 +120,7 @@ export declare class CallbackList<Argument extends unknown[]> {
117
120
  */
118
121
  remove(item: MyCallback<Argument>): null | MyCallback<Argument>;
119
122
  /**
123
+ * in a callback, call this.stopRun() to stop remain callbacks (not by return false)
120
124
  * @returns {boolean} true if every callback called, false if stop in middle
121
125
  */
122
126
  run(...argument: Argument): boolean;
@@ -156,6 +160,12 @@ export declare enum ColorKind {
156
160
  DETECT = 3
157
161
  }
158
162
 
163
+ /**
164
+ *
165
+ * GENERATED FILE, DO NOT MODIFY
166
+ * 这是生成的文件,千万不要修改
167
+ *
168
+ */
159
169
  export declare function concatStringType<T0 extends string>(t0: T0): `${T0}`;
160
170
 
161
171
  export declare function concatStringType<T0 extends string, T1 extends string>(t0: T0, t1: T1): `${T0}${T1}`;
@@ -104,6 +104,9 @@ export declare class CallbackList<Argument extends unknown[]> {
104
104
  protected stop: boolean;
105
105
  constructor();
106
106
  count(): number;
107
+ /**
108
+ * remove all callback
109
+ */
107
110
  reset(): void;
108
111
  /**
109
112
  * @param name optional name of `item` (will assign displayName to `item`)
@@ -115,6 +118,7 @@ export declare class CallbackList<Argument extends unknown[]> {
115
118
  */
116
119
  remove(item: MyCallback<Argument>): null | MyCallback<Argument>;
117
120
  /**
121
+ * in a callback, call this.stopRun() to stop remain callbacks (not by return false)
118
122
  * @returns {boolean} true if every callback called, false if stop in middle
119
123
  */
120
124
  run(...argument: Argument): boolean;
@@ -154,6 +158,12 @@ export declare enum ColorKind {
154
158
  DETECT = 3
155
159
  }
156
160
 
161
+ /**
162
+ *
163
+ * GENERATED FILE, DO NOT MODIFY
164
+ * 这是生成的文件,千万不要修改
165
+ *
166
+ */
157
167
  export declare function concatStringType<T0 extends string>(t0: T0): `${T0}`;
158
168
 
159
169
  export declare function concatStringType<T0 extends string, T1 extends string>(t0: T0, t1: T1): `${T0}${T1}`;
@@ -106,6 +106,9 @@ export declare class CallbackList<Argument extends unknown[]> {
106
106
  protected stop: boolean;
107
107
  constructor();
108
108
  count(): number;
109
+ /**
110
+ * remove all callback
111
+ */
109
112
  reset(): void;
110
113
  /**
111
114
  * @param name optional name of `item` (will assign displayName to `item`)
@@ -117,6 +120,7 @@ export declare class CallbackList<Argument extends unknown[]> {
117
120
  */
118
121
  remove(item: MyCallback<Argument>): null | MyCallback<Argument>;
119
122
  /**
123
+ * in a callback, call this.stopRun() to stop remain callbacks (not by return false)
120
124
  * @returns {boolean} true if every callback called, false if stop in middle
121
125
  */
122
126
  run(...argument: Argument): boolean;
@@ -156,6 +160,12 @@ export declare enum ColorKind {
156
160
  DETECT = 3
157
161
  }
158
162
 
163
+ /**
164
+ *
165
+ * GENERATED FILE, DO NOT MODIFY
166
+ * 这是生成的文件,千万不要修改
167
+ *
168
+ */
159
169
  export declare function concatStringType<T0 extends string>(t0: T0): `${T0}`;
160
170
 
161
171
  export declare function concatStringType<T0 extends string, T1 extends string>(t0: T0, t1: T1): `${T0}${T1}`;
@@ -15,6 +15,9 @@ class CallbackList {
15
15
  count() {
16
16
  return this.list.length;
17
17
  }
18
+ /**
19
+ * remove all callback
20
+ */
18
21
  reset() {
19
22
  if (this.running) {
20
23
  throw new Error("Can not reset when it's running.");
@@ -48,6 +51,7 @@ class CallbackList {
48
51
  return null;
49
52
  }
50
53
  /**
54
+ * in a callback, call this.stopRun() to stop remain callbacks (not by return false)
51
55
  * @returns {boolean} true if every callback called, false if stop in middle
52
56
  */
53
57
  run(...argument) {
@@ -1 +1 @@
1
- {"version":3,"file":"callbackList.js","sourceRoot":"","sources":["../../src/function/callbackList.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAQ9C;;GAEG;AACH,MAAa,YAAY;IACd,IAAI,GAA2B,EAAE,CAAC;IAClC,OAAO,GAAY,KAAK,CAAC;IACzB,IAAI,GAAY,KAAK,CAAC;IAEhC;QACC,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,KAAK;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAA0B,EAAE,IAAa;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC3D;QACD,IAAI,IAAI,EAAE;YACT,IAAA,2BAAY,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAA0B;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,QAAkB;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACrB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;SAChB;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,OAAO;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD;AAxED,oCAwEC"}
1
+ {"version":3,"file":"callbackList.js","sourceRoot":"","sources":["../../src/function/callbackList.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAQ9C;;GAEG;AACH,MAAa,YAAY;IACd,IAAI,GAA2B,EAAE,CAAC;IAClC,OAAO,GAAY,KAAK,CAAC;IACzB,IAAI,GAAY,KAAK,CAAC;IAEhC;QACC,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAA0B,EAAE,IAAa;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC3D;QACD,IAAI,IAAI,EAAE;YACT,IAAA,2BAAY,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAA0B;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,GAAG,QAAkB;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACrB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;SAChB;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,OAAO;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD;AA5ED,oCA4EC"}
@@ -12,6 +12,9 @@ export class CallbackList {
12
12
  count() {
13
13
  return this.list.length;
14
14
  }
15
+ /**
16
+ * remove all callback
17
+ */
15
18
  reset() {
16
19
  if (this.running) {
17
20
  throw new Error("Can not reset when it's running.");
@@ -45,6 +48,7 @@ export class CallbackList {
45
48
  return null;
46
49
  }
47
50
  /**
51
+ * in a callback, call this.stopRun() to stop remain callbacks (not by return false)
48
52
  * @returns {boolean} true if every callback called, false if stop in middle
49
53
  */
50
54
  run(...argument) {
@@ -1 +1 @@
1
- {"version":3,"file":"callbackList.js","sourceRoot":"","sources":["../../src/function/callbackList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAQ9C;;GAEG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,GAA2B,EAAE,CAAC;IAClC,OAAO,GAAY,KAAK,CAAC;IACzB,IAAI,GAAY,KAAK,CAAC;IAEhC;QACC,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,KAAK;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAA0B,EAAE,IAAa;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC3D;QACD,IAAI,IAAI,EAAE;YACT,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAA0B;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,QAAkB;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACrB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;SAChB;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,OAAO;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD"}
1
+ {"version":3,"file":"callbackList.js","sourceRoot":"","sources":["../../src/function/callbackList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAQ9C;;GAEG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,GAA2B,EAAE,CAAC;IAClC,OAAO,GAAY,KAAK,CAAC;IACzB,IAAI,GAAY,KAAK,CAAC;IAEhC;QACC,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAA0B,EAAE,IAAa;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC3D;QACD,IAAI,IAAI,EAAE;YACT,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAA0B;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,GAAG,QAAkB;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACrB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;SAChB;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,OAAO;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD"}
@@ -1,4 +1,12 @@
1
1
  "use strict";
2
+ /* eslint-disable */
3
+ // @ts-ignore
4
+ /**
5
+ *
6
+ * GENERATED FILE, DO NOT MODIFY
7
+ * 这是生成的文件,千万不要修改
8
+ *
9
+ */
2
10
  Object.defineProperty(exports, "__esModule", { value: true });
3
11
  exports.concatStringType = void 0;
4
12
  /* copy */
@@ -1 +1 @@
1
- {"version":3,"file":"concatType.generated.js","sourceRoot":"","sources":["../../src/string/concatType.generated.ts"],"names":[],"mappings":";;;AA2PA,UAAU;AACV,SAAgB,gBAAgB,CAAC,CAAW;IAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AAFD,4CAEC"}
1
+ {"version":3,"file":"concatType.generated.js","sourceRoot":"","sources":["../../src/string/concatType.generated.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,aAAa;AACb;;;;;GAKG;;;AA8PH,UAAU;AACV,SAAgB,gBAAgB,CAAC,CAAW;IAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC;AAFD,4CAEC"}
@@ -1,3 +1,11 @@
1
+ /* eslint-disable */
2
+ // @ts-ignore
3
+ /**
4
+ *
5
+ * GENERATED FILE, DO NOT MODIFY
6
+ * 这是生成的文件,千万不要修改
7
+ *
8
+ */
1
9
  /* copy */
2
10
  export function concatStringType(a) {
3
11
  return a.join('');
@@ -1 +1 @@
1
- {"version":3,"file":"concatType.generated.js","sourceRoot":"","sources":["../../src/string/concatType.generated.ts"],"names":[],"mappings":"AA2PA,UAAU;AACV,MAAM,UAAU,gBAAgB,CAAC,CAAW;IAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"concatType.generated.js","sourceRoot":"","sources":["../../src/string/concatType.generated.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,aAAa;AACb;;;;;GAKG;AA8PH,UAAU;AACV,MAAM,UAAU,gBAAgB,CAAC,CAAW;IAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.29.2"
8
+ "packageVersion": "7.33.6"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@idlebox/common",
3
3
  "type": "module",
4
- "version": "1.3.15",
4
+ "version": "1.3.16",
5
5
  "license": "MIT",
6
6
  "main": "./lib/index.generated.cjs",
7
7
  "module": "./lib/index.generated.js",
@@ -12,21 +12,20 @@
12
12
  },
13
13
  "./package.json": "./package.json"
14
14
  },
15
- "types": "./dist/common-public.d.ts",
15
+ "types": "./lib/common-public.d.ts",
16
16
  "repository": "https://github.com/GongT/baobao",
17
17
  "dependencies": {
18
- "tslib": "^2.4.0"
18
+ "tslib": "^2.4.1"
19
19
  },
20
20
  "devDependencies": {
21
- "@build-script/codegen": "^0.0.3",
22
- "@build-script/heft-duel-stack": "^1.0.4",
23
- "@build-script/single-dog-asset": "^1.0.22",
24
- "@build-script/typescript-transformer-dual-package": "^2.0.2",
25
- "@idlebox/itypes": "^1.0.3",
26
- "@rushstack/heft": "^0.47.2",
27
- "local-rig": "^1.0.0",
21
+ "@rushstack/heft": "^0.48.8",
28
22
  "source-map-support": "^0.5.21",
29
- "typescript": "^4.7.4"
23
+ "typescript": "^4.8.4",
24
+ "@build-script/heft-duel-stack": "1.0.7",
25
+ "@build-script/single-dog-asset": "1.0.23",
26
+ "@build-script/codegen": "0.0.6",
27
+ "local-rig": "1.0.1",
28
+ "@idlebox/itypes": "1.0.4"
30
29
  },
31
30
  "monorepo": "rush",
32
31
  "jspm": {
@@ -36,7 +35,8 @@
36
35
  "scripts": {
37
36
  "test": "heft test",
38
37
  "lint": "heft build",
39
- "build": "heft test",
38
+ "build": "heft build --production",
39
+ "build:watch": "heft build --lite",
40
40
  "watch": "heft build --watch",
41
41
  "clean": "heft clean"
42
42
  }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export interface IArrayUpdate<T> {
5
+ add: T[];
6
+ del: T[];
7
+ same: T[];
8
+ }
9
+
10
+ /**
11
+ * Compare two array, returns the difference from `before` to `after`
12
+ * @public
13
+ */
14
+ export function arrayDiff<T>(_before: readonly T[], after: readonly T[]) {
15
+ const before = _before.slice().sort();
16
+ const add: T[] = after.slice().sort();
17
+ const del: T[] = [];
18
+ const same: T[] = [];
19
+ next: while (before.length) {
20
+ const item = before.pop()!;
21
+ for (let j = add.length - 1; j >= 0; j--) {
22
+ if (item === add[j]) {
23
+ same.push(item);
24
+ add.splice(j, 1);
25
+ continue next;
26
+ }
27
+ }
28
+ del.push(item);
29
+ }
30
+ return { add, del, same };
31
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * is the two array EXACTLY same
3
+ * @public
4
+ */
5
+ export function isArraySame<T>(a1: readonly T[], a2: readonly T[]): boolean {
6
+ if (a1.length !== a2.length) {
7
+ return false;
8
+ }
9
+ for (let i = a1.length - 1; i >= 0; i--) {
10
+ if (a1[i] !== a2[i]) {
11
+ return false;
12
+ }
13
+ }
14
+ return true;
15
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Returns a new array without duplicate values
3
+ * @public
4
+ */
5
+ export function arrayUnique<T>(arr: readonly T[]): T[] {
6
+ return arr.filter((item, index) => {
7
+ return arr.lastIndexOf(item) === index;
8
+ });
9
+ }
10
+
11
+ /**
12
+ * Removes duplicate values from an array
13
+ * @public
14
+ */
15
+ export function arrayUniqueReference(arr: any[]): void {
16
+ for (let index = arr.length - 1; index >= 0; index--) {
17
+ if (arr.lastIndexOf(arr[index]) !== index) {
18
+ arr.splice(index, 1);
19
+ }
20
+ }
21
+ }
22
+
23
+ export interface IUniqueIdFactory<T> {
24
+ (item: T): string;
25
+ }
26
+
27
+ function defaultFactory(t: any) {
28
+ return t as string;
29
+ }
30
+
31
+ /**
32
+ * Returns a function to be used in <arr>.filter()
33
+ *
34
+ * the returned function can use multiple times, it will remember all values inter multiple arrays
35
+ *
36
+ * @param {IUniqueIdFactory} idFactory function takes an array element, return it's id to be compare with each other
37
+ * @public
38
+ */
39
+ export function uniqueFilter<T>(idFactory: IUniqueIdFactory<T> = defaultFactory) {
40
+ const seen: { [id: string]: true } = {};
41
+ return function uniqueFilterInner(item: T): boolean {
42
+ const id = idFactory(item);
43
+ if (seen[id]) {
44
+ return false;
45
+ } else {
46
+ seen[id] = true;
47
+ return true;
48
+ }
49
+ };
50
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ensure a value is an array
3
+ * @public
4
+ */
5
+ export function normalizeArray<T>(input: T | T[]): T[] {
6
+ if (input && Array.isArray(input)) {
7
+ return input;
8
+ } else if (typeof input !== undefined) {
9
+ return [input];
10
+ } else {
11
+ return [];
12
+ }
13
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Sort string array alphabet order
3
+ *
4
+ * to be used in <arr>.sort()
5
+ * @public
6
+ */
7
+ export function sortByString(a: string, b: string): number {
8
+ if (a === b) {
9
+ return 0;
10
+ } else if (a > b) {
11
+ return 1;
12
+ } else {
13
+ return -1;
14
+ }
15
+ }
@@ -0,0 +1,5 @@
1
+ export const oneSecond = 1000;
2
+ export const oneMinute = 60000;
3
+ export const oneHour = 1440000;
4
+ export const oneDay = 86400000;
5
+ export const oneWeek = 604800000;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check if a date is NaN
3
+ */
4
+ export function isDateInvalid(date: Date) {
5
+ return isNaN(date.getTime());
6
+ }
@@ -0,0 +1,28 @@
1
+ export function nextSecond(d: Date, n = 1) {
2
+ d.setSeconds(d.getSeconds() + n);
3
+ return d;
4
+ }
5
+ export function nextMinute(d: Date, n = 1) {
6
+ d.setMinutes(d.getMinutes() + n);
7
+ return d;
8
+ }
9
+ export function nextHour(d: Date, n = 1) {
10
+ d.setHours(d.getHours() + n);
11
+ return d;
12
+ }
13
+ export function nextDay(d: Date, n = 1) {
14
+ d.setDate(d.getDate() + n);
15
+ return d;
16
+ }
17
+ export function nextWeek(d: Date, n = 1) {
18
+ d.setDate(d.getDate() + n * 7);
19
+ return d;
20
+ }
21
+ export function nextMonth(d: Date, n = 1) {
22
+ d.setMonth(d.getMonth() + n);
23
+ return d;
24
+ }
25
+ export function nextYear(d: Date, n = 1) {
26
+ d.setFullYear(d.getFullYear() + n);
27
+ return d;
28
+ }
@@ -0,0 +1,150 @@
1
+ import { pad2 } from '../string/pad2';
2
+
3
+ export namespace humanDate {
4
+ /**
5
+ * Format: HH:mm:ss
6
+ */
7
+ export function time(date: Date | string | number) {
8
+ if (typeof date === 'string') {
9
+ date = parseInt(date);
10
+ }
11
+ date = new Date(date as number);
12
+ return `${pad2(date.getHours())}:${pad2(date.getMinutes())}:${pad2(date.getSeconds())}`;
13
+ }
14
+
15
+ /**
16
+ * Format: YYYY-MM-dd
17
+ *
18
+ * separator can change
19
+ */
20
+ export function date(date: Date | string | number, sp = '-') {
21
+ if (typeof date === 'string') {
22
+ date = parseInt(date);
23
+ }
24
+ date = new Date(date as number);
25
+ return `${date.getFullYear()}${sp}${pad2(date.getMonth() + 1)}${sp}${pad2(date.getDate())}`;
26
+ }
27
+
28
+ /**
29
+ * Format: YYYY-MM-dd HH:mm:ss
30
+ */
31
+ export function datetime(date: Date | string | number) {
32
+ if (typeof date === 'string') {
33
+ date = parseInt(date);
34
+ }
35
+ date = new Date(date as number);
36
+ return (
37
+ `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}` +
38
+ ' ' +
39
+ `${pad2(date.getHours())}:${pad2(date.getMinutes())}:${pad2(date.getSeconds())}`
40
+ );
41
+ }
42
+
43
+ export interface ITimeFormatter {
44
+ (s: number): string;
45
+ }
46
+
47
+ export interface IFormatters {
48
+ s: ITimeFormatter;
49
+ m: ITimeFormatter;
50
+ h: ITimeFormatter;
51
+ d: ITimeFormatter;
52
+ }
53
+
54
+ const formatters: IFormatters = {
55
+ s(v: number) {
56
+ return v + 's';
57
+ },
58
+ m(v: number) {
59
+ return v + 'm';
60
+ },
61
+ h(v: number) {
62
+ return v + 'h';
63
+ },
64
+ d(v: number) {
65
+ return v + 'd';
66
+ },
67
+ };
68
+
69
+ /**
70
+ * set format for time delta
71
+ */
72
+ export function setLocaleFormatter(formatter: Partial<IFormatters>) {
73
+ Object.assign(formatters, formatter);
74
+ }
75
+
76
+ /**
77
+ * format time delta (in ms) to string, like: '1d'
78
+ * when ms<=0, returns '0s'
79
+ *
80
+ * format can set by `setLocaleFormatter`
81
+ * day is the largest unit
82
+ */
83
+ export function deltaTiny(ms: number) {
84
+ if (ms <= 0) {
85
+ return '0s';
86
+ }
87
+ if (ms > 86400000) {
88
+ return formatters.d(Math.floor(ms / 86400000));
89
+ }
90
+ if (ms > 3600000) {
91
+ return formatters.h(Math.floor(ms / 3600000));
92
+ }
93
+ if (ms > 60000) {
94
+ return formatters.m(Math.floor(ms / 60000));
95
+ }
96
+ return formatters.s(Math.floor(ms / 1000));
97
+ }
98
+
99
+ /**
100
+ * format time delta (in ms) to string, like: '1d10m42s'
101
+ * when ms<=0, returns '0s'
102
+ *
103
+ * format can set by `setLocaleFormatter`
104
+ * day is the largest unit
105
+ */
106
+ export function delta(ms: number) {
107
+ let ret = '';
108
+ let val = Math.ceil(ms / 1000);
109
+
110
+ if (val <= 0) {
111
+ return '0s';
112
+ }
113
+
114
+ // sec
115
+ const s = val % 60;
116
+ val = Math.floor(val / 60);
117
+ if (s > 0) {
118
+ ret = formatters.s(s);
119
+ }
120
+ if (val === 0) {
121
+ return ret;
122
+ }
123
+
124
+ // min
125
+ const m = val % 60;
126
+ val = Math.floor(val / 60);
127
+ if (m > 0) {
128
+ ret = formatters.m(m) + ret;
129
+ }
130
+ if (val === 0) {
131
+ return ret;
132
+ }
133
+
134
+ // hour
135
+ const h = val % 24;
136
+ val = Math.floor(val / 24);
137
+ if (h > 0) {
138
+ ret = formatters.h(h) + ret;
139
+ }
140
+ if (val === 0) {
141
+ return ret;
142
+ }
143
+
144
+ // day
145
+ if (val > 0) {
146
+ ret = formatters.d(h) + ret;
147
+ }
148
+ return ret;
149
+ }
150
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns ms
3
+ */
4
+ export function getTimeStamp(date: Date) {
5
+ return Math.floor(date.getTime() / 1000);
6
+ }
7
+
8
+ /**
9
+ * Takes ms
10
+ */
11
+ export function fromTimeStamp(timestamp: number) {
12
+ return new Date(1000 * timestamp);
13
+ }