@idlebox/common 1.3.3 → 1.3.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.
Files changed (68) hide show
  1. package/docs/package-public.d.ts +4 -3
  2. package/lib/_export_all_in_one_index.cjs.map +10 -1
  3. package/lib/array/arrayDiff.cjs.map +10 -1
  4. package/lib/array/arraySame.cjs.map +10 -1
  5. package/lib/array/arrayUnique.cjs.map +10 -1
  6. package/lib/array/normalizeArray.cjs.map +10 -1
  7. package/lib/array/sortAlpha.cjs.map +10 -1
  8. package/lib/date/consts.cjs.map +10 -1
  9. package/lib/date/isInvalid.cjs.map +10 -1
  10. package/lib/date/sibling.cjs.map +10 -1
  11. package/lib/date/timeString.cjs.map +10 -1
  12. package/lib/date/unix.cjs.map +10 -1
  13. package/lib/debugging/tryInspect.cjs.map +10 -1
  14. package/lib/error/convertUnknown.cjs.map +10 -1
  15. package/lib/error/getFrame.cjs.map +10 -1
  16. package/lib/function/asyncCallbackList.cjs.map +10 -1
  17. package/lib/function/callbackList.cjs +21 -6
  18. package/lib/function/callbackList.cjs.map +10 -1
  19. package/lib/function/callbackList.js +16 -6
  20. package/lib/function/callbackList.js.map +1 -1
  21. package/lib/function/delayCallbackList.cjs.map +10 -1
  22. package/lib/function/functionName.cjs.map +10 -1
  23. package/lib/lifecycle/dispose/bridges/rxjs.cjs.map +10 -1
  24. package/lib/lifecycle/dispose/disposableEvent.cjs.map +10 -1
  25. package/lib/lifecycle/dispose/disposedError.cjs.map +10 -1
  26. package/lib/lifecycle/dispose/lifecycle.async.cjs.map +10 -1
  27. package/lib/lifecycle/dispose/lifecycle.cjs.map +10 -1
  28. package/lib/lifecycle/dispose/lifecycle.global.cjs.map +10 -1
  29. package/lib/lifecycle/dispose/lifecycle.sync.cjs.map +10 -1
  30. package/lib/lifecycle/event/event.cjs.map +10 -1
  31. package/lib/lifecycle/promise/cancel.cjs.map +10 -1
  32. package/lib/lifecycle/promise/cancellationToken/driver.browser.cjs.map +10 -1
  33. package/lib/lifecycle/promise/cancellationToken/driver.common.cjs.map +10 -1
  34. package/lib/lifecycle/promise/cancellationToken/source.cjs.map +10 -1
  35. package/lib/lifecycle/promise/deferredPromise.cjs.map +10 -1
  36. package/lib/lifecycle/timeout/timeout.cjs.map +10 -1
  37. package/lib/lifecycle/timeout/timeoutError.cjs.map +10 -1
  38. package/lib/log/logger.cjs.map +10 -1
  39. package/lib/mapSet/customSet.cjs.map +10 -1
  40. package/lib/mapSet/extendMap.cjs.map +10 -1
  41. package/lib/misc/assertNotNull.cjs.map +10 -1
  42. package/lib/object/definePublicConstant.cjs.map +10 -1
  43. package/lib/object/initOnRead.cjs.map +10 -1
  44. package/lib/object/objectPath.cjs.map +10 -1
  45. package/lib/object/objectSame.cjs.map +10 -1
  46. package/lib/path/isAbsolute.cjs.map +10 -1
  47. package/lib/path/normalizePath.cjs.map +10 -1
  48. package/lib/path/pathArray.cjs.map +10 -1
  49. package/lib/platform/globalObject.cjs.map +10 -1
  50. package/lib/platform/globalSingleton.cjs.map +10 -1
  51. package/lib/platform/globalSymbol.cjs.map +10 -1
  52. package/lib/platform/os.cjs.map +10 -1
  53. package/lib/promise/awaitIterator.cjs.map +10 -1
  54. package/lib/promise/finishAllPromise.cjs.map +10 -1
  55. package/lib/promise/promiseBool.cjs.map +10 -1
  56. package/lib/promise/promisePool.cjs.map +10 -1
  57. package/lib/promise/timeoutPromisePool.cjs.map +10 -1
  58. package/lib/reflection/classes/hookClass.cjs.map +10 -1
  59. package/lib/reflection/classes/singleton.cjs.map +10 -1
  60. package/lib/reflection/methods/bind.cjs.map +10 -1
  61. package/lib/reflection/methods/initOnRead.cjs.map +10 -1
  62. package/lib/reflection/methods/memorize.cjs.map +10 -1
  63. package/lib/string/castCase.cjs.map +10 -1
  64. package/lib/string/escapeRegexp.cjs.map +10 -1
  65. package/lib/string/pad2.cjs.map +10 -1
  66. package/lib/string/sizeString.cjs.map +10 -1
  67. package/package.json +6 -7
  68. package/src/function/callbackList.ts +19 -7
@@ -3,7 +3,7 @@ import { nameFunction } from './functionName';
3
3
  export interface MyCallback<Argument extends unknown[]> {
4
4
  displayName?: string;
5
5
 
6
- (...param: Argument): void | undefined | boolean;
6
+ (...param: Argument): any;
7
7
  }
8
8
 
9
9
  /**
@@ -12,6 +12,7 @@ export interface MyCallback<Argument extends unknown[]> {
12
12
  export class CallbackList<Argument extends unknown[]> {
13
13
  protected list: MyCallback<Argument>[] = [];
14
14
  protected running: boolean = false;
15
+ protected stop: boolean = false;
15
16
 
16
17
  constructor() {
17
18
  this.run = (this.run as any).bind(this);
@@ -57,16 +58,27 @@ export class CallbackList<Argument extends unknown[]> {
57
58
  }
58
59
 
59
60
  /**
60
- * Stop run if one callback return `true`
61
- * @returns {boolean} true if one callback return true
61
+ * @returns {boolean} true if every callback called, false if stop in middle
62
62
  */
63
63
  run(...argument: Argument): boolean {
64
+ if (this.running) {
65
+ throw new Error("can not run CallbackList in it's callback.");
66
+ }
67
+ this.stop = false;
68
+
64
69
  this.running = true;
65
- const ret = this.list.some((cb) => {
66
- const ret = cb(...argument);
67
- return ret === undefined || ret;
68
- });
70
+ for (const cb of this.list) {
71
+ if (this.stop) break;
72
+ cb(...argument);
73
+ }
69
74
  this.running = false;
75
+
76
+ const ret = !this.stop;
77
+ this.stop = false;
70
78
  return ret;
71
79
  }
80
+
81
+ stopRun() {
82
+ this.stop = true;
83
+ }
72
84
  }