@endge/utils 0.25.3 → 0.26.0
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/collection/collection.d.ts +7 -7
- package/dist/collection/indexed-collection.d.ts +16 -16
- package/dist/database/PayloadHttpClient.d.ts +3 -3
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/Subscribable.d.ts +12 -0
- package/dist/execute/NamedExecutor.d.ts +7 -7
- package/dist/execute/delay-executor.d.ts +8 -8
- package/dist/index.d.ts +3 -2
- package/dist/shared/types/getter-fn.d.ts +1 -1
- package/dist/shared/utils/compare.d.ts +1 -1
- package/dist/shared/utils/time.d.ts +4 -4
- package/dist/tools/console.d.ts +2 -2
- package/dist/tools/hotkeys.d.ts +8 -8
- package/dist/tools/keyboard.d.ts +2 -2
- package/dist/tools/logs.d.ts +7 -7
- package/dist/tools/tools.types.d.ts +2 -2
- package/dist/utils.js +374 -364
- package/package.json +3 -2
- package/dist/events/ChangeNotifier.d.ts +0 -8
- /package/dist/shared/types/{maybe.d.ts → Maybe.d.ts} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { CollectionEntity, CollectionEvents } from './collection.types';
|
|
2
|
-
import {
|
|
2
|
+
import { Subscribable } from '../events/Subscribable';
|
|
3
3
|
/**
|
|
4
4
|
* Описывает ответственность Collection в архитектуре проекта.
|
|
5
5
|
*/
|
|
6
|
-
export declare class Collection<T extends CollectionEntity> extends
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
private
|
|
6
|
+
export declare class Collection<T extends CollectionEntity> extends Subscribable {
|
|
7
|
+
private _items;
|
|
8
|
+
private _indices;
|
|
9
|
+
private _rootIds;
|
|
10
|
+
private _bus;
|
|
11
11
|
/**
|
|
12
12
|
* Создает экземпляр Collection и подготавливает базовое состояние.
|
|
13
13
|
*/
|
|
@@ -31,7 +31,7 @@ export declare class Collection<T extends CollectionEntity> extends ChangeNotifi
|
|
|
31
31
|
/**
|
|
32
32
|
* Создает runtime-сущность Collection.
|
|
33
33
|
*/
|
|
34
|
-
private
|
|
34
|
+
private _createIndex;
|
|
35
35
|
/**
|
|
36
36
|
* Возвращает реактивный массив всех элементов.
|
|
37
37
|
*/
|
|
@@ -14,16 +14,16 @@ import { OneOrMany } from '../tools/tools.types';
|
|
|
14
14
|
* - При изменении filterFn можно пересобрать filteredList без пересортировки list.
|
|
15
15
|
*/
|
|
16
16
|
export declare class IndexedCollection<T extends IndexCollectionEntity<ID>, ID = string | null> {
|
|
17
|
-
private
|
|
18
|
-
private
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
private
|
|
17
|
+
private _list;
|
|
18
|
+
private _filteredList;
|
|
19
|
+
private _map;
|
|
20
|
+
private _indexById;
|
|
21
|
+
private _dirtySort;
|
|
22
|
+
private _dirtyFilter;
|
|
23
|
+
private _sortFn?;
|
|
24
|
+
private _filterFn?;
|
|
25
|
+
private _indexEnabled;
|
|
26
|
+
private _filterIndexEnabled;
|
|
27
27
|
/**
|
|
28
28
|
* Создает экземпляр IndexedCollection и подготавливает базовое состояние.
|
|
29
29
|
*/
|
|
@@ -116,25 +116,25 @@ export declare class IndexedCollection<T extends IndexCollectionEntity<ID>, ID =
|
|
|
116
116
|
/**
|
|
117
117
|
* Выполняет внутренний шаг rebuildFilteredFromScratch для IndexedCollection.
|
|
118
118
|
*/
|
|
119
|
-
private
|
|
119
|
+
private _rebuildFilteredFromScratch;
|
|
120
120
|
/**
|
|
121
121
|
* Выполняет внутренний шаг addToFilteredIfPasses для IndexedCollection.
|
|
122
122
|
*/
|
|
123
|
-
private
|
|
123
|
+
private _addToFilteredIfPasses;
|
|
124
124
|
/**
|
|
125
125
|
* Добавляет сущность в runtime-коллекцию IndexedCollection.
|
|
126
126
|
*/
|
|
127
|
-
private
|
|
127
|
+
private _appendToFiltered;
|
|
128
128
|
/**
|
|
129
129
|
* Выполняет внутренний шаг refilterOneO1 для IndexedCollection.
|
|
130
130
|
*/
|
|
131
|
-
private
|
|
131
|
+
private _refilterOneO1;
|
|
132
132
|
/**
|
|
133
133
|
* Удаляет сущность из runtime-коллекции IndexedCollection.
|
|
134
134
|
*/
|
|
135
|
-
private
|
|
135
|
+
private _removeFromFilteredO1;
|
|
136
136
|
/**
|
|
137
137
|
* Удаляет сущность из runtime-коллекции IndexedCollection.
|
|
138
138
|
*/
|
|
139
|
-
private
|
|
139
|
+
private _removeFromListO1;
|
|
140
140
|
}
|
|
@@ -2,10 +2,10 @@ export interface PayloadClientOptions {
|
|
|
2
2
|
baseUrl: string;
|
|
3
3
|
}
|
|
4
4
|
export declare class PayloadHttpClient {
|
|
5
|
-
private readonly
|
|
5
|
+
private readonly _baseUrl;
|
|
6
6
|
constructor(opts: PayloadClientOptions);
|
|
7
|
-
private
|
|
8
|
-
private
|
|
7
|
+
private _buildUrl;
|
|
8
|
+
private _buildHeaders;
|
|
9
9
|
get<T>(path: string, query?: Record<string, unknown>, extraHeaders?: HeadersInit): Promise<T>;
|
|
10
10
|
post<T>(path: string, body?: unknown, extraHeaders?: HeadersInit): Promise<T>;
|
|
11
11
|
patch<T>(path: string, body?: unknown, extraHeaders?: HeadersInit): Promise<T>;
|
|
@@ -36,7 +36,7 @@ export type EventList = Record<string, any>;
|
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
38
|
export declare class EventBus<StaticEvents extends Record<string, any>, CustomEventMap extends Record<string, any> = Record<string, any>> {
|
|
39
|
-
private
|
|
39
|
+
private _listeners;
|
|
40
40
|
/**
|
|
41
41
|
* Создает экземпляр EventBus и подготавливает базовое состояние.
|
|
42
42
|
*/
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Минимальный framework-independent contract объекта с подпиской на изменения. */
|
|
2
|
+
export interface SubscribableLike {
|
|
3
|
+
subscribe: (listener: () => void) => () => void;
|
|
4
|
+
}
|
|
5
|
+
/** Публикует изменения владельца состояния без зависимости от UI framework. */
|
|
6
|
+
export declare class Subscribable implements SubscribableLike {
|
|
7
|
+
private readonly _subscribers;
|
|
8
|
+
/** Подписывает listener и возвращает идемпотентную функцию отписки. */
|
|
9
|
+
subscribe(listener: () => void): () => void;
|
|
10
|
+
/** Уведомляет текущих подписчиков об изменении владельца состояния. */
|
|
11
|
+
notify(): void;
|
|
12
|
+
}
|
|
@@ -6,15 +6,15 @@ interface NamedExecutorConfig {
|
|
|
6
6
|
* Описывает ответственность NamedExecutor в архитектуре проекта.
|
|
7
7
|
*/
|
|
8
8
|
export declare class NamedExecutor {
|
|
9
|
-
private readonly
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private
|
|
9
|
+
private readonly _config;
|
|
10
|
+
private _delayTimers;
|
|
11
|
+
private _maxTimers;
|
|
12
|
+
private _callbacks;
|
|
13
|
+
private _firstCallTime;
|
|
14
14
|
/**
|
|
15
15
|
* Создает экземпляр NamedExecutor и подготавливает базовое состояние.
|
|
16
16
|
*/
|
|
17
|
-
constructor(
|
|
17
|
+
constructor(_config: NamedExecutorConfig);
|
|
18
18
|
/**
|
|
19
19
|
* Выполняет действие run в рамках ответственности NamedExecutor.
|
|
20
20
|
*/
|
|
@@ -34,6 +34,6 @@ export declare class NamedExecutor {
|
|
|
34
34
|
/**
|
|
35
35
|
* Очищает накопленное состояние NamedExecutor.
|
|
36
36
|
*/
|
|
37
|
-
private
|
|
37
|
+
private _clear;
|
|
38
38
|
}
|
|
39
39
|
export {};
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
* Описывает ответственность DelayedExecutor в архитектуре проекта.
|
|
3
3
|
*/
|
|
4
4
|
export declare class DelayedExecutor<T extends Array<any> = []> {
|
|
5
|
-
private readonly
|
|
6
|
-
private readonly
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
private
|
|
5
|
+
private readonly _fn;
|
|
6
|
+
private readonly _firstExecuteImmediately;
|
|
7
|
+
private _delayTimer;
|
|
8
|
+
private _maxTimer;
|
|
9
|
+
private _hasExecutedOnce;
|
|
10
|
+
private _lastArgs;
|
|
11
11
|
/**
|
|
12
12
|
* Создает экземпляр DelayedExecutor и подготавливает базовое состояние.
|
|
13
13
|
*/
|
|
14
|
-
constructor(
|
|
14
|
+
constructor(_fn: (...args: T) => void, _firstExecuteImmediately?: boolean);
|
|
15
15
|
/**
|
|
16
16
|
* Выполняет действие run в рамках ответственности DelayedExecutor.
|
|
17
17
|
*/
|
|
@@ -27,5 +27,5 @@ export declare class DelayedExecutor<T extends Array<any> = []> {
|
|
|
27
27
|
/**
|
|
28
28
|
* Очищает накопленное состояние DelayedExecutor.
|
|
29
29
|
*/
|
|
30
|
-
private
|
|
30
|
+
private _clear;
|
|
31
31
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './collection/indexed-collection';
|
|
|
4
4
|
export * from './collection/RingBuffer';
|
|
5
5
|
export * from './database/PayloadHttpClient';
|
|
6
6
|
export * from './events/EventBus';
|
|
7
|
+
export * from './events/Subscribable';
|
|
7
8
|
export * from './execute/delay-executor';
|
|
8
9
|
export * from './execute/NamedExecutor';
|
|
9
10
|
export * from './serialize/decorators/json';
|
|
@@ -15,8 +16,8 @@ export * from './serialize/decorators/typeRecord';
|
|
|
15
16
|
export * from './serialize/Serialize';
|
|
16
17
|
export * from './shared/serialize/decorator';
|
|
17
18
|
export { toInstance, toPlain } from './shared/serialize/parse';
|
|
18
|
-
export { isNullOrUndefined } from './shared/types/
|
|
19
|
-
export type { Maybe as SharedMaybe } from './shared/types/
|
|
19
|
+
export { isNullOrUndefined } from './shared/types/Maybe';
|
|
20
|
+
export type { Maybe as SharedMaybe } from './shared/types/Maybe';
|
|
20
21
|
export * from './tools/compare';
|
|
21
22
|
export * from './tools/console';
|
|
22
23
|
export * from './tools/debug';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function compareNumber(a:
|
|
1
|
+
export declare function compareNumber(a: number, b: number): number;
|
|
@@ -8,8 +8,8 @@ export declare function isDateInRange(date: Date, validFrom: Date, validTo: Date
|
|
|
8
8
|
export declare const parseDate: (isoString: string) => "" | Date;
|
|
9
9
|
export declare function formatDatetime(date: Date, formatString?: string, options?: {}): string;
|
|
10
10
|
export declare function formatDatetimeTZ(date: Date | string | object, formatString?: string, options?: {}, isLocalTime?: boolean): string;
|
|
11
|
-
export declare function getDayOfWeek(date:
|
|
12
|
-
export declare function formatDateToMSK(date:
|
|
11
|
+
export declare function getDayOfWeek(date: Date | number): string;
|
|
12
|
+
export declare function formatDateToMSK(date: Date | string | number): string;
|
|
13
13
|
export declare function extractTime(date: Date | string | object, isLocalTime?: boolean): string;
|
|
14
14
|
export declare function findMinMaxDates(dates: Set<Date>): {
|
|
15
15
|
minDate: Date;
|
|
@@ -26,9 +26,9 @@ export declare function toIsoZDate(value: string): string | null;
|
|
|
26
26
|
export declare function toIsoZDateTime(value: string): string | null;
|
|
27
27
|
export declare function isoToDateInput(value: unknown): string;
|
|
28
28
|
export declare function isoToDateTimeLocalInput(value: unknown): string;
|
|
29
|
-
/**
|
|
29
|
+
/** Форматирует DateTime как `HH:mm` в настроенном часовом поясе IANA или локальном поясе браузера. */
|
|
30
30
|
export declare function isoDateTimeToTimeInput(value: unknown, timezone?: unknown): string;
|
|
31
|
-
/**
|
|
31
|
+
/** Заменяет только часы и минуты, сохраняя календарную дату DateTime в выбранном часовом поясе. */
|
|
32
32
|
export declare function mergeTimeIntoDateTime(value: unknown, time: unknown, timezone?: unknown): string | null;
|
|
33
33
|
export declare function timeToTimeInput(value: unknown): string;
|
|
34
34
|
export declare function toTimeHHMMSS(value: unknown): string | null;
|
package/dist/tools/console.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** Возвращает строку ограниченной длины без обхода или удержания переданного значения. */
|
|
2
2
|
export declare function consoleValueSummary(value: unknown): string;
|
|
3
|
-
/**
|
|
3
|
+
/** Возвращает метаданные Error как текст, не передавая объект Error в Console. */
|
|
4
4
|
export declare function consoleErrorSummary(error: unknown): string;
|
package/dist/tools/hotkeys.d.ts
CHANGED
|
@@ -7,11 +7,11 @@ interface HotkeyManagerOptions {
|
|
|
7
7
|
* Управляет ресурсами и состоянием HotkeyManager.
|
|
8
8
|
*/
|
|
9
9
|
export declare class HotkeyManager {
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private readonly
|
|
13
|
-
private readonly
|
|
14
|
-
private readonly
|
|
10
|
+
private _bindings;
|
|
11
|
+
private _enabled;
|
|
12
|
+
private readonly _target;
|
|
13
|
+
private readonly _ignoreInput;
|
|
14
|
+
private readonly _handleBound;
|
|
15
15
|
/**
|
|
16
16
|
* Создает экземпляр HotkeyManager и подготавливает базовое состояние.
|
|
17
17
|
*/
|
|
@@ -19,15 +19,15 @@ export declare class HotkeyManager {
|
|
|
19
19
|
/**
|
|
20
20
|
* Выполняет внутренний шаг isIgnoredTarget для HotkeyManager.
|
|
21
21
|
*/
|
|
22
|
-
private
|
|
22
|
+
private _isIgnoredTarget;
|
|
23
23
|
/**
|
|
24
24
|
* Нормализует входные данные HotkeyManager.
|
|
25
25
|
*/
|
|
26
|
-
private
|
|
26
|
+
private _normalizeKey;
|
|
27
27
|
/**
|
|
28
28
|
* Обрабатывает runtime-событие HotkeyManager.
|
|
29
29
|
*/
|
|
30
|
-
private
|
|
30
|
+
private _handle;
|
|
31
31
|
/**
|
|
32
32
|
* Обрабатывает входящее событие HotkeyManager.
|
|
33
33
|
*/
|
package/dist/tools/keyboard.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface KeyboardStateSnapshot {
|
|
|
15
15
|
code: string[];
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
/**
|
|
18
|
+
/** Возвращает общий snapshot клавиатуры уровня document, лениво устанавливая один tracker. */
|
|
19
19
|
export declare function getKeyboardStateSnapshot(target: Document): KeyboardStateSnapshot;
|
|
20
|
-
/**
|
|
20
|
+
/** Подписывается на общее состояние клавиатуры уровня document и сразу публикует его snapshot. */
|
|
21
21
|
export declare function subscribeKeyboardState(target: Document, listener: (snapshot: KeyboardStateSnapshot) => void): () => void;
|
package/dist/tools/logs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Subscribable } from '../events/Subscribable';
|
|
2
2
|
/**
|
|
3
3
|
* Структурированная запись лога.
|
|
4
4
|
*
|
|
@@ -30,7 +30,7 @@ export interface StructuredLogEntry {
|
|
|
30
30
|
actions?: Array<{
|
|
31
31
|
icon: string;
|
|
32
32
|
tooltip?: string;
|
|
33
|
-
handler
|
|
33
|
+
handler?: () => void;
|
|
34
34
|
}>;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
@@ -61,12 +61,12 @@ export interface StructuredLogEntry {
|
|
|
61
61
|
* // Получаем все логи
|
|
62
62
|
* const logs = logger.getLogs()
|
|
63
63
|
*/
|
|
64
|
-
export declare class StructuredLogger extends
|
|
64
|
+
export declare class StructuredLogger extends Subscribable {
|
|
65
65
|
/** Массив всех логов */
|
|
66
|
-
private
|
|
66
|
+
private _logs;
|
|
67
67
|
/** Текущий контекст (иерархия) */
|
|
68
|
-
private
|
|
69
|
-
private
|
|
68
|
+
private _currentContext;
|
|
69
|
+
private _currentActions;
|
|
70
70
|
/**
|
|
71
71
|
* Устанавливает текущий контекст.
|
|
72
72
|
* Сбрасывает предыдущий контекст.
|
|
@@ -113,7 +113,7 @@ export declare class StructuredLogger extends ChangeNotifier {
|
|
|
113
113
|
* @param message Сообщение
|
|
114
114
|
* @param actions Дополнительные действия (иконки с обработчиками)
|
|
115
115
|
*/
|
|
116
|
-
private
|
|
116
|
+
private _log;
|
|
117
117
|
/**
|
|
118
118
|
* Лог уровня _debug.
|
|
119
119
|
*
|
|
@@ -45,7 +45,7 @@ export type Awaitable<T> = T | Promise<T>;
|
|
|
45
45
|
*/
|
|
46
46
|
export type VoidFn = () => void;
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
48
|
+
* Alias для обратной совместимости, используемый legacy-пакетами.
|
|
49
49
|
*/
|
|
50
50
|
export type VoidFunction = VoidFn;
|
|
51
51
|
/**
|
|
@@ -53,7 +53,7 @@ export type VoidFunction = VoidFn;
|
|
|
53
53
|
*/
|
|
54
54
|
export type Dictionary<T = any> = Record<string, T>;
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* Нестрогая запись объекта для обратной совместимости.
|
|
57
57
|
*/
|
|
58
58
|
export type AnyRecord = Record<string, any>;
|
|
59
59
|
/**
|