@foxford/den 1.0.2 → 2.1.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/adapter.cjs +3 -2
- package/adapter.d.cts +1 -1
- package/adapter.d.ts +1 -1
- package/adapter.js +2 -1
- package/{chunk-4FPCRHSM.cjs → chunk-5DJZZML5.cjs} +15 -35
- package/chunk-A6ZPAM6Z.cjs +26 -0
- package/chunk-C7BM4DGX.cjs +18 -0
- package/chunk-HJO26HIQ.js +41 -0
- package/chunk-LJE7K7VD.cjs +35 -0
- package/chunk-TCYGDT2A.js +35 -0
- package/chunk-TPBI6TOU.js +26 -0
- package/{chunk-E7HG2NXO.js → chunk-WBHHHICS.js} +0 -22
- package/{chunk-S5KTWI6P.js → chunk-WRQC6BVJ.js} +9 -29
- package/chunk-XHYR3SGG.cjs +41 -0
- package/define-repository-Ca62_YCy.d.ts +83 -0
- package/define-repository-MDEWHqM7.d.cts +83 -0
- package/define-slot-BKvArA02.d.cts +74 -0
- package/define-slot-Dil8Kr1A.d.ts +74 -0
- package/define.cjs +6 -3
- package/define.d.cts +3 -2
- package/define.d.ts +3 -2
- package/define.js +7 -4
- package/index.cjs +27 -43
- package/index.d.cts +6 -26
- package/index.d.ts +6 -26
- package/index.js +9 -25
- package/island/index.cjs +156 -0
- package/island/index.d.cts +196 -0
- package/island/index.d.ts +196 -0
- package/island/index.js +156 -0
- package/package.json +26 -10
- package/types-COwVwgzE.d.cts +777 -0
- package/types-COwVwgzE.d.ts +777 -0
- package/view-adapter-CSPKr2xy.d.ts +122 -0
- package/view-adapter-zbHBVVqR.d.cts +122 -0
- package/chunk-NRE6DV6O.cjs +0 -40
- package/define-slot--HM6B232.d.ts +0 -500
- package/define-slot-es1K6_-L.d.cts +0 -500
- package/types-B4Arep3V.d.cts +0 -415
- package/types-B4Arep3V.d.ts +0 -415
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { x as Definition, q as LayerDefinition } from './types-COwVwgzE.cjs';
|
|
2
|
+
import { Container } from '@foxford/ioc';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Дескриптор слота — host-агностичен: непрозрачный `view` + опциональные `units`.
|
|
6
|
+
*
|
|
7
|
+
* `view` типизирован как `unknown` — ядро не знает про React/Vue: рендерит его view-адаптер.
|
|
8
|
+
*
|
|
9
|
+
* Имени у слота НЕТ: его выдаёт тот, кто слот к себе взял, ключом в карте `slots` своего
|
|
10
|
+
* дескриптора. Так адрес места принадлежит хозяину места, а не пакету, который написал для
|
|
11
|
+
* него view, и занять чужое пространство имён нечем — префикс не в руках объявляющего.
|
|
12
|
+
*/
|
|
13
|
+
interface SlotDefinition {
|
|
14
|
+
/** Дискриминатор типа. */
|
|
15
|
+
readonly __type: 'slot';
|
|
16
|
+
/** Непрозрачная ссылка на view слота (компонент view-фреймворка). */
|
|
17
|
+
readonly view?: unknown;
|
|
18
|
+
/** Data/Business единицы слота (изолированная секция). */
|
|
19
|
+
readonly units: readonly Definition<unknown>[];
|
|
20
|
+
/** View-слой слота, если он переопределён (см. {@link DefineSlotOptions.viewLayer}). */
|
|
21
|
+
readonly viewLayer?: LayerDefinition;
|
|
22
|
+
/**
|
|
23
|
+
* Регистрирует единицы слота и кладёт сам слот в `SlotRegistry` контейнера.
|
|
24
|
+
* @param container - Контейнер (острова/страницы/запроса)
|
|
25
|
+
* @param name - Имя слота в этом контейнере — ключ из карты `slots` дескриптора
|
|
26
|
+
*/
|
|
27
|
+
register(container: Container, name: string): void;
|
|
28
|
+
}
|
|
29
|
+
/** Опции `defineSlot`. */
|
|
30
|
+
interface DefineSlotOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Непрозрачная ссылка на view слота. Необязательна: чистое место под чужой контент
|
|
33
|
+
* своего содержимого не имеет.
|
|
34
|
+
*/
|
|
35
|
+
view?: unknown;
|
|
36
|
+
/** Data/Business единицы слота (по умолчанию пусто). */
|
|
37
|
+
units?: readonly Definition<unknown>[];
|
|
38
|
+
/**
|
|
39
|
+
* Переопределение view-слоя ДЛЯ ЭТОГО слота: `defineLayer(ViewLayerToken, { adapter })`.
|
|
40
|
+
*
|
|
41
|
+
* По умолчанию слот рисуется адаптером острова, в который попал, — так слот из чужого
|
|
42
|
+
* пакета встаёт в любое приложение. Указывать стоит там, где слот написан на другом
|
|
43
|
+
* фреймворке, чем принимающий остров.
|
|
44
|
+
*/
|
|
45
|
+
viewLayer?: LayerDefinition;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Объявляет слот — самостоятельную `define*`-единицу расширения.
|
|
49
|
+
*
|
|
50
|
+
* `register(container, name)` регистрирует `units` и добавляет `{ name, view }` в
|
|
51
|
+
* `SlotRegistry` контейнера (get-or-create). Реестр живёт в контейнере ОСТРОВА, поэтому
|
|
52
|
+
* имена в нём локальные и с соседними приложениями не пересекаются; глобальный адрес для
|
|
53
|
+
* `mountsInto` собирается из имени приложения (см. `slotAddress` в `@foxford/den/island`).
|
|
54
|
+
*
|
|
55
|
+
* Рендерит слот view-адаптер — по умолчанию тот же, что у принимающего острова; свой
|
|
56
|
+
* адаптер слот получает через `viewLayer`.
|
|
57
|
+
*
|
|
58
|
+
* @param options - Непрозрачный `view`, опциональные `units` и `viewLayer`
|
|
59
|
+
* @returns Дескриптор `SlotDefinition`
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* // приложение объявляет место у себя — имя даёт ключ в карте `slots`
|
|
63
|
+
* export default defineApp({
|
|
64
|
+
* name: 'market-app',
|
|
65
|
+
* slots: { aside: defineSlot({ view: AsideView }) },
|
|
66
|
+
* })
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // любой пакет — экспортит слот-юнит, не зная, куда он смонтируется и как будет назван
|
|
70
|
+
* export const chatSlot = defineSlot({ view: ChatView, units: [chatRepository] })
|
|
71
|
+
*/
|
|
72
|
+
declare function defineSlot({ view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
|
|
73
|
+
|
|
74
|
+
export { type DefineSlotOptions as D, type SlotDefinition as S, defineSlot as d };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { x as Definition, q as LayerDefinition } from './types-COwVwgzE.js';
|
|
2
|
+
import { Container } from '@foxford/ioc';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Дескриптор слота — host-агностичен: непрозрачный `view` + опциональные `units`.
|
|
6
|
+
*
|
|
7
|
+
* `view` типизирован как `unknown` — ядро не знает про React/Vue: рендерит его view-адаптер.
|
|
8
|
+
*
|
|
9
|
+
* Имени у слота НЕТ: его выдаёт тот, кто слот к себе взял, ключом в карте `slots` своего
|
|
10
|
+
* дескриптора. Так адрес места принадлежит хозяину места, а не пакету, который написал для
|
|
11
|
+
* него view, и занять чужое пространство имён нечем — префикс не в руках объявляющего.
|
|
12
|
+
*/
|
|
13
|
+
interface SlotDefinition {
|
|
14
|
+
/** Дискриминатор типа. */
|
|
15
|
+
readonly __type: 'slot';
|
|
16
|
+
/** Непрозрачная ссылка на view слота (компонент view-фреймворка). */
|
|
17
|
+
readonly view?: unknown;
|
|
18
|
+
/** Data/Business единицы слота (изолированная секция). */
|
|
19
|
+
readonly units: readonly Definition<unknown>[];
|
|
20
|
+
/** View-слой слота, если он переопределён (см. {@link DefineSlotOptions.viewLayer}). */
|
|
21
|
+
readonly viewLayer?: LayerDefinition;
|
|
22
|
+
/**
|
|
23
|
+
* Регистрирует единицы слота и кладёт сам слот в `SlotRegistry` контейнера.
|
|
24
|
+
* @param container - Контейнер (острова/страницы/запроса)
|
|
25
|
+
* @param name - Имя слота в этом контейнере — ключ из карты `slots` дескриптора
|
|
26
|
+
*/
|
|
27
|
+
register(container: Container, name: string): void;
|
|
28
|
+
}
|
|
29
|
+
/** Опции `defineSlot`. */
|
|
30
|
+
interface DefineSlotOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Непрозрачная ссылка на view слота. Необязательна: чистое место под чужой контент
|
|
33
|
+
* своего содержимого не имеет.
|
|
34
|
+
*/
|
|
35
|
+
view?: unknown;
|
|
36
|
+
/** Data/Business единицы слота (по умолчанию пусто). */
|
|
37
|
+
units?: readonly Definition<unknown>[];
|
|
38
|
+
/**
|
|
39
|
+
* Переопределение view-слоя ДЛЯ ЭТОГО слота: `defineLayer(ViewLayerToken, { adapter })`.
|
|
40
|
+
*
|
|
41
|
+
* По умолчанию слот рисуется адаптером острова, в который попал, — так слот из чужого
|
|
42
|
+
* пакета встаёт в любое приложение. Указывать стоит там, где слот написан на другом
|
|
43
|
+
* фреймворке, чем принимающий остров.
|
|
44
|
+
*/
|
|
45
|
+
viewLayer?: LayerDefinition;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Объявляет слот — самостоятельную `define*`-единицу расширения.
|
|
49
|
+
*
|
|
50
|
+
* `register(container, name)` регистрирует `units` и добавляет `{ name, view }` в
|
|
51
|
+
* `SlotRegistry` контейнера (get-or-create). Реестр живёт в контейнере ОСТРОВА, поэтому
|
|
52
|
+
* имена в нём локальные и с соседними приложениями не пересекаются; глобальный адрес для
|
|
53
|
+
* `mountsInto` собирается из имени приложения (см. `slotAddress` в `@foxford/den/island`).
|
|
54
|
+
*
|
|
55
|
+
* Рендерит слот view-адаптер — по умолчанию тот же, что у принимающего острова; свой
|
|
56
|
+
* адаптер слот получает через `viewLayer`.
|
|
57
|
+
*
|
|
58
|
+
* @param options - Непрозрачный `view`, опциональные `units` и `viewLayer`
|
|
59
|
+
* @returns Дескриптор `SlotDefinition`
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* // приложение объявляет место у себя — имя даёт ключ в карте `slots`
|
|
63
|
+
* export default defineApp({
|
|
64
|
+
* name: 'market-app',
|
|
65
|
+
* slots: { aside: defineSlot({ view: AsideView }) },
|
|
66
|
+
* })
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // любой пакет — экспортит слот-юнит, не зная, куда он смонтируется и как будет назван
|
|
70
|
+
* export const chatSlot = defineSlot({ view: ChatView, units: [chatRepository] })
|
|
71
|
+
*/
|
|
72
|
+
declare function defineSlot({ view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
|
|
73
|
+
|
|
74
|
+
export { type DefineSlotOptions as D, type SlotDefinition as S, defineSlot as d };
|
package/define.cjs
CHANGED
|
@@ -5,12 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
var _chunk5DJZZML5cjs = require('./chunk-5DJZZML5.cjs');
|
|
9
|
+
require('./chunk-C7BM4DGX.cjs');
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
|
|
11
|
-
var _chunk4FPCRHSMcjs = require('./chunk-4FPCRHSM.cjs');
|
|
12
|
-
require('./chunk-NRE6DV6O.cjs');
|
|
13
13
|
|
|
14
|
+
var _chunkA6ZPAM6Zcjs = require('./chunk-A6ZPAM6Z.cjs');
|
|
15
|
+
require('./chunk-XHYR3SGG.cjs');
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
|
|
@@ -20,4 +22,5 @@ require('./chunk-NRE6DV6O.cjs');
|
|
|
20
22
|
|
|
21
23
|
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
|
|
26
|
+
exports.LoggerToken = _chunkA6ZPAM6Zcjs.LoggerToken; exports.SlotRegistry = _chunk5DJZZML5cjs.SlotRegistry; exports.SlotRegistryToken = _chunk5DJZZML5cjs.SlotRegistryToken; exports.defineRepository = _chunk5DJZZML5cjs.defineRepository; exports.defineService = _chunk5DJZZML5cjs.defineService; exports.defineSlot = _chunk5DJZZML5cjs.defineSlot; exports.defineViewModel = _chunk5DJZZML5cjs.defineViewModel; exports.logger = _chunkA6ZPAM6Zcjs.logger; exports.scopeLogger = _chunkA6ZPAM6Zcjs.scopeLogger;
|
package/define.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-MDEWHqM7.cjs';
|
|
2
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-BKvArA02.cjs';
|
|
3
|
+
export { u as DefineRepositoryOptions, v as DefineServiceOptions, w as DefineViewModelOptions, x as Definition, B as RepositoryDefinition, H as ServiceDefinition, I as SlotEntry, J as SlotRegistry, K as SlotRegistryToken, V as ViewModelDefinition } from './types-COwVwgzE.cjs';
|
|
3
4
|
import { Token, Container } from '@foxford/ioc';
|
|
4
5
|
import { HierarchicalLogger } from '@foxford/logger';
|
|
5
6
|
|
package/define.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-Ca62_YCy.js';
|
|
2
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-Dil8Kr1A.js';
|
|
3
|
+
export { u as DefineRepositoryOptions, v as DefineServiceOptions, w as DefineViewModelOptions, x as Definition, B as RepositoryDefinition, H as ServiceDefinition, I as SlotEntry, J as SlotRegistry, K as SlotRegistryToken, V as ViewModelDefinition } from './types-COwVwgzE.js';
|
|
3
4
|
import { Token, Container } from '@foxford/ioc';
|
|
4
5
|
import { HierarchicalLogger } from '@foxford/logger';
|
|
5
6
|
|
package/define.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
-
LoggerToken,
|
|
3
2
|
SlotRegistry,
|
|
4
3
|
SlotRegistryToken,
|
|
5
4
|
defineRepository,
|
|
6
5
|
defineService,
|
|
7
6
|
defineSlot,
|
|
8
|
-
defineViewModel
|
|
7
|
+
defineViewModel
|
|
8
|
+
} from "./chunk-WRQC6BVJ.js";
|
|
9
|
+
import "./chunk-WBHHHICS.js";
|
|
10
|
+
import {
|
|
11
|
+
LoggerToken,
|
|
9
12
|
logger,
|
|
10
13
|
scopeLogger
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-TPBI6TOU.js";
|
|
15
|
+
import "./chunk-HJO26HIQ.js";
|
|
13
16
|
export {
|
|
14
17
|
LoggerToken,
|
|
15
18
|
SlotRegistry,
|
package/index.cjs
CHANGED
|
@@ -12,10 +12,15 @@
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunk5DJZZML5cjs = require('./chunk-5DJZZML5.cjs');
|
|
16
|
+
require('./chunk-C7BM4DGX.cjs');
|
|
16
17
|
|
|
17
18
|
|
|
18
|
-
var
|
|
19
|
+
var _chunkLJE7K7VDcjs = require('./chunk-LJE7K7VD.cjs');
|
|
20
|
+
require('./chunk-A6ZPAM6Z.cjs');
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
var _chunkXHYR3SGGcjs = require('./chunk-XHYR3SGG.cjs');
|
|
19
24
|
|
|
20
25
|
// src/core/state-registry.ts
|
|
21
26
|
var StateRegistry = class {
|
|
@@ -78,7 +83,7 @@ var ContainerManagerImpl = class {
|
|
|
78
83
|
return existing;
|
|
79
84
|
}
|
|
80
85
|
const child = this.appContainer.createChild();
|
|
81
|
-
child.bind(
|
|
86
|
+
child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
|
|
82
87
|
this.pageContainers.set(routeId, child);
|
|
83
88
|
return child;
|
|
84
89
|
}
|
|
@@ -88,7 +93,7 @@ var ContainerManagerImpl = class {
|
|
|
88
93
|
* @param routeId - Идентификатор маршрута
|
|
89
94
|
*/
|
|
90
95
|
destroyPageContainer(routeId) {
|
|
91
|
-
return
|
|
96
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
92
97
|
const container = this.pageContainers.get(routeId);
|
|
93
98
|
if (container === void 0) {
|
|
94
99
|
return;
|
|
@@ -109,8 +114,8 @@ var ContainerManagerImpl = class {
|
|
|
109
114
|
return existing;
|
|
110
115
|
}
|
|
111
116
|
const child = this.appContainer.createChild();
|
|
112
|
-
child.bind(
|
|
113
|
-
child.bind(
|
|
117
|
+
child.bind(_chunk5DJZZML5cjs.RequestContextToken).toValue(context);
|
|
118
|
+
child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
|
|
114
119
|
this.requestContainers.set(requestId, child);
|
|
115
120
|
return child;
|
|
116
121
|
}
|
|
@@ -127,7 +132,7 @@ var ContainerManagerImpl = class {
|
|
|
127
132
|
* @param requestId - Уникальный идентификатор запроса
|
|
128
133
|
*/
|
|
129
134
|
destroyRequestContainer(requestId) {
|
|
130
|
-
return
|
|
135
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
131
136
|
const container = this.requestContainers.get(requestId);
|
|
132
137
|
if (container === void 0) {
|
|
133
138
|
return;
|
|
@@ -149,7 +154,7 @@ var ContainerManagerImpl = class {
|
|
|
149
154
|
return existing;
|
|
150
155
|
}
|
|
151
156
|
const child = parent.createChild();
|
|
152
|
-
child.bind(
|
|
157
|
+
child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
|
|
153
158
|
this.ssrPageContainers.set(requestId, child);
|
|
154
159
|
return child;
|
|
155
160
|
}
|
|
@@ -160,7 +165,7 @@ var ContainerManagerImpl = class {
|
|
|
160
165
|
* @param requestId - Уникальный идентификатор запроса
|
|
161
166
|
*/
|
|
162
167
|
destroySsrPageContainer(requestId) {
|
|
163
|
-
return
|
|
168
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
164
169
|
const container = this.ssrPageContainers.get(requestId);
|
|
165
170
|
if (container === void 0) {
|
|
166
171
|
return;
|
|
@@ -188,10 +193,10 @@ var GuardRunnerImpl = class {
|
|
|
188
193
|
* @param container - Опциональный контейнер для резолвинга guards
|
|
189
194
|
*/
|
|
190
195
|
runGuards(tokens, params, container) {
|
|
191
|
-
return
|
|
196
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
192
197
|
const resolveFrom = container != null ? container : this.container;
|
|
193
198
|
const results = yield Promise.all(
|
|
194
|
-
tokens.map((token) =>
|
|
199
|
+
tokens.map((token) => _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
195
200
|
const guard = yield resolveFrom.resolve(token);
|
|
196
201
|
return guard.check(params);
|
|
197
202
|
}))
|
|
@@ -280,7 +285,7 @@ var NavigationManagerImpl = class {
|
|
|
280
285
|
* Состояние считается актуальным если история и текущий элемент согласованы.
|
|
281
286
|
*/
|
|
282
287
|
checkFreshness() {
|
|
283
|
-
return
|
|
288
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
284
289
|
var _a;
|
|
285
290
|
const lastEntry = (_a = this._history.at(-1)) != null ? _a : null;
|
|
286
291
|
return lastEntry === this.current;
|
|
@@ -310,7 +315,7 @@ var NavigationManagerImpl = class {
|
|
|
310
315
|
* @returns Результат проверки
|
|
311
316
|
*/
|
|
312
317
|
runLeaveGuards(from, to) {
|
|
313
|
-
return
|
|
318
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
314
319
|
for (const interceptor of this.interceptors) {
|
|
315
320
|
const result = yield interceptor.beforeNavigate(from, to);
|
|
316
321
|
if (!result.allow) {
|
|
@@ -409,10 +414,10 @@ var StateSerializerImpl = class {
|
|
|
409
414
|
*/
|
|
410
415
|
// eslint-disable-next-line @typescript-eslint/class-methods-use-this
|
|
411
416
|
getRegistry(container) {
|
|
412
|
-
if (!container.has(
|
|
417
|
+
if (!container.has(_chunk5DJZZML5cjs.StateRegistryToken)) {
|
|
413
418
|
return void 0;
|
|
414
419
|
}
|
|
415
|
-
const resolved = container.resolve(
|
|
420
|
+
const resolved = container.resolve(_chunk5DJZZML5cjs.StateRegistryToken);
|
|
416
421
|
return resolved instanceof Promise ? void 0 : resolved;
|
|
417
422
|
}
|
|
418
423
|
/**
|
|
@@ -456,7 +461,7 @@ var StateSerializerImpl = class {
|
|
|
456
461
|
* @param params - Параметры маршрута
|
|
457
462
|
*/
|
|
458
463
|
activateAll(container, params) {
|
|
459
|
-
return
|
|
464
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
460
465
|
const registry = this.getRegistry(container);
|
|
461
466
|
if (registry === void 0) {
|
|
462
467
|
return;
|
|
@@ -526,10 +531,10 @@ function createCore(options = {}) {
|
|
|
526
531
|
const navigationManager = new NavigationManagerImpl();
|
|
527
532
|
const stateSerializer = new StateSerializerImpl();
|
|
528
533
|
const stateCache = new StateCache();
|
|
529
|
-
container.bind(
|
|
530
|
-
container.bind(
|
|
531
|
-
container.bind(
|
|
532
|
-
container.bind(
|
|
534
|
+
container.bind(_chunk5DJZZML5cjs.ContainerManagerToken).toValue(containerManager);
|
|
535
|
+
container.bind(_chunk5DJZZML5cjs.GuardRunnerToken).toValue(guardRunner);
|
|
536
|
+
container.bind(_chunk5DJZZML5cjs.NavigationManagerToken).toValue(navigationManager);
|
|
537
|
+
container.bind(_chunk5DJZZML5cjs.StateSerializerToken).toValue(stateSerializer);
|
|
533
538
|
return {
|
|
534
539
|
container,
|
|
535
540
|
containerManager,
|
|
@@ -584,28 +589,6 @@ function defineGuard(token, options) {
|
|
|
584
589
|
};
|
|
585
590
|
}
|
|
586
591
|
|
|
587
|
-
// src/define-app.ts
|
|
588
|
-
function defineApp(token, options = {}) {
|
|
589
|
-
var _a, _b, _c;
|
|
590
|
-
const eager = (_a = options.eager) != null ? _a : [];
|
|
591
|
-
const lazy = (_b = options.lazy) != null ? _b : [];
|
|
592
|
-
const guards = (_c = options.guards) != null ? _c : [];
|
|
593
|
-
const config = { eager, guards, lazy };
|
|
594
|
-
return {
|
|
595
|
-
__meta: { eager, guards, lazy, requires: [] },
|
|
596
|
-
__type: "app",
|
|
597
|
-
/**
|
|
598
|
-
* Регистрирует AppConfig как value в IoC-контейнере.
|
|
599
|
-
* Позволяет runtime получать конфигурацию приложения через контейнер.
|
|
600
|
-
* @param container - Контейнер для регистрации
|
|
601
|
-
*/
|
|
602
|
-
register(container) {
|
|
603
|
-
container.bind(token).toValue(config);
|
|
604
|
-
},
|
|
605
|
-
token
|
|
606
|
-
};
|
|
607
|
-
}
|
|
608
|
-
|
|
609
592
|
// src/define-extension.ts
|
|
610
593
|
|
|
611
594
|
function defineExtension(token, options = {}) {
|
|
@@ -694,6 +677,7 @@ function defineLayer(token, options) {
|
|
|
694
677
|
return {
|
|
695
678
|
__meta: { name, requires: [] },
|
|
696
679
|
__type: "layer",
|
|
680
|
+
config,
|
|
697
681
|
/**
|
|
698
682
|
* Регистрирует LayerConfig как value в IoC-контейнере.
|
|
699
683
|
* Runtime использует конфиг для инициализации view-адаптера.
|
|
@@ -733,4 +717,4 @@ function defineLayer(token, options) {
|
|
|
733
717
|
|
|
734
718
|
|
|
735
719
|
|
|
736
|
-
exports.ActivatableToken =
|
|
720
|
+
exports.ActivatableToken = _chunk5DJZZML5cjs.ActivatableToken; exports.ContainerManagerImpl = ContainerManagerImpl; exports.ContainerManagerToken = _chunk5DJZZML5cjs.ContainerManagerToken; exports.GuardRunnerImpl = GuardRunnerImpl; exports.GuardRunnerToken = _chunk5DJZZML5cjs.GuardRunnerToken; exports.NavigationManagerImpl = NavigationManagerImpl; exports.NavigationManagerToken = _chunk5DJZZML5cjs.NavigationManagerToken; exports.RequestContextToken = _chunk5DJZZML5cjs.RequestContextToken; exports.SlotRegistry = _chunk5DJZZML5cjs.SlotRegistry; exports.SlotRegistryToken = _chunk5DJZZML5cjs.SlotRegistryToken; exports.StateCache = StateCache; exports.StateRegistry = StateRegistry; exports.StateRegistryToken = _chunk5DJZZML5cjs.StateRegistryToken; exports.StateSerializerImpl = StateSerializerImpl; exports.StateSerializerToken = _chunk5DJZZML5cjs.StateSerializerToken; exports.ViewLayerToken = _chunkLJE7K7VDcjs.ViewLayerToken; exports.createCore = createCore; exports.defaultGlobalResolver = defaultGlobalResolver; exports.defineActionGuard = defineActionGuard; exports.defineExtension = defineExtension; exports.defineGuard = defineGuard; exports.defineLayer = defineLayer; exports.defineLayout = defineLayout; exports.defineRepository = _chunk5DJZZML5cjs.defineRepository; exports.defineService = _chunk5DJZZML5cjs.defineService; exports.defineSlot = _chunk5DJZZML5cjs.defineSlot; exports.defineViewModel = _chunk5DJZZML5cjs.defineViewModel;
|
package/index.d.cts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer } from './types-
|
|
2
|
-
export {
|
|
1
|
+
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer, f as DefineGuardOptions, g as GuardDefinition, E as ExtensionConfig, h as DefineExtensionOptions, i as ExtensionDefinition, A as ActionGuard, j as DefineActionGuardOptions, k as ActionGuardDefinition, l as LayoutConfig, m as DefineLayoutOptions, n as LayoutDefinition, o as LayerConfig, p as DefineLayerOptions, q as LayerDefinition } from './types-COwVwgzE.cjs';
|
|
2
|
+
export { r as Activatable, s as ActivatableToken, t as ContainerManagerToken, u as DefineRepositoryOptions, v as DefineServiceOptions, w as DefineViewModelOptions, x as Definition, y as GuardRunnerToken, z as NavigationManagerToken, B as RepositoryDefinition, F as RequestContextToken, H as ServiceDefinition, I as SlotEntry, J as SlotRegistry, K as SlotRegistryToken, M as StateCache, O as StateParticipant, P as StateRegistry, Q as StateRegistryToken, T as StateSerializerToken, V as ViewModelDefinition } from './types-COwVwgzE.cjs';
|
|
3
3
|
import { Container, Token } from '@foxford/ioc';
|
|
4
4
|
import { DefinitionResolver } from './adapter.cjs';
|
|
5
|
-
|
|
6
|
-
export {
|
|
5
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-MDEWHqM7.cjs';
|
|
6
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-BKvArA02.cjs';
|
|
7
|
+
export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-zbHBVVqR.cjs';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Опции для создания Core Runtime.
|
|
@@ -269,27 +270,6 @@ declare const defaultGlobalResolver: DefinitionResolver;
|
|
|
269
270
|
*/
|
|
270
271
|
declare function defineGuard<Deps extends readonly Token<unknown>[] = readonly []>(token: Token<Guard>, options: DefineGuardOptions<Deps>): GuardDefinition;
|
|
271
272
|
|
|
272
|
-
/**
|
|
273
|
-
* Определяет конфигурацию приложения с декларативным списком сервисов и guards.
|
|
274
|
-
* Заменяет ручной вызов setupContainer() — декларирует, какие сервисы запускаются
|
|
275
|
-
* при старте (eager), какие — лениво (lazy), и какие guards применяются глобально.
|
|
276
|
-
* Регистрирует AppConfig-значение в IoC-контейнере.
|
|
277
|
-
*
|
|
278
|
-
* @param token - Токен для регистрации AppConfig в IoC
|
|
279
|
-
* @param options - Опции: eager, lazy, guards
|
|
280
|
-
* @returns AppDefinition с методом register(container)
|
|
281
|
-
*
|
|
282
|
-
* @example
|
|
283
|
-
* // app/app.ts
|
|
284
|
-
* export const app = defineApp(AppToken, {
|
|
285
|
-
* eager: [AuthServiceToken, NotificationServiceToken],
|
|
286
|
-
* lazy: [CartServiceToken],
|
|
287
|
-
* guards: [GlobalAuthGuardToken],
|
|
288
|
-
* })
|
|
289
|
-
* app.register(appContainer)
|
|
290
|
-
*/
|
|
291
|
-
declare function defineApp(token: Token<AppConfig>, options?: DefineAppOptions): AppDefinition;
|
|
292
|
-
|
|
293
273
|
/**
|
|
294
274
|
* Определяет app-scope расширение с lifecycle-хуками activate/deactivate.
|
|
295
275
|
* Extension — модуль с собственным lifecycle, живущий в скоупе приложения
|
|
@@ -383,4 +363,4 @@ declare function defineLayout(token: Token<LayoutConfig>, options?: DefineLayout
|
|
|
383
363
|
*/
|
|
384
364
|
declare function defineLayer(token: Token<LayerConfig>, options: DefineLayerOptions): LayerDefinition;
|
|
385
365
|
|
|
386
|
-
export { ActionGuard, ActionGuardDefinition,
|
|
366
|
+
export { ActionGuard, ActionGuardDefinition, ContainerManager, ContainerManagerImpl, Core, type CreateCoreOptions, DefineActionGuardOptions, DefineExtensionOptions, DefineGuardOptions, DefineLayerOptions, DefineLayoutOptions, Disposable, ExtensionConfig, ExtensionDefinition, Guard, GuardDefinition, GuardResult, GuardRunner, GuardRunnerImpl, LayerConfig, LayerDefinition, LayoutConfig, LayoutDefinition, LeaveGuardResult, NavigationEntry, NavigationInterceptor, NavigationManager, NavigationManagerImpl, RequestContext, StateSerializer, StateSerializerImpl, createCore, defaultGlobalResolver, defineActionGuard, defineExtension, defineGuard, defineLayer, defineLayout };
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer } from './types-
|
|
2
|
-
export {
|
|
1
|
+
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer, f as DefineGuardOptions, g as GuardDefinition, E as ExtensionConfig, h as DefineExtensionOptions, i as ExtensionDefinition, A as ActionGuard, j as DefineActionGuardOptions, k as ActionGuardDefinition, l as LayoutConfig, m as DefineLayoutOptions, n as LayoutDefinition, o as LayerConfig, p as DefineLayerOptions, q as LayerDefinition } from './types-COwVwgzE.js';
|
|
2
|
+
export { r as Activatable, s as ActivatableToken, t as ContainerManagerToken, u as DefineRepositoryOptions, v as DefineServiceOptions, w as DefineViewModelOptions, x as Definition, y as GuardRunnerToken, z as NavigationManagerToken, B as RepositoryDefinition, F as RequestContextToken, H as ServiceDefinition, I as SlotEntry, J as SlotRegistry, K as SlotRegistryToken, M as StateCache, O as StateParticipant, P as StateRegistry, Q as StateRegistryToken, T as StateSerializerToken, V as ViewModelDefinition } from './types-COwVwgzE.js';
|
|
3
3
|
import { Container, Token } from '@foxford/ioc';
|
|
4
4
|
import { DefinitionResolver } from './adapter.js';
|
|
5
|
-
|
|
6
|
-
export {
|
|
5
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-Ca62_YCy.js';
|
|
6
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-Dil8Kr1A.js';
|
|
7
|
+
export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-CSPKr2xy.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Опции для создания Core Runtime.
|
|
@@ -269,27 +270,6 @@ declare const defaultGlobalResolver: DefinitionResolver;
|
|
|
269
270
|
*/
|
|
270
271
|
declare function defineGuard<Deps extends readonly Token<unknown>[] = readonly []>(token: Token<Guard>, options: DefineGuardOptions<Deps>): GuardDefinition;
|
|
271
272
|
|
|
272
|
-
/**
|
|
273
|
-
* Определяет конфигурацию приложения с декларативным списком сервисов и guards.
|
|
274
|
-
* Заменяет ручной вызов setupContainer() — декларирует, какие сервисы запускаются
|
|
275
|
-
* при старте (eager), какие — лениво (lazy), и какие guards применяются глобально.
|
|
276
|
-
* Регистрирует AppConfig-значение в IoC-контейнере.
|
|
277
|
-
*
|
|
278
|
-
* @param token - Токен для регистрации AppConfig в IoC
|
|
279
|
-
* @param options - Опции: eager, lazy, guards
|
|
280
|
-
* @returns AppDefinition с методом register(container)
|
|
281
|
-
*
|
|
282
|
-
* @example
|
|
283
|
-
* // app/app.ts
|
|
284
|
-
* export const app = defineApp(AppToken, {
|
|
285
|
-
* eager: [AuthServiceToken, NotificationServiceToken],
|
|
286
|
-
* lazy: [CartServiceToken],
|
|
287
|
-
* guards: [GlobalAuthGuardToken],
|
|
288
|
-
* })
|
|
289
|
-
* app.register(appContainer)
|
|
290
|
-
*/
|
|
291
|
-
declare function defineApp(token: Token<AppConfig>, options?: DefineAppOptions): AppDefinition;
|
|
292
|
-
|
|
293
273
|
/**
|
|
294
274
|
* Определяет app-scope расширение с lifecycle-хуками activate/deactivate.
|
|
295
275
|
* Extension — модуль с собственным lifecycle, живущий в скоупе приложения
|
|
@@ -383,4 +363,4 @@ declare function defineLayout(token: Token<LayoutConfig>, options?: DefineLayout
|
|
|
383
363
|
*/
|
|
384
364
|
declare function defineLayer(token: Token<LayerConfig>, options: DefineLayerOptions): LayerDefinition;
|
|
385
365
|
|
|
386
|
-
export { ActionGuard, ActionGuardDefinition,
|
|
366
|
+
export { ActionGuard, ActionGuardDefinition, ContainerManager, ContainerManagerImpl, Core, type CreateCoreOptions, DefineActionGuardOptions, DefineExtensionOptions, DefineGuardOptions, DefineLayerOptions, DefineLayoutOptions, Disposable, ExtensionConfig, ExtensionDefinition, Guard, GuardDefinition, GuardResult, GuardRunner, GuardRunnerImpl, LayerConfig, LayerDefinition, LayoutConfig, LayoutDefinition, LeaveGuardResult, NavigationEntry, NavigationInterceptor, NavigationManager, NavigationManagerImpl, RequestContext, StateSerializer, StateSerializerImpl, createCore, defaultGlobalResolver, defineActionGuard, defineExtension, defineGuard, defineLayer, defineLayout };
|
package/index.js
CHANGED
|
@@ -12,10 +12,15 @@ import {
|
|
|
12
12
|
defineService,
|
|
13
13
|
defineSlot,
|
|
14
14
|
defineViewModel
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WRQC6BVJ.js";
|
|
16
|
+
import "./chunk-WBHHHICS.js";
|
|
17
|
+
import {
|
|
18
|
+
ViewLayerToken
|
|
19
|
+
} from "./chunk-TCYGDT2A.js";
|
|
20
|
+
import "./chunk-TPBI6TOU.js";
|
|
16
21
|
import {
|
|
17
22
|
__async
|
|
18
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-HJO26HIQ.js";
|
|
19
24
|
|
|
20
25
|
// src/core/state-registry.ts
|
|
21
26
|
var StateRegistry = class {
|
|
@@ -584,28 +589,6 @@ function defineGuard(token, options) {
|
|
|
584
589
|
};
|
|
585
590
|
}
|
|
586
591
|
|
|
587
|
-
// src/define-app.ts
|
|
588
|
-
function defineApp(token, options = {}) {
|
|
589
|
-
var _a, _b, _c;
|
|
590
|
-
const eager = (_a = options.eager) != null ? _a : [];
|
|
591
|
-
const lazy = (_b = options.lazy) != null ? _b : [];
|
|
592
|
-
const guards = (_c = options.guards) != null ? _c : [];
|
|
593
|
-
const config = { eager, guards, lazy };
|
|
594
|
-
return {
|
|
595
|
-
__meta: { eager, guards, lazy, requires: [] },
|
|
596
|
-
__type: "app",
|
|
597
|
-
/**
|
|
598
|
-
* Регистрирует AppConfig как value в IoC-контейнере.
|
|
599
|
-
* Позволяет runtime получать конфигурацию приложения через контейнер.
|
|
600
|
-
* @param container - Контейнер для регистрации
|
|
601
|
-
*/
|
|
602
|
-
register(container) {
|
|
603
|
-
container.bind(token).toValue(config);
|
|
604
|
-
},
|
|
605
|
-
token
|
|
606
|
-
};
|
|
607
|
-
}
|
|
608
|
-
|
|
609
592
|
// src/define-extension.ts
|
|
610
593
|
import { inject as inject2, Lifecycle as Lifecycle2 } from "@foxford/ioc";
|
|
611
594
|
function defineExtension(token, options = {}) {
|
|
@@ -694,6 +677,7 @@ function defineLayer(token, options) {
|
|
|
694
677
|
return {
|
|
695
678
|
__meta: { name, requires: [] },
|
|
696
679
|
__type: "layer",
|
|
680
|
+
config,
|
|
697
681
|
/**
|
|
698
682
|
* Регистрирует LayerConfig как value в IoC-контейнере.
|
|
699
683
|
* Runtime использует конфиг для инициализации view-адаптера.
|
|
@@ -721,10 +705,10 @@ export {
|
|
|
721
705
|
StateRegistryToken,
|
|
722
706
|
StateSerializerImpl,
|
|
723
707
|
StateSerializerToken,
|
|
708
|
+
ViewLayerToken,
|
|
724
709
|
createCore,
|
|
725
710
|
defaultGlobalResolver,
|
|
726
711
|
defineActionGuard,
|
|
727
|
-
defineApp,
|
|
728
712
|
defineExtension,
|
|
729
713
|
defineGuard,
|
|
730
714
|
defineLayer,
|