@mirta/basics 0.1.0 → 0.1.2

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/dist/index.d.ts CHANGED
@@ -29,6 +29,10 @@ declare const isBoolean: (value: unknown) => value is boolean;
29
29
  declare const isFunction: (value: unknown) => value is ((...args: unknown[]) => unknown);
30
30
 
31
31
  type EventHandler = (...args: unknown[]) => void;
32
+ type OnEvent<THandler extends EventHandler> = (handler: THandler) => {
33
+ off: () => void;
34
+ };
35
+ type OnceEvent<THandler extends EventHandler> = (handler: THandler) => void;
32
36
  interface Event<THandler extends EventHandler> {
33
37
  /**
34
38
  * Подписывает на событие, есть возможность отписки.
@@ -42,9 +46,7 @@ interface Event<THandler extends EventHandler> {
42
46
  * subscription.off()
43
47
  * ```
44
48
  **/
45
- on: (handler: THandler) => {
46
- off: () => void;
47
- };
49
+ on: OnEvent<THandler>;
48
50
  /**
49
51
  * Подписывает на событие, однократное выполнение.
50
52
  * @example
@@ -55,7 +57,7 @@ interface Event<THandler extends EventHandler> {
55
57
  * stateChanged.once(() => { ... })
56
58
  * ```
57
59
  **/
58
- once: (handler: THandler) => void;
60
+ once: OnceEvent<THandler>;
59
61
  /**
60
62
  * Отписывает указанный обработчик от прослушивания события.
61
63
  * @example
@@ -99,8 +101,10 @@ interface EventRaiser<THandler extends EventHandler> extends Event<THandler> {
99
101
  * ```
100
102
  * @example
101
103
  * ```ts
102
- * // Событие с аргументами заданного типа.
103
- * const countChanged = useEvent<number>()
104
+ * // Тип обработчика события.
105
+ * type CountEventHandler = (value: number) => void
106
+ * // Событие с передачей типа обработчика.
107
+ * const countChanged = useEvent<CountEventHandler>()
104
108
  * // Регистрация обработчика события.
105
109
  * countChanged.on((value) => { ... })
106
110
  * // Генерация события.
@@ -110,4 +114,4 @@ interface EventRaiser<THandler extends EventHandler> extends Event<THandler> {
110
114
  declare function useEvent<THandler extends EventHandler>(): EventRaiser<THandler>;
111
115
 
112
116
  export { debounce, isBoolean, isFunction, isNumber, isString, throttle, useEvent };
113
- export type { Event, EventHandler, EventRaiser };
117
+ export type { Event, EventHandler, EventRaiser, OnEvent, OnceEvent };
package/dist/index.mjs CHANGED
@@ -112,8 +112,10 @@ const isFunction = (value) => typeof value === 'function';
112
112
  * ```
113
113
  * @example
114
114
  * ```ts
115
- * // Событие с аргументами заданного типа.
116
- * const countChanged = useEvent<number>()
115
+ * // Тип обработчика события.
116
+ * type CountEventHandler = (value: number) => void
117
+ * // Событие с передачей типа обработчика.
118
+ * const countChanged = useEvent<CountEventHandler>()
117
119
  * // Регистрация обработчика события.
118
120
  * countChanged.on((value) => { ... })
119
121
  * // Генерация события.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mirta/basics",
3
3
  "description": "Utility functions providing core functionality for the Mirta Framework.",
4
- "version": "0.1.0",
4
+ "version": "0.1.2",
5
5
  "license": "Unlicense",
6
6
  "keywords": [
7
7
  "mirta",