@dxtmisha/wiki 0.39.7 → 0.39.8
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/{defineProperty-DblGXmzD.js → defineProperty-Bjg6wMoX.js} +4 -4
- package/dist/library.js +1 -1
- package/dist/media.js +12 -0
- package/dist/storybook.js +1 -1
- package/package.json +1 -1
- package/src/media/functional/functional-basic/api/api.en.mdx +45 -0
- package/src/media/functional/functional-basic/api/api.ru.mdx +45 -0
- package/src/media/functional/functional-basic/api/api.vi.mdx +45 -0
- package/src/media/functional/functional-basic/classes/Api/Api.en.mdx +54 -54
- package/src/media/functional/functional-basic/classes/Api/Api.ru.mdx +54 -54
- package/src/media/functional/functional-basic/classes/Api/Api.vi.mdx +54 -54
- package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.en.mdx +111 -0
- package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.ru.mdx +111 -0
- package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.vi.mdx +111 -0
- package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.en.mdx +32 -0
- package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.ru.mdx +32 -0
- package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.vi.mdx +32 -0
- package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.en.mdx +24 -28
- package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.ru.mdx +24 -28
- package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.vi.mdx +24 -28
- package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.en.mdx +28 -14
- package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.ru.mdx +33 -19
- package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.vi.mdx +33 -19
- package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.en.mdx +56 -0
- package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.ru.mdx +56 -0
- package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.vi.mdx +55 -0
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.en.mdx +101 -49
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.ru.mdx +101 -49
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.vi.mdx +98 -47
- package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.en.mdx +44 -26
- package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.ru.mdx +45 -27
- package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.vi.mdx +44 -26
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.en.mdx +50 -21
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.ru.mdx +54 -25
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.vi.mdx +55 -26
- package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.en.mdx +29 -32
- package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.ru.mdx +33 -36
- package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.vi.mdx +33 -36
- package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.en.mdx +34 -53
- package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.ru.mdx +33 -52
- package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.vi.mdx +39 -58
- package/src/media/functional/functional-basic/classes/Cache/Cache.en.mdx +7 -4
- package/src/media/functional/functional-basic/classes/Cache/Cache.ru.mdx +7 -4
- package/src/media/functional/functional-basic/classes/Cache/Cache.vi.mdx +28 -25
- package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.en.mdx +45 -53
- package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.ru.mdx +46 -54
- package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.vi.mdx +47 -55
- package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.en.mdx +13 -1
- package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.ru.mdx +13 -1
- package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.vi.mdx +13 -0
- package/src/media/functional/functional-basic/classes/Cookie/Cookie.en.mdx +88 -44
- package/src/media/functional/functional-basic/classes/Cookie/Cookie.ru.mdx +88 -44
- package/src/media/functional/functional-basic/classes/Cookie/Cookie.vi.mdx +85 -41
- package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.en.mdx +43 -22
- package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.ru.mdx +46 -25
- package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.vi.mdx +43 -22
- package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.en.mdx +84 -0
- package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.ru.mdx +84 -0
- package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.vi.mdx +100 -0
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.en.mdx +153 -0
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.ru.mdx +153 -0
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.vi.mdx +153 -0
- package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.en.mdx +32 -25
- package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.ru.mdx +32 -25
- package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.vi.mdx +32 -27
- package/src/media/functional/functional-basic/classes/Datetime/Datetime.en.mdx +36 -4
- package/src/media/functional/functional-basic/classes/Datetime/Datetime.ru.mdx +36 -4
- package/src/media/functional/functional-basic/classes/Datetime/Datetime.vi.mdx +36 -4
- package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.en.mdx +101 -70
- package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.ru.mdx +100 -69
- package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.vi.mdx +101 -70
- package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.en.mdx +46 -42
- package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.ru.mdx +46 -42
- package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.vi.mdx +46 -42
- package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.en.mdx +44 -96
- package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.ru.mdx +44 -96
- package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.vi.mdx +44 -96
- package/src/media/functional/functional-basic/classes/EventItem/EventItem.en.mdx +49 -28
- package/src/media/functional/functional-basic/classes/EventItem/EventItem.ru.mdx +21 -0
- package/src/media/functional/functional-basic/classes/EventItem/EventItem.vi.mdx +63 -42
- package/src/media/functional/functional-basic/classes/Formatters/Formatters.en.mdx +97 -109
- package/src/media/functional/functional-basic/classes/Formatters/Formatters.ru.mdx +86 -98
- package/src/media/functional/functional-basic/classes/Formatters/Formatters.vi.mdx +99 -111
- package/src/media/functional/functional-basic/classes/Geo/Geo.en.mdx +3 -3
- package/src/media/functional/functional-basic/classes/Geo/Geo.ru.mdx +5 -5
- package/src/media/functional/functional-basic/classes/Geo/Geo.vi.mdx +5 -5
- package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.en.mdx +83 -40
- package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.ru.mdx +83 -40
- package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.vi.mdx +87 -44
- package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.en.mdx +81 -0
- package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.ru.mdx +81 -0
- package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.vi.mdx +81 -0
- package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.en.mdx +56 -105
- package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.ru.mdx +53 -102
- package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.vi.mdx +55 -105
- package/src/media/functional/functional-basic/classes/Hash/Hash.en.mdx +18 -7
- package/src/media/functional/functional-basic/classes/Hash/Hash.ru.mdx +18 -7
- package/src/media/functional/functional-basic/classes/Hash/Hash.vi.mdx +18 -7
- package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.en.mdx +54 -0
- package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.ru.mdx +54 -0
- package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.vi.mdx +54 -0
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.en.mdx +78 -0
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.ru.mdx +78 -0
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.vi.mdx +78 -0
- package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.en.mdx +50 -0
- package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.ru.mdx +50 -0
- package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.vi.mdx +50 -0
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.en.mdx +131 -0
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.ru.mdx +131 -0
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.vi.mdx +131 -0
- package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.en.mdx +97 -0
- package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.ru.mdx +97 -0
- package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.vi.mdx +97 -0
- package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.en.mdx +13 -5
- package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.ru.mdx +13 -5
- package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.vi.mdx +13 -5
- package/src/media/functional/functional-basic/functions/anyToString/anyToString.en.mdx +37 -19
- package/src/media/functional/functional-basic/functions/anyToString/anyToString.ru.mdx +37 -19
- package/src/media/functional/functional-basic/functions/anyToString/anyToString.vi.mdx +35 -17
- package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.en.mdx +31 -19
- package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.ru.mdx +31 -19
- package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.vi.mdx +32 -20
- package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.en.mdx +29 -15
- package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.ru.mdx +28 -14
- package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.vi.mdx +28 -14
- package/src/media/functional/functional-basic/functions/capitalize/capitalize.en.mdx +7 -3
- package/src/media/functional/functional-basic/functions/capitalize/capitalize.ru.mdx +7 -3
- package/src/media/functional/functional-basic/functions/capitalize/capitalize.vi.mdx +7 -3
- package/src/media/functional/functional-basic/functions/copyObject/copyObject.en.mdx +17 -13
- package/src/media/functional/functional-basic/functions/copyObject/copyObject.ru.mdx +17 -13
- package/src/media/functional/functional-basic/functions/copyObject/copyObject.vi.mdx +17 -13
- package/src/media/functional/functional-basic/functions/createElement/createElement.en.mdx +2 -0
- package/src/media/functional/functional-basic/functions/createElement/createElement.ru.mdx +2 -0
- package/src/media/functional/functional-basic/functions/createElement/createElement.vi.mdx +2 -0
- package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.en.mdx +1 -3
- package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.ru.mdx +1 -3
- package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.vi.mdx +1 -3
- package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.en.mdx +13 -10
- package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.ru.mdx +14 -11
- package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.vi.mdx +12 -9
- package/src/media/functional/functional-basic/functions/executePromise/executePromise.en.mdx +14 -13
- package/src/media/functional/functional-basic/functions/executePromise/executePromise.ru.mdx +15 -14
- package/src/media/functional/functional-basic/functions/executePromise/executePromise.vi.mdx +14 -13
- package/src/media/functional/functional-basic/functions/forEach/forEach.en.mdx +1 -1
- package/src/media/functional/functional-basic/functions/forEach/forEach.ru.mdx +1 -1
- package/src/media/functional/functional-basic/functions/forEach/forEach.vi.mdx +1 -1
- package/src/media/functional/functional-basic/functions/frame/frame.en.mdx +7 -4
- package/src/media/functional/functional-basic/functions/frame/frame.ru.mdx +6 -3
- package/src/media/functional/functional-basic/functions/frame/frame.vi.mdx +7 -4
- package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.en.mdx +34 -0
- package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.ru.mdx +34 -0
- package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.vi.mdx +35 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.en.mdx +2 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.ru.mdx +2 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.vi.mdx +2 -0
- package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.en.mdx +21 -0
- package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.ru.mdx +21 -0
- package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.vi.mdx +21 -0
- package/src/media/functional/functional-basic/functions/getElementId/getElementId.en.mdx +17 -3
- package/src/media/functional/functional-basic/functions/getElementId/getElementId.ru.mdx +17 -3
- package/src/media/functional/functional-basic/functions/getElementId/getElementId.vi.mdx +18 -4
- package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.en.mdx +31 -0
- package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.ru.mdx +31 -0
- package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.vi.mdx +31 -0
- package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.en.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.ru.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.vi.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.en.mdx +11 -4
- package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.ru.mdx +14 -7
- package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.vi.mdx +13 -6
- package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.en.mdx +3 -2
- package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.ru.mdx +3 -2
- package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.vi.mdx +3 -2
- package/src/media/functional/functional-basic/functions/toNumber/toNumber.en.mdx +25 -9
- package/src/media/functional/functional-basic/functions/toNumber/toNumber.ru.mdx +25 -9
- package/src/media/functional/functional-basic/functions/toNumber/toNumber.vi.mdx +25 -9
- package/src/media/functional/functional-basic/functions/toString/toString.en.mdx +28 -0
- package/src/media/functional/functional-basic/functions/toString/toString.ru.mdx +28 -0
- package/src/media/functional/functional-basic/functions/toString/toString.vi.mdx +28 -0
- package/src/media/functional/ui/about/about.en.mdx +45 -0
- package/src/media/functional/ui/about/about.ru.mdx +45 -0
- package/src/media/functional/ui/about/about.vi.mdx +45 -0
- package/src/media/functional/ui/component/component.en.mdx +104 -0
- package/src/media/functional/ui/component/component.ru.mdx +106 -0
- package/src/media/functional/ui/component/component.vi.mdx +104 -0
- package/src/media/functional/ui/setup/setup.en.mdx +72 -0
- package/src/media/functional/ui/setup/setup.ru.mdx +72 -0
- package/src/media/functional/ui/setup/setup.vi.mdx +72 -0
- package/src/media/functional/ui/wiki-data.en.mdx +114 -0
- package/src/media/functional/ui/wiki-data.ru.mdx +114 -0
- package/src/media/functional/ui/wiki-data.vi.mdx +114 -0
package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.en.mdx
CHANGED
|
@@ -2,122 +2,70 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
2
2
|
|
|
3
3
|
<Meta title='@dxtmisha/en/functional-basic/Classes/ErrorCenterInstance - Error Instance'/>
|
|
4
4
|
|
|
5
|
-
# ErrorCenterInstance
|
|
5
|
+
# ErrorCenterInstance Class
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
While `ErrorCenter` provides a global static bridge, `ErrorCenterInstance` can be used directly for isolated error tracking or custom error management systems.
|
|
7
|
+
`ErrorCenterInstance` is the main engine of the error system. It combines an error registry and a handler manager. You can create independent instances of this class for different parts of the application to isolate their error processing logic.
|
|
10
8
|
|
|
11
9
|
## Key Features
|
|
12
10
|
|
|
13
|
-
- **Isolated Storage** —
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
- **Chainable Methods** — Supports fluent configuration for adding causes and handlers.
|
|
18
|
-
|
|
19
|
-
## Check Methods
|
|
20
|
-
|
|
21
|
-
- `has(code: string, group?: string): boolean` — Checks if a cause exists in the instance's registry.
|
|
22
|
-
- `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Retrieves the stored error cause object.
|
|
23
|
-
|
|
24
|
-
## Configuration
|
|
25
|
-
|
|
26
|
-
- `add(cause: ErrorCenterCauseItem): this` — Adds a single error cause to the storage.
|
|
27
|
-
- `addList(causes: ErrorCenterCauseList): this` — Adds multiple error causes.
|
|
28
|
-
- `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Registers a callback for a specific error group.
|
|
29
|
-
- `addHandlerList(handlers: ErrorCenterHandlerList): this` — Registers a collection of handlers.
|
|
30
|
-
|
|
31
|
-
## Action Methods
|
|
11
|
+
- **Isolated Storage** — maintaining a local list of error causes.
|
|
12
|
+
- **Intelligent Merging** — automatic supplementation of error data based on a priority system.
|
|
13
|
+
- **Handling Delegation** — using `ErrorCenterHandler` to trigger callback functions.
|
|
14
|
+
- **Chainable API** — support for call chaining for configuration.
|
|
32
15
|
|
|
33
|
-
|
|
16
|
+
## Initialization
|
|
34
17
|
|
|
35
|
-
|
|
18
|
+
To create an instance, use the constructor `ErrorCenterInstance(causes, handler)`.
|
|
36
19
|
|
|
37
20
|
**Parameters:**
|
|
38
|
-
- `
|
|
39
|
-
|
|
40
|
-
**Returns:** `this`
|
|
41
|
-
|
|
42
|
-
## Types
|
|
43
|
-
|
|
44
|
-
### `ErrorCenterCauseItem`
|
|
45
|
-
|
|
46
|
-
The main object used to define an error cause in this instance.
|
|
21
|
+
- `causes?: ErrorCenterCauseList` — initial list of error causes.
|
|
22
|
+
- `handler?: ErrorCenterHandler` — handler instance (if not specified, a new one is created).
|
|
47
23
|
|
|
48
|
-
|
|
49
|
-
- `code: string` — Unique identifier for the error.
|
|
50
|
-
- `label?: string` — Human-readable name of the error.
|
|
51
|
-
- `message?: string` — Detailed description of the error.
|
|
52
|
-
- `details?: any` — Optional object for additional context or technical data.
|
|
53
|
-
|
|
54
|
-
## Guide: Managing Errors and Listeners
|
|
55
|
-
|
|
56
|
-
Using the `ErrorCenterInstance` involves three main steps: defining error causes, setting up listeners (handlers), and triggering the errors.
|
|
57
|
-
|
|
58
|
-
### 1. Adding Error Causes
|
|
59
|
-
|
|
60
|
-
Error causes act as a dictionary for your application. By pre-registering them, you ensure that consistent labels and messages are used throughout your platform.
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
24
|
+
```typescript
|
|
63
25
|
import { ErrorCenterInstance } from '@dxtmisha/functional-basic'
|
|
64
26
|
|
|
65
|
-
const myErrorCenter = new ErrorCenterInstance(
|
|
66
|
-
|
|
67
|
-
// Register a single error cause
|
|
68
|
-
myErrorCenter.add({
|
|
69
|
-
group: 'auth',
|
|
70
|
-
code: 'token_expired',
|
|
71
|
-
label: 'Session Expired',
|
|
72
|
-
message: 'Your login session has expired. Please log in again.'
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
// Register multiple causes at once
|
|
76
|
-
myErrorCenter.addList([
|
|
77
|
-
{ group: 'api', code: '404', label: 'Not Found', message: 'The requested data does not exist.' },
|
|
78
|
-
{ group: 'api', code: '500', label: 'Server Error', message: 'Something went wrong on the server.' }
|
|
27
|
+
const myErrorCenter = new ErrorCenterInstance([
|
|
28
|
+
{ group: 'api', code: '404', label: 'Not Found' }
|
|
79
29
|
])
|
|
80
30
|
```
|
|
81
31
|
|
|
82
|
-
|
|
32
|
+
## Methods
|
|
83
33
|
|
|
84
|
-
|
|
34
|
+
### Action
|
|
35
|
+
- `on(cause: ErrorCenterCauseItem): this` — Starts the processing. Merges data from the registry with input data and passes it to the handler.
|
|
85
36
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// E.g., redirect to login or show an alert
|
|
90
|
-
console.log(`[AUTH ERROR] ${cause.label}: ${cause.message}`)
|
|
91
|
-
})
|
|
37
|
+
### Verification
|
|
38
|
+
- `has(code: string, group?: string): boolean` — Search in the local registry.
|
|
39
|
+
- `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Retrieve data from the registry.
|
|
92
40
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
41
|
+
### Configuration
|
|
42
|
+
- `add(cause: ErrorCenterCauseItem): this` — Add an error to the local registry.
|
|
43
|
+
- `addList(causes: ErrorCenterCauseList): this` — Batch addition of errors.
|
|
44
|
+
- `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Register a reaction to a group.
|
|
45
|
+
- `addHandlerList(handlers: ErrorCenterHandlerList): this` — Batch registration of reactions.
|
|
98
46
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
47
|
+
## Types
|
|
48
|
+
|
|
49
|
+
#### `ErrorCenterCauseItem`
|
|
50
|
+
Object describing a specific error.
|
|
51
|
+
- `group?: ErrorCenterGroup` — error group (e.g., 'api').
|
|
52
|
+
- `code: string` — unique error code.
|
|
53
|
+
- `priority?: number` — priority level (default `500`). Used during data merging.
|
|
54
|
+
- `label?: string` — error title.
|
|
55
|
+
- `message?: string` — error description.
|
|
56
|
+
- `details?: any` — additional data.
|
|
104
57
|
|
|
105
|
-
|
|
58
|
+
#### `ErrorCenterHandlerCallback`
|
|
59
|
+
- `(cause: ErrorCenterCauseItem) => void` — processing function.
|
|
106
60
|
|
|
107
|
-
|
|
61
|
+
## Examples
|
|
108
62
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
code: 'token_expired'
|
|
115
|
-
})
|
|
63
|
+
### Initialization with a Dictionary
|
|
64
|
+
```typescript
|
|
65
|
+
const myEC = new ErrorCenterInstance([
|
|
66
|
+
{ group: 'db', code: 'connection_lost', label: 'DB Unavailable' }
|
|
67
|
+
]);
|
|
116
68
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
group: 'database',
|
|
120
|
-
code: 'connection_lost',
|
|
121
|
-
message: 'Lost connection to DB.' // You can pass inline data as well
|
|
122
|
-
})
|
|
69
|
+
myEC.addHandler('db', (cause) => alert(cause.label));
|
|
70
|
+
myEC.on({ group: 'db', code: 'connection_lost' });
|
|
123
71
|
```
|
package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.ru.mdx
CHANGED
|
@@ -2,122 +2,70 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
2
2
|
|
|
3
3
|
<Meta title='@dxtmisha/ru/functional-basic/Classes/ErrorCenterInstance - Экземпляр ошибок'/>
|
|
4
4
|
|
|
5
|
-
# ErrorCenterInstance
|
|
5
|
+
# Класс ErrorCenterInstance
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Хотя `ErrorCenter` предоставляет глобальный статический мост, `ErrorCenterInstance` можно использовать напрямую для изолированного отслеживания ошибок или создания пользовательских систем управления.
|
|
7
|
+
`ErrorCenterInstance` — это основной движок системы ошибок. Он объединяет в себе реестр причин и менеджер обработчиков. Вы можете создавать независимые экземпляры этого класса для разных частей приложения, чтобы изолировать их логику обработки ошибок.
|
|
10
8
|
|
|
11
9
|
## Ключевые особенности
|
|
12
10
|
|
|
13
|
-
- **Изолированное хранилище** —
|
|
14
|
-
-
|
|
15
|
-
- **Делегирование обработки** —
|
|
16
|
-
-
|
|
17
|
-
- **Chainable API** — Поддерживает удобную конфигурацию для добавления причин и обработчиков.
|
|
18
|
-
|
|
19
|
-
## Методы проверки
|
|
20
|
-
|
|
21
|
-
- `has(code: string, group?: string): boolean` — Проверяет, существует ли причина с конкретным кодом в реестре.
|
|
22
|
-
- `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Извлекает сохраненный объект причины ошибки.
|
|
23
|
-
|
|
24
|
-
## Конфигурация
|
|
25
|
-
|
|
26
|
-
- `add(cause: ErrorCenterCauseItem): this` — Добавляет одну причину ошибки в хранилище экземпляра.
|
|
27
|
-
- `addList(causes: ErrorCenterCauseList): this` — Добавляет список причин ошибок.
|
|
28
|
-
- `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Регистрирует обработчик для конкретной группы.
|
|
29
|
-
- `addHandlerList(handlers: ErrorCenterHandlerList): this` — Регистрирует список обработчиков.
|
|
30
|
-
|
|
31
|
-
## Методы действий
|
|
11
|
+
- **Изолированное хранилище** — ведение локального списка причин ошибок.
|
|
12
|
+
- **Интеллектуальное слияние** — автоматическое дополнение данных ошибки на основе системы приоритетов.
|
|
13
|
+
- **Делегирование обработки** — использование `ErrorCenterHandler` для вызова функций обратного вызова.
|
|
14
|
+
- **Chainable API** — поддержка цепочки вызовов для конфигурации.
|
|
32
15
|
|
|
33
|
-
|
|
16
|
+
## Инициализация
|
|
34
17
|
|
|
35
|
-
|
|
18
|
+
Для создания экземпляра используйте конструктор `ErrorCenterInstance(causes, handler)`.
|
|
36
19
|
|
|
37
20
|
**Параметры:**
|
|
38
|
-
- `
|
|
39
|
-
|
|
40
|
-
**Возвращает:** `this`
|
|
41
|
-
|
|
42
|
-
## Типы
|
|
43
|
-
|
|
44
|
-
### `ErrorCenterCauseItem`
|
|
45
|
-
|
|
46
|
-
Основной объект, используемый для определения причины ошибки в этом экземпляре.
|
|
21
|
+
- `causes?: ErrorCenterCauseList` — начальный список причин ошибок.
|
|
22
|
+
- `handler?: ErrorCenterHandler` — экземпляр обработчика (если не указан, создается новый).
|
|
47
23
|
|
|
48
|
-
|
|
49
|
-
- `code: string` — уникальный идентификатор ошибки.
|
|
50
|
-
- `label?: string` — понятное человеку название ошибки.
|
|
51
|
-
- `message?: string` — подробное описание ошибки.
|
|
52
|
-
- `details?: any` — необязательный объект для дополнительных данных.
|
|
53
|
-
|
|
54
|
-
## Руководство: Управление причинами ошибок и обработчиками
|
|
55
|
-
|
|
56
|
-
Использование `ErrorCenterInstance` включает три основных шага: определение причин ошибок, настройка слушателей (обработчиков) и вызов ошибок.
|
|
57
|
-
|
|
58
|
-
### 1. Добавление причин ошибок
|
|
59
|
-
|
|
60
|
-
Причины ошибок действуют как словарь для вашего приложения. Предварительно регистрируя их, вы обеспечиваете единообразие заголовков и сообщений по всей платформе.
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
24
|
+
```typescript
|
|
63
25
|
import { ErrorCenterInstance } from '@dxtmisha/functional-basic'
|
|
64
26
|
|
|
65
|
-
const myErrorCenter = new ErrorCenterInstance(
|
|
66
|
-
|
|
67
|
-
// Регистрация одной причины ошибки
|
|
68
|
-
myErrorCenter.add({
|
|
69
|
-
group: 'auth',
|
|
70
|
-
code: 'token_expired',
|
|
71
|
-
label: 'Сессия истекла',
|
|
72
|
-
message: 'Срок действия вашей сессии истек. Пожалуйста, войдите снова.'
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
// Регистрация нескольких причин сразу
|
|
76
|
-
myErrorCenter.addList([
|
|
77
|
-
{ group: 'api', code: '404', label: 'Не найдено', message: 'Запрошенные данные не существуют.' },
|
|
78
|
-
{ group: 'api', code: '500', label: 'Ошибка сервера', message: 'На сервере что-то пошло не так.' }
|
|
27
|
+
const myErrorCenter = new ErrorCenterInstance([
|
|
28
|
+
{ group: 'api', code: '404', label: 'Не найдено' }
|
|
79
29
|
])
|
|
80
30
|
```
|
|
81
31
|
|
|
82
|
-
|
|
32
|
+
## Методы
|
|
83
33
|
|
|
84
|
-
|
|
34
|
+
### Действие
|
|
35
|
+
- `on(cause: ErrorCenterCauseItem): this` — Запускает процесс обработки. Склеивает данные из реестра с входными данными и передает их обработчику.
|
|
85
36
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// Например, перенаправление на страницу входа или показ уведомления
|
|
90
|
-
console.log(`[ОШИБКА АВТОРИЗАЦИИ] ${cause.label}: ${cause.message}`)
|
|
91
|
-
})
|
|
37
|
+
### Проверка
|
|
38
|
+
- `has(code: string, group?: string): boolean` — Поиск в локальном реестре.
|
|
39
|
+
- `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Получение данных из реестра.
|
|
92
40
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
41
|
+
### Конфигурация
|
|
42
|
+
- `add(cause: ErrorCenterCauseItem): this` — Добавление ошибки в локальный реестр.
|
|
43
|
+
- `addList(causes: ErrorCenterCauseList): this` — Пакетное добавление ошибок.
|
|
44
|
+
- `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Регистрация реакции на группу.
|
|
45
|
+
- `addHandlerList(handlers: ErrorCenterHandlerList): this` — Пакетная регистрация реакций.
|
|
98
46
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
47
|
+
## Типы
|
|
48
|
+
|
|
49
|
+
#### `ErrorCenterCauseItem`
|
|
50
|
+
Объект, описывающий конкретную ошибку.
|
|
51
|
+
- `group?: ErrorCenterGroup` — группа ошибки (например, 'api').
|
|
52
|
+
- `code: string` — уникальный код ошибки.
|
|
53
|
+
- `priority?: number` — уровень приоритета (по умолчанию `500`). Используется при слиянии данных.
|
|
54
|
+
- `label?: string` — заголовок ошибки.
|
|
55
|
+
- `message?: string` — описание ошибки.
|
|
56
|
+
- `details?: any` — дополнительные данные.
|
|
104
57
|
|
|
105
|
-
|
|
58
|
+
#### `ErrorCenterHandlerCallback`
|
|
59
|
+
- `(cause: ErrorCenterCauseItem) => void` — функция обработки.
|
|
106
60
|
|
|
107
|
-
|
|
61
|
+
## Примеры
|
|
108
62
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
code: 'token_expired'
|
|
115
|
-
})
|
|
63
|
+
### Инициализация со словарем
|
|
64
|
+
```typescript
|
|
65
|
+
const myEC = new ErrorCenterInstance([
|
|
66
|
+
{ group: 'db', code: 'connection_lost', label: 'БД недоступна' }
|
|
67
|
+
]);
|
|
116
68
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
group: 'database',
|
|
120
|
-
code: 'connection_lost',
|
|
121
|
-
message: 'Потеряно соединение с БД.' // Данные можно передавать "на лету"
|
|
122
|
-
})
|
|
69
|
+
myEC.addHandler('db', (cause) => alert(cause.label));
|
|
70
|
+
myEC.on({ group: 'db', code: 'connection_lost' });
|
|
123
71
|
```
|
package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.vi.mdx
CHANGED
|
@@ -2,122 +2,70 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
2
2
|
|
|
3
3
|
<Meta title='@dxtmisha/vi/functional-basic/Classes/ErrorCenterInstance - Thực thể lỗi'/>
|
|
4
4
|
|
|
5
|
-
# ErrorCenterInstance
|
|
5
|
+
# Lớp ErrorCenterInstance
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Trong khi `ErrorCenter` cung cấp một lớp tĩnh toàn cục, `ErrorCenterInstance` có thể được sử dụng trực tiếp để theo dõi lỗi tách biệt hoặc các hệ thống quản lý lỗi tùy chỉnh.
|
|
7
|
+
`ErrorCenterInstance` là động cơ chính của hệ thống lỗi. Nó kết hợp một sổ đăng ký nguyên nhân và một trình quản lý xử lý. Bạn có thể tạo các thực thể độc lập của lớp này cho các phần khác nhau của ứng dụng để cô lập logic xử lý lỗi của chúng.
|
|
10
8
|
|
|
11
9
|
## Các tính năng chính
|
|
12
10
|
|
|
13
|
-
- **
|
|
14
|
-
- **Hợp nhất
|
|
15
|
-
- **Ủy quyền xử lý** —
|
|
16
|
-
- **
|
|
17
|
-
- **Chainable API** — Hỗ trợ cấu hình linh hoạt để thêm nguyên nhân và trình xử lý.
|
|
18
|
-
|
|
19
|
-
## Các phương thức kiểm tra
|
|
20
|
-
|
|
21
|
-
- `has(code: string, group?: string): boolean` — Kiểm tra xem một nguyên nhân lỗi có tồn tại trong bộ lưu trữ không.
|
|
22
|
-
- `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Truy xuất đối tượng nguyên nhân lỗi đã lưu trữ.
|
|
23
|
-
|
|
24
|
-
## Cấu hình
|
|
25
|
-
|
|
26
|
-
- `add(cause: ErrorCenterCauseItem): this` — Thêm một nguyên nhân lỗi duy nhất vào bộ lưu trữ.
|
|
27
|
-
- `addList(causes: ErrorCenterCauseList): this` — Thêm một danh sách các nguyên nhân lỗi.
|
|
28
|
-
- `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Đăng ký một trình xử lý cho nhóm cụ thể.
|
|
29
|
-
- `addHandlerList(handlers: ErrorCenterHandlerList): this` — Đăng ký một loạt các trình xử lý.
|
|
30
|
-
|
|
31
|
-
## Các phương thức hành động
|
|
11
|
+
- **Kho lưu trữ cô lập** — duy trì một danh sách cục bộ các nguyên nhân lỗi.
|
|
12
|
+
- **Hợp nhất thông minh** — tự động bổ sung dữ liệu lỗi dựa trên hệ thống ưu tiên.
|
|
13
|
+
- **Ủy quyền xử lý** — sử dụng `ErrorCenterHandler` để kích hoạt các hàm callback.
|
|
14
|
+
- **API nối chuỗi** — hỗ trợ nối chuỗi cuộc gọi để cấu hình.
|
|
32
15
|
|
|
33
|
-
|
|
16
|
+
## Khởi tạo
|
|
34
17
|
|
|
35
|
-
|
|
18
|
+
Để tạo một thực thể, sử dụng constructor `ErrorCenterInstance(causes, handler)`.
|
|
36
19
|
|
|
37
20
|
**Tham số:**
|
|
38
|
-
- `
|
|
39
|
-
|
|
40
|
-
**Trả về:** `this`
|
|
41
|
-
|
|
42
|
-
## Các kiểu dữ liệu
|
|
43
|
-
|
|
44
|
-
### `ErrorCenterCauseItem`
|
|
45
|
-
|
|
46
|
-
Đối tượng chính được sử dụng để xác định nguyên nhân gây lỗi trong thực thể này.
|
|
21
|
+
- `causes?: ErrorCenterCauseList` — danh sách nguyên nhân lỗi ban đầu.
|
|
22
|
+
- `handler?: ErrorCenterHandler` — thực thể trình xử lý (nếu không được chỉ định, một thực thể mới sẽ được tạo).
|
|
47
23
|
|
|
48
|
-
|
|
49
|
-
- `code: string` — mã định danh duy nhất cho lỗi.
|
|
50
|
-
- `label?: string` — tên lỗi dễ đọc cho người dùng.
|
|
51
|
-
- `message?: string` — mô tả chi tiết về lỗi.
|
|
52
|
-
- `details?: any` — đối tượng tùy chọn cho các dữ liệu bổ sung.
|
|
53
|
-
|
|
54
|
-
## Hướng dẫn: Quản lý nguyên nhân lỗi và bộ lắng nghe
|
|
55
|
-
|
|
56
|
-
Sử dụng `ErrorCenterInstance` bao gồm ba bước chính: định nghĩa các nguyên nhân gây lỗi, thiết lập bộ lắng nghe (trình xử lý), và kích hoạt lỗi.
|
|
57
|
-
|
|
58
|
-
### 1. Thêm nguyên nhân lỗi
|
|
59
|
-
|
|
60
|
-
Các nguyên nhân gây lỗi hoạt động như một từ điển cho ứng dụng của bạn. Bằng cách đăng ký trước chúng, bạn đảm bảo rằng các nhãn và thông báo nhất quán được sử dụng trên toàn bộ nền tảng.
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
24
|
+
```typescript
|
|
63
25
|
import { ErrorCenterInstance } from '@dxtmisha/functional-basic'
|
|
64
26
|
|
|
65
|
-
const myErrorCenter = new ErrorCenterInstance(
|
|
66
|
-
|
|
67
|
-
// Đăng ký một nguyên nhân lỗi duy nhất
|
|
68
|
-
myErrorCenter.add({
|
|
69
|
-
group: 'auth',
|
|
70
|
-
code: 'token_expired',
|
|
71
|
-
label: 'Phiên hết hạn',
|
|
72
|
-
message: 'Phiên đăng nhập của bạn đã hết hạn. Vui lòng đăng nhập lại.'
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
// Đăng ký nhiều nguyên nhân cùng lúc
|
|
76
|
-
myErrorCenter.addList([
|
|
77
|
-
{ group: 'api', code: '404', label: 'Không tìm thấy', message: 'Dữ liệu được yêu cầu không tồn tại.' },
|
|
78
|
-
{ group: 'api', code: '500', label: 'Lỗi máy chủ', message: 'Đã có lỗi xảy ra trên máy chủ.' }
|
|
27
|
+
const myErrorCenter = new ErrorCenterInstance([
|
|
28
|
+
{ group: 'api', code: '404', label: 'Không tìm thấy' }
|
|
79
29
|
])
|
|
80
30
|
```
|
|
81
31
|
|
|
82
|
-
|
|
32
|
+
## Các phương thức
|
|
83
33
|
|
|
84
|
-
|
|
34
|
+
### Hành động
|
|
35
|
+
- `on(cause: ErrorCenterCauseItem): this` — Bắt đầu quá trình xử lý. Hợp nhất dữ liệu từ sổ đăng ký với dữ liệu đầu vào và chuyển nó cho trình xử lý.
|
|
85
36
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// Ví dụ: chuyển hướng đến trang đăng nhập hoặc hiển thị thông báo cảnh báo
|
|
90
|
-
console.log(`[LỖI XÁC THỰC] ${cause.label}: ${cause.message}`)
|
|
91
|
-
})
|
|
37
|
+
### Xác minh
|
|
38
|
+
- `has(code: string, group?: string): boolean` — Tìm kiếm trong sổ đăng ký cục bộ.
|
|
39
|
+
- `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Truy xuất dữ liệu từ sổ đăng ký.
|
|
92
40
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
41
|
+
### Cấu hình
|
|
42
|
+
- `add(cause: ErrorCenterCauseItem): this` — Thêm một lỗi vào sổ đăng ký cục bộ.
|
|
43
|
+
- `addList(causes: ErrorCenterCauseList): this` — Thêm lỗi hàng loạt.
|
|
44
|
+
- `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Đăng ký một phản ứng cho nhóm.
|
|
45
|
+
- `addHandlerList(handlers: ErrorCenterHandlerList): this` — Đăng ký hàng loạt các phản ứng.
|
|
98
46
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
47
|
+
## Các kiểu dữ liệu
|
|
48
|
+
|
|
49
|
+
#### `ErrorCenterCauseItem`
|
|
50
|
+
Đối tượng mô tả một lỗi cụ thể.
|
|
51
|
+
- `group?: ErrorCenterGroup` — nhóm lỗi (ví dụ: 'api').
|
|
52
|
+
- `code: string` — mã lỗi duy nhất.
|
|
53
|
+
- `priority?: number` — mức độ ưu tiên (mặc định `500`). Được sử dụng trong quá trình hợp nhất dữ liệu.
|
|
54
|
+
- `label?: string` — tiêu đề lỗi.
|
|
55
|
+
- `message?: string` — mô tả lỗi.
|
|
56
|
+
- `details?: any` — dữ liệu bổ sung.
|
|
104
57
|
|
|
105
|
-
|
|
58
|
+
#### `ErrorCenterHandlerCallback`
|
|
59
|
+
- `(cause: ErrorCenterCauseItem) => void` — hàm xử lý.
|
|
106
60
|
|
|
107
|
-
|
|
61
|
+
## Ví dụ
|
|
108
62
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
code: 'token_expired'
|
|
115
|
-
})
|
|
63
|
+
### Khởi tạo với một từ điển
|
|
64
|
+
```typescript
|
|
65
|
+
const myEC = new ErrorCenterInstance([
|
|
66
|
+
{ group: 'db', code: 'connection_lost', label: 'DB không khả dụng' }
|
|
67
|
+
]);
|
|
116
68
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
group: 'database',
|
|
120
|
-
code: 'connection_lost',
|
|
121
|
-
message: 'Mất kết nối với CSDL.' // Bạn cũng có thể truyền dữ liệu trực tiếp
|
|
122
|
-
})
|
|
69
|
+
myEC.addHandler('db', (cause) => alert(cause.label));
|
|
70
|
+
myEC.on({ group: 'db', code: 'connection_lost' });
|
|
123
71
|
```
|