@tramvai/module-common 2.70.0 → 2.72.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/lib/CommonModule.browser.js +100 -0
- package/lib/CommonModule.es.js +100 -0
- package/lib/CommonModule.js +106 -0
- package/lib/actions/ActionModule.browser.js +79 -0
- package/lib/actions/ActionModule.es.js +79 -0
- package/lib/actions/ActionModule.js +82 -0
- package/lib/actions/actionChecker.browser.js +52 -0
- package/lib/actions/actionChecker.es.js +52 -0
- package/lib/actions/actionChecker.js +56 -0
- package/lib/actions/actionExecution.browser.js +107 -0
- package/lib/actions/actionExecution.es.js +107 -0
- package/lib/actions/actionExecution.js +118 -0
- package/lib/actions/actionPageRunner.browser.browser.js +33 -0
- package/lib/actions/actionPageRunner.es.js +61 -0
- package/lib/actions/actionPageRunner.js +65 -0
- package/lib/actions/actionRegistry.browser.js +33 -0
- package/lib/actions/actionRegistry.es.js +33 -0
- package/lib/actions/actionRegistry.js +45 -0
- package/lib/actions/actionTramvaiReducer.browser.js +10 -0
- package/lib/actions/actionTramvaiReducer.es.js +10 -0
- package/lib/actions/actionTramvaiReducer.js +15 -0
- package/lib/actions/conditions/always.browser.js +10 -0
- package/lib/actions/conditions/always.es.js +10 -0
- package/lib/actions/conditions/always.js +14 -0
- package/lib/actions/conditions/helpers.browser.js +4 -0
- package/lib/actions/conditions/helpers.es.js +4 -0
- package/lib/actions/conditions/helpers.js +9 -0
- package/lib/actions/conditions/onlyBrowser.browser.js +12 -0
- package/lib/actions/conditions/onlyBrowser.es.js +12 -0
- package/lib/actions/conditions/onlyBrowser.js +16 -0
- package/lib/actions/conditions/onlyServer.browser.js +12 -0
- package/lib/actions/conditions/onlyServer.es.js +12 -0
- package/lib/actions/conditions/onlyServer.js +16 -0
- package/lib/actions/conditions/pageBrowser.browser.js +13 -0
- package/lib/actions/conditions/pageBrowser.es.js +13 -0
- package/lib/actions/conditions/pageBrowser.js +17 -0
- package/lib/actions/conditions/pageServer.browser.js +13 -0
- package/lib/actions/conditions/pageServer.es.js +13 -0
- package/lib/actions/conditions/pageServer.js +17 -0
- package/lib/actions/constants.browser.js +9 -0
- package/lib/actions/constants.es.js +9 -0
- package/lib/actions/constants.js +13 -0
- package/lib/bundleManager/bundleManager.browser.js +105 -0
- package/lib/bundleManager/bundleManager.es.js +105 -0
- package/lib/bundleManager/bundleManager.js +115 -0
- package/lib/cache/CacheModule.browser.js +58 -0
- package/lib/cache/CacheModule.es.js +58 -0
- package/lib/cache/CacheModule.js +62 -0
- package/lib/cache/cacheFactory.browser.js +7 -0
- package/lib/cache/cacheFactory.es.js +7 -0
- package/lib/cache/cacheFactory.js +15 -0
- package/lib/cache/clientProviders.browser.js +3 -0
- package/lib/cache/papi.es.js +18 -0
- package/lib/cache/papi.js +22 -0
- package/lib/cache/serverProviders.es.js +18 -0
- package/lib/cache/serverProviders.js +22 -0
- package/lib/child-app/ChildAppModule.browser.js +38 -0
- package/lib/child-app/ChildAppModule.es.js +38 -0
- package/lib/child-app/ChildAppModule.js +40 -0
- package/lib/child-app/actions.browser.js +19 -0
- package/lib/child-app/actions.es.js +19 -0
- package/lib/child-app/actions.js +23 -0
- package/lib/child-app/clientProviders.browser.js +18 -0
- package/lib/child-app/command.browser.js +35 -0
- package/lib/child-app/command.es.js +35 -0
- package/lib/child-app/command.js +40 -0
- package/lib/child-app/serverProviders.es.js +3 -0
- package/lib/child-app/serverProviders.js +7 -0
- package/lib/child-app/state.browser.js +13 -0
- package/lib/child-app/state.es.js +13 -0
- package/lib/child-app/state.js +17 -0
- package/lib/command/CommandModule.browser.js +52 -0
- package/lib/command/CommandModule.es.js +52 -0
- package/lib/command/CommandModule.js +54 -0
- package/lib/command/commandLineRunner.browser.js +147 -0
- package/lib/command/commandLineRunner.es.js +147 -0
- package/lib/command/commandLineRunner.js +151 -0
- package/lib/command/defaultLines.browser.js +25 -0
- package/lib/command/defaultLines.es.js +25 -0
- package/lib/command/defaultLines.js +29 -0
- package/lib/componentRegistry/componentRegistry.browser.js +25 -0
- package/lib/componentRegistry/componentRegistry.es.js +25 -0
- package/lib/componentRegistry/componentRegistry.js +34 -0
- package/lib/createConsumerContext/createConsumerContext.browser.js +62 -0
- package/lib/createConsumerContext/createConsumerContext.es.js +62 -0
- package/lib/createConsumerContext/createConsumerContext.js +67 -0
- package/lib/executionContext/executionContextManager.browser.js +57 -0
- package/lib/executionContext/executionContextManager.es.js +57 -0
- package/lib/executionContext/executionContextManager.js +61 -0
- package/lib/index.browser.js +13 -1300
- package/lib/index.es.js +13 -1318
- package/lib/index.js +38 -1341
- package/lib/providers/clientProviders.browser.js +22 -0
- package/lib/providers/serverProviders.es.js +3 -0
- package/lib/providers/serverProviders.js +7 -0
- package/lib/pubsub/PubSubModule.browser.js +44 -0
- package/lib/pubsub/PubSubModule.es.js +44 -0
- package/lib/pubsub/PubSubModule.js +46 -0
- package/lib/requestManager/RequestManagerModule.browser.browser.js +38 -0
- package/lib/requestManager/RequestManagerModule.es.js +35 -0
- package/lib/requestManager/RequestManagerModule.js +37 -0
- package/lib/requestManager/RequestManagerStore.browser.js +8 -0
- package/lib/requestManager/RequestManagerStore.es.js +8 -0
- package/lib/requestManager/RequestManagerStore.js +13 -0
- package/lib/requestManager/requestManager.browser.js +57 -0
- package/lib/requestManager/requestManager.es.js +57 -0
- package/lib/requestManager/requestManager.js +61 -0
- package/lib/requestManager/sharedProviders.browser.js +23 -0
- package/lib/requestManager/sharedProviders.es.js +23 -0
- package/lib/requestManager/sharedProviders.js +27 -0
- package/lib/responseManager/ResponseManagerModule.browser.browser.js +21 -0
- package/lib/responseManager/ResponseManagerModule.es.js +13 -0
- package/lib/responseManager/ResponseManagerModule.js +15 -0
- package/lib/responseManager/responseManager.browser.js +52 -0
- package/lib/responseManager/responseManager.es.js +52 -0
- package/lib/responseManager/responseManager.js +61 -0
- package/lib/responseManager/sharedProviders.browser.js +13 -0
- package/lib/responseManager/sharedProviders.es.js +13 -0
- package/lib/responseManager/sharedProviders.js +17 -0
- package/lib/state/StateModule.browser.js +54 -0
- package/lib/state/StateModule.es.js +54 -0
- package/lib/state/StateModule.js +60 -0
- package/package.json +24 -25
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import eachObj from '@tinkoff/utils/object/each';
|
|
3
|
+
import { Module, provide, Scope, BUNDLE_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
|
|
4
|
+
import { EnvironmentModule } from '@tramvai/module-environment';
|
|
5
|
+
import { CookieModule } from '@tramvai/module-cookie';
|
|
6
|
+
import { LogModule } from '@tramvai/module-log';
|
|
7
|
+
import { Hooks } from '@tinkoff/hook-runner';
|
|
8
|
+
import { HOOK_TOKEN, COMPONENT_REGISTRY_TOKEN, BUNDLE_MANAGER_TOKEN, ADDITIONAL_BUNDLE_TOKEN, ACTION_REGISTRY_TOKEN, DISPATCHER_TOKEN, LOGGER_TOKEN, CONTEXT_TOKEN, PUBSUB_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN } from '@tramvai/tokens-common';
|
|
9
|
+
import { BundleManager } from './bundleManager/bundleManager.browser.js';
|
|
10
|
+
import { ComponentRegistry } from './componentRegistry/componentRegistry.browser.js';
|
|
11
|
+
import { RequestManagerModule } from './requestManager/RequestManagerModule.browser.browser.js';
|
|
12
|
+
import { ResponseManagerModule } from './responseManager/ResponseManagerModule.browser.browser.js';
|
|
13
|
+
import { createConsumerContext } from './createConsumerContext/createConsumerContext.browser.js';
|
|
14
|
+
import { CommandModule } from './command/CommandModule.browser.js';
|
|
15
|
+
import { PubSubModule } from './pubsub/PubSubModule.browser.js';
|
|
16
|
+
import { providers } from './providers/clientProviders.browser.js';
|
|
17
|
+
import { ActionModule } from './actions/ActionModule.browser.js';
|
|
18
|
+
import { StateModule } from './state/StateModule.browser.js';
|
|
19
|
+
import { CacheModule } from './cache/CacheModule.browser.js';
|
|
20
|
+
import { ExecutionContextManager } from './executionContext/executionContextManager.browser.js';
|
|
21
|
+
|
|
22
|
+
let CommonModule = class CommonModule {
|
|
23
|
+
};
|
|
24
|
+
CommonModule = __decorate([
|
|
25
|
+
Module({
|
|
26
|
+
imports: [
|
|
27
|
+
CommandModule,
|
|
28
|
+
EnvironmentModule,
|
|
29
|
+
PubSubModule,
|
|
30
|
+
LogModule,
|
|
31
|
+
CookieModule,
|
|
32
|
+
ActionModule,
|
|
33
|
+
StateModule,
|
|
34
|
+
RequestManagerModule,
|
|
35
|
+
ResponseManagerModule,
|
|
36
|
+
CacheModule,
|
|
37
|
+
],
|
|
38
|
+
providers: [
|
|
39
|
+
provide({
|
|
40
|
+
// Инстанс хук системы
|
|
41
|
+
provide: HOOK_TOKEN,
|
|
42
|
+
scope: Scope.SINGLETON,
|
|
43
|
+
useClass: Hooks,
|
|
44
|
+
}),
|
|
45
|
+
provide({
|
|
46
|
+
// Регистр ui компонентов
|
|
47
|
+
provide: COMPONENT_REGISTRY_TOKEN,
|
|
48
|
+
scope: Scope.SINGLETON,
|
|
49
|
+
useClass: ComponentRegistry,
|
|
50
|
+
deps: {
|
|
51
|
+
componentList: { token: 'componentDefaultList', optional: true },
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
provide({
|
|
55
|
+
// Управление бандлами, хранение и получение
|
|
56
|
+
provide: BUNDLE_MANAGER_TOKEN,
|
|
57
|
+
scope: Scope.SINGLETON,
|
|
58
|
+
useFactory: ({ additionalBundleList, ...bundleManagerDeps }) => {
|
|
59
|
+
additionalBundleList === null || additionalBundleList === void 0 ? void 0 : additionalBundleList.forEach((bundles) => {
|
|
60
|
+
eachObj((bundle, name) => {
|
|
61
|
+
const bundleAlreadyExists = name in bundleManagerDeps.bundleList;
|
|
62
|
+
if (!bundleAlreadyExists) {
|
|
63
|
+
// eslint-disable-next-line no-param-reassign
|
|
64
|
+
bundleManagerDeps.bundleList[name] = () => Promise.resolve({ default: bundle });
|
|
65
|
+
}
|
|
66
|
+
}, bundles);
|
|
67
|
+
});
|
|
68
|
+
return new BundleManager(bundleManagerDeps);
|
|
69
|
+
},
|
|
70
|
+
deps: {
|
|
71
|
+
bundleList: BUNDLE_LIST_TOKEN,
|
|
72
|
+
additionalBundleList: { token: ADDITIONAL_BUNDLE_TOKEN, optional: true },
|
|
73
|
+
componentRegistry: COMPONENT_REGISTRY_TOKEN,
|
|
74
|
+
actionRegistry: ACTION_REGISTRY_TOKEN,
|
|
75
|
+
dispatcher: DISPATCHER_TOKEN,
|
|
76
|
+
logger: LOGGER_TOKEN,
|
|
77
|
+
},
|
|
78
|
+
}),
|
|
79
|
+
provide({
|
|
80
|
+
// Клиентский контекст исполнения
|
|
81
|
+
provide: CONTEXT_TOKEN,
|
|
82
|
+
scope: Scope.REQUEST,
|
|
83
|
+
useFactory: createConsumerContext,
|
|
84
|
+
deps: {
|
|
85
|
+
di: DI_TOKEN,
|
|
86
|
+
pubsub: PUBSUB_TOKEN,
|
|
87
|
+
dispatcherContext: DISPATCHER_CONTEXT_TOKEN,
|
|
88
|
+
store: STORE_TOKEN,
|
|
89
|
+
},
|
|
90
|
+
}),
|
|
91
|
+
provide({
|
|
92
|
+
provide: EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
93
|
+
useClass: ExecutionContextManager,
|
|
94
|
+
}),
|
|
95
|
+
...providers,
|
|
96
|
+
],
|
|
97
|
+
})
|
|
98
|
+
], CommonModule);
|
|
99
|
+
|
|
100
|
+
export { CommonModule };
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import eachObj from '@tinkoff/utils/object/each';
|
|
3
|
+
import { Module, provide, Scope, BUNDLE_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
|
|
4
|
+
import { EnvironmentModule } from '@tramvai/module-environment';
|
|
5
|
+
import { CookieModule } from '@tramvai/module-cookie';
|
|
6
|
+
import { LogModule } from '@tramvai/module-log';
|
|
7
|
+
import { Hooks } from '@tinkoff/hook-runner';
|
|
8
|
+
import { HOOK_TOKEN, COMPONENT_REGISTRY_TOKEN, BUNDLE_MANAGER_TOKEN, ADDITIONAL_BUNDLE_TOKEN, ACTION_REGISTRY_TOKEN, DISPATCHER_TOKEN, LOGGER_TOKEN, CONTEXT_TOKEN, PUBSUB_TOKEN, DISPATCHER_CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN } from '@tramvai/tokens-common';
|
|
9
|
+
import { BundleManager } from './bundleManager/bundleManager.es.js';
|
|
10
|
+
import { ComponentRegistry } from './componentRegistry/componentRegistry.es.js';
|
|
11
|
+
import { RequestManagerModule } from './requestManager/RequestManagerModule.es.js';
|
|
12
|
+
import { ResponseManagerModule } from './responseManager/ResponseManagerModule.es.js';
|
|
13
|
+
import { createConsumerContext } from './createConsumerContext/createConsumerContext.es.js';
|
|
14
|
+
import { CommandModule } from './command/CommandModule.es.js';
|
|
15
|
+
import { PubSubModule } from './pubsub/PubSubModule.es.js';
|
|
16
|
+
import { providers } from './providers/serverProviders.es.js';
|
|
17
|
+
import { ActionModule } from './actions/ActionModule.es.js';
|
|
18
|
+
import { StateModule } from './state/StateModule.es.js';
|
|
19
|
+
import { CacheModule } from './cache/CacheModule.es.js';
|
|
20
|
+
import { ExecutionContextManager } from './executionContext/executionContextManager.es.js';
|
|
21
|
+
|
|
22
|
+
let CommonModule = class CommonModule {
|
|
23
|
+
};
|
|
24
|
+
CommonModule = __decorate([
|
|
25
|
+
Module({
|
|
26
|
+
imports: [
|
|
27
|
+
CommandModule,
|
|
28
|
+
EnvironmentModule,
|
|
29
|
+
PubSubModule,
|
|
30
|
+
LogModule,
|
|
31
|
+
CookieModule,
|
|
32
|
+
ActionModule,
|
|
33
|
+
StateModule,
|
|
34
|
+
RequestManagerModule,
|
|
35
|
+
ResponseManagerModule,
|
|
36
|
+
CacheModule,
|
|
37
|
+
],
|
|
38
|
+
providers: [
|
|
39
|
+
provide({
|
|
40
|
+
// Инстанс хук системы
|
|
41
|
+
provide: HOOK_TOKEN,
|
|
42
|
+
scope: Scope.SINGLETON,
|
|
43
|
+
useClass: Hooks,
|
|
44
|
+
}),
|
|
45
|
+
provide({
|
|
46
|
+
// Регистр ui компонентов
|
|
47
|
+
provide: COMPONENT_REGISTRY_TOKEN,
|
|
48
|
+
scope: Scope.SINGLETON,
|
|
49
|
+
useClass: ComponentRegistry,
|
|
50
|
+
deps: {
|
|
51
|
+
componentList: { token: 'componentDefaultList', optional: true },
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
provide({
|
|
55
|
+
// Управление бандлами, хранение и получение
|
|
56
|
+
provide: BUNDLE_MANAGER_TOKEN,
|
|
57
|
+
scope: Scope.SINGLETON,
|
|
58
|
+
useFactory: ({ additionalBundleList, ...bundleManagerDeps }) => {
|
|
59
|
+
additionalBundleList === null || additionalBundleList === void 0 ? void 0 : additionalBundleList.forEach((bundles) => {
|
|
60
|
+
eachObj((bundle, name) => {
|
|
61
|
+
const bundleAlreadyExists = name in bundleManagerDeps.bundleList;
|
|
62
|
+
if (!bundleAlreadyExists) {
|
|
63
|
+
// eslint-disable-next-line no-param-reassign
|
|
64
|
+
bundleManagerDeps.bundleList[name] = () => Promise.resolve({ default: bundle });
|
|
65
|
+
}
|
|
66
|
+
}, bundles);
|
|
67
|
+
});
|
|
68
|
+
return new BundleManager(bundleManagerDeps);
|
|
69
|
+
},
|
|
70
|
+
deps: {
|
|
71
|
+
bundleList: BUNDLE_LIST_TOKEN,
|
|
72
|
+
additionalBundleList: { token: ADDITIONAL_BUNDLE_TOKEN, optional: true },
|
|
73
|
+
componentRegistry: COMPONENT_REGISTRY_TOKEN,
|
|
74
|
+
actionRegistry: ACTION_REGISTRY_TOKEN,
|
|
75
|
+
dispatcher: DISPATCHER_TOKEN,
|
|
76
|
+
logger: LOGGER_TOKEN,
|
|
77
|
+
},
|
|
78
|
+
}),
|
|
79
|
+
provide({
|
|
80
|
+
// Клиентский контекст исполнения
|
|
81
|
+
provide: CONTEXT_TOKEN,
|
|
82
|
+
scope: Scope.REQUEST,
|
|
83
|
+
useFactory: createConsumerContext,
|
|
84
|
+
deps: {
|
|
85
|
+
di: DI_TOKEN,
|
|
86
|
+
pubsub: PUBSUB_TOKEN,
|
|
87
|
+
dispatcherContext: DISPATCHER_CONTEXT_TOKEN,
|
|
88
|
+
store: STORE_TOKEN,
|
|
89
|
+
},
|
|
90
|
+
}),
|
|
91
|
+
provide({
|
|
92
|
+
provide: EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
93
|
+
useClass: ExecutionContextManager,
|
|
94
|
+
}),
|
|
95
|
+
...providers,
|
|
96
|
+
],
|
|
97
|
+
})
|
|
98
|
+
], CommonModule);
|
|
99
|
+
|
|
100
|
+
export { CommonModule };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var eachObj = require('@tinkoff/utils/object/each');
|
|
7
|
+
var core = require('@tramvai/core');
|
|
8
|
+
var moduleEnvironment = require('@tramvai/module-environment');
|
|
9
|
+
var moduleCookie = require('@tramvai/module-cookie');
|
|
10
|
+
var moduleLog = require('@tramvai/module-log');
|
|
11
|
+
var hookRunner = require('@tinkoff/hook-runner');
|
|
12
|
+
var tokensCommon = require('@tramvai/tokens-common');
|
|
13
|
+
var bundleManager = require('./bundleManager/bundleManager.js');
|
|
14
|
+
var componentRegistry = require('./componentRegistry/componentRegistry.js');
|
|
15
|
+
var RequestManagerModule = require('./requestManager/RequestManagerModule.js');
|
|
16
|
+
var ResponseManagerModule = require('./responseManager/ResponseManagerModule.js');
|
|
17
|
+
var createConsumerContext = require('./createConsumerContext/createConsumerContext.js');
|
|
18
|
+
var CommandModule = require('./command/CommandModule.js');
|
|
19
|
+
var PubSubModule = require('./pubsub/PubSubModule.js');
|
|
20
|
+
var serverProviders = require('./providers/serverProviders.js');
|
|
21
|
+
var ActionModule = require('./actions/ActionModule.js');
|
|
22
|
+
var StateModule = require('./state/StateModule.js');
|
|
23
|
+
var CacheModule = require('./cache/CacheModule.js');
|
|
24
|
+
var executionContextManager = require('./executionContext/executionContextManager.js');
|
|
25
|
+
|
|
26
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
|
+
|
|
28
|
+
var eachObj__default = /*#__PURE__*/_interopDefaultLegacy(eachObj);
|
|
29
|
+
|
|
30
|
+
exports.CommonModule = class CommonModule {
|
|
31
|
+
};
|
|
32
|
+
exports.CommonModule = tslib.__decorate([
|
|
33
|
+
core.Module({
|
|
34
|
+
imports: [
|
|
35
|
+
CommandModule.CommandModule,
|
|
36
|
+
moduleEnvironment.EnvironmentModule,
|
|
37
|
+
PubSubModule.PubSubModule,
|
|
38
|
+
moduleLog.LogModule,
|
|
39
|
+
moduleCookie.CookieModule,
|
|
40
|
+
ActionModule.ActionModule,
|
|
41
|
+
StateModule.StateModule,
|
|
42
|
+
RequestManagerModule.RequestManagerModule,
|
|
43
|
+
ResponseManagerModule.ResponseManagerModule,
|
|
44
|
+
CacheModule.CacheModule,
|
|
45
|
+
],
|
|
46
|
+
providers: [
|
|
47
|
+
core.provide({
|
|
48
|
+
// Инстанс хук системы
|
|
49
|
+
provide: tokensCommon.HOOK_TOKEN,
|
|
50
|
+
scope: core.Scope.SINGLETON,
|
|
51
|
+
useClass: hookRunner.Hooks,
|
|
52
|
+
}),
|
|
53
|
+
core.provide({
|
|
54
|
+
// Регистр ui компонентов
|
|
55
|
+
provide: tokensCommon.COMPONENT_REGISTRY_TOKEN,
|
|
56
|
+
scope: core.Scope.SINGLETON,
|
|
57
|
+
useClass: componentRegistry.ComponentRegistry,
|
|
58
|
+
deps: {
|
|
59
|
+
componentList: { token: 'componentDefaultList', optional: true },
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
62
|
+
core.provide({
|
|
63
|
+
// Управление бандлами, хранение и получение
|
|
64
|
+
provide: tokensCommon.BUNDLE_MANAGER_TOKEN,
|
|
65
|
+
scope: core.Scope.SINGLETON,
|
|
66
|
+
useFactory: ({ additionalBundleList, ...bundleManagerDeps }) => {
|
|
67
|
+
additionalBundleList === null || additionalBundleList === void 0 ? void 0 : additionalBundleList.forEach((bundles) => {
|
|
68
|
+
eachObj__default["default"]((bundle, name) => {
|
|
69
|
+
const bundleAlreadyExists = name in bundleManagerDeps.bundleList;
|
|
70
|
+
if (!bundleAlreadyExists) {
|
|
71
|
+
// eslint-disable-next-line no-param-reassign
|
|
72
|
+
bundleManagerDeps.bundleList[name] = () => Promise.resolve({ default: bundle });
|
|
73
|
+
}
|
|
74
|
+
}, bundles);
|
|
75
|
+
});
|
|
76
|
+
return new bundleManager.BundleManager(bundleManagerDeps);
|
|
77
|
+
},
|
|
78
|
+
deps: {
|
|
79
|
+
bundleList: core.BUNDLE_LIST_TOKEN,
|
|
80
|
+
additionalBundleList: { token: tokensCommon.ADDITIONAL_BUNDLE_TOKEN, optional: true },
|
|
81
|
+
componentRegistry: tokensCommon.COMPONENT_REGISTRY_TOKEN,
|
|
82
|
+
actionRegistry: tokensCommon.ACTION_REGISTRY_TOKEN,
|
|
83
|
+
dispatcher: tokensCommon.DISPATCHER_TOKEN,
|
|
84
|
+
logger: tokensCommon.LOGGER_TOKEN,
|
|
85
|
+
},
|
|
86
|
+
}),
|
|
87
|
+
core.provide({
|
|
88
|
+
// Клиентский контекст исполнения
|
|
89
|
+
provide: tokensCommon.CONTEXT_TOKEN,
|
|
90
|
+
scope: core.Scope.REQUEST,
|
|
91
|
+
useFactory: createConsumerContext.createConsumerContext,
|
|
92
|
+
deps: {
|
|
93
|
+
di: core.DI_TOKEN,
|
|
94
|
+
pubsub: tokensCommon.PUBSUB_TOKEN,
|
|
95
|
+
dispatcherContext: tokensCommon.DISPATCHER_CONTEXT_TOKEN,
|
|
96
|
+
store: tokensCommon.STORE_TOKEN,
|
|
97
|
+
},
|
|
98
|
+
}),
|
|
99
|
+
core.provide({
|
|
100
|
+
provide: tokensCommon.EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
101
|
+
useClass: executionContextManager.ExecutionContextManager,
|
|
102
|
+
}),
|
|
103
|
+
...serverProviders.providers,
|
|
104
|
+
],
|
|
105
|
+
})
|
|
106
|
+
], exports.CommonModule);
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import { createToken, Module, provide, Scope, ACTIONS_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
|
|
3
|
+
import { COMBINE_REDUCERS, ACTION_REGISTRY_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN, ACTION_PAGE_RUNNER_TOKEN, COMMAND_LINE_EXECUTION_CONTEXT_TOKEN, LOGGER_TOKEN } from '@tramvai/tokens-common';
|
|
4
|
+
import { actionTramvaiReducer } from './actionTramvaiReducer.browser.js';
|
|
5
|
+
import { ActionExecution } from './actionExecution.browser.js';
|
|
6
|
+
import { ActionRegistry } from './actionRegistry.browser.js';
|
|
7
|
+
import { ActionPageRunner } from './actionPageRunner.browser.browser.js';
|
|
8
|
+
import { alwaysCondition } from './conditions/always.browser.js';
|
|
9
|
+
export { alwaysCondition } from './conditions/always.browser.js';
|
|
10
|
+
import { onlyServer } from './conditions/onlyServer.browser.js';
|
|
11
|
+
export { onlyServer } from './conditions/onlyServer.browser.js';
|
|
12
|
+
import { onlyBrowser } from './conditions/onlyBrowser.browser.js';
|
|
13
|
+
export { onlyBrowser } from './conditions/onlyBrowser.browser.js';
|
|
14
|
+
import { pageServer } from './conditions/pageServer.browser.js';
|
|
15
|
+
export { pageServer } from './conditions/pageServer.browser.js';
|
|
16
|
+
import { pageBrowser } from './conditions/pageBrowser.browser.js';
|
|
17
|
+
export { pageBrowser } from './conditions/pageBrowser.browser.js';
|
|
18
|
+
|
|
19
|
+
const LIMIT_ACTION_GLOBAL_TIME_RUN = createToken('limitActionGlobalTimeRun');
|
|
20
|
+
let ActionModule = class ActionModule {
|
|
21
|
+
};
|
|
22
|
+
ActionModule = __decorate([
|
|
23
|
+
Module({
|
|
24
|
+
providers: [
|
|
25
|
+
provide({
|
|
26
|
+
provide: COMBINE_REDUCERS,
|
|
27
|
+
multi: true,
|
|
28
|
+
useValue: actionTramvaiReducer,
|
|
29
|
+
}),
|
|
30
|
+
provide({
|
|
31
|
+
// Регистер глобальных экшенов
|
|
32
|
+
provide: ACTION_REGISTRY_TOKEN,
|
|
33
|
+
scope: Scope.SINGLETON,
|
|
34
|
+
useClass: ActionRegistry,
|
|
35
|
+
deps: { actionsList: ACTIONS_LIST_TOKEN },
|
|
36
|
+
}),
|
|
37
|
+
provide({
|
|
38
|
+
provide: ACTION_EXECUTION_TOKEN,
|
|
39
|
+
scope: Scope.REQUEST,
|
|
40
|
+
useClass: ActionExecution,
|
|
41
|
+
deps: {
|
|
42
|
+
actionConditionals: { token: ACTION_CONDITIONALS, optional: true },
|
|
43
|
+
context: CONTEXT_TOKEN,
|
|
44
|
+
store: STORE_TOKEN,
|
|
45
|
+
di: DI_TOKEN,
|
|
46
|
+
executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
47
|
+
transformAction: {
|
|
48
|
+
token: 'actionTransformAction',
|
|
49
|
+
optional: true,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
}),
|
|
53
|
+
provide({
|
|
54
|
+
provide: ACTION_PAGE_RUNNER_TOKEN,
|
|
55
|
+
scope: Scope.REQUEST,
|
|
56
|
+
useClass: ActionPageRunner,
|
|
57
|
+
deps: {
|
|
58
|
+
actionExecution: ACTION_EXECUTION_TOKEN,
|
|
59
|
+
executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
60
|
+
commandLineExecutionContext: COMMAND_LINE_EXECUTION_CONTEXT_TOKEN,
|
|
61
|
+
store: STORE_TOKEN,
|
|
62
|
+
limitTime: LIMIT_ACTION_GLOBAL_TIME_RUN,
|
|
63
|
+
logger: LOGGER_TOKEN,
|
|
64
|
+
},
|
|
65
|
+
}),
|
|
66
|
+
provide({
|
|
67
|
+
provide: LIMIT_ACTION_GLOBAL_TIME_RUN,
|
|
68
|
+
useValue: 500,
|
|
69
|
+
}),
|
|
70
|
+
provide({
|
|
71
|
+
provide: ACTION_CONDITIONALS,
|
|
72
|
+
multi: true,
|
|
73
|
+
useValue: [alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser],
|
|
74
|
+
}),
|
|
75
|
+
],
|
|
76
|
+
})
|
|
77
|
+
], ActionModule);
|
|
78
|
+
|
|
79
|
+
export { ActionModule };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import { createToken, Module, provide, Scope, ACTIONS_LIST_TOKEN, DI_TOKEN } from '@tramvai/core';
|
|
3
|
+
import { COMBINE_REDUCERS, ACTION_REGISTRY_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN, ACTION_PAGE_RUNNER_TOKEN, COMMAND_LINE_EXECUTION_CONTEXT_TOKEN, LOGGER_TOKEN } from '@tramvai/tokens-common';
|
|
4
|
+
import { actionTramvaiReducer } from './actionTramvaiReducer.es.js';
|
|
5
|
+
import { ActionExecution } from './actionExecution.es.js';
|
|
6
|
+
import { ActionRegistry } from './actionRegistry.es.js';
|
|
7
|
+
import { ActionPageRunner } from './actionPageRunner.es.js';
|
|
8
|
+
import { alwaysCondition } from './conditions/always.es.js';
|
|
9
|
+
export { alwaysCondition } from './conditions/always.es.js';
|
|
10
|
+
import { onlyServer } from './conditions/onlyServer.es.js';
|
|
11
|
+
export { onlyServer } from './conditions/onlyServer.es.js';
|
|
12
|
+
import { onlyBrowser } from './conditions/onlyBrowser.es.js';
|
|
13
|
+
export { onlyBrowser } from './conditions/onlyBrowser.es.js';
|
|
14
|
+
import { pageServer } from './conditions/pageServer.es.js';
|
|
15
|
+
export { pageServer } from './conditions/pageServer.es.js';
|
|
16
|
+
import { pageBrowser } from './conditions/pageBrowser.es.js';
|
|
17
|
+
export { pageBrowser } from './conditions/pageBrowser.es.js';
|
|
18
|
+
|
|
19
|
+
const LIMIT_ACTION_GLOBAL_TIME_RUN = createToken('limitActionGlobalTimeRun');
|
|
20
|
+
let ActionModule = class ActionModule {
|
|
21
|
+
};
|
|
22
|
+
ActionModule = __decorate([
|
|
23
|
+
Module({
|
|
24
|
+
providers: [
|
|
25
|
+
provide({
|
|
26
|
+
provide: COMBINE_REDUCERS,
|
|
27
|
+
multi: true,
|
|
28
|
+
useValue: actionTramvaiReducer,
|
|
29
|
+
}),
|
|
30
|
+
provide({
|
|
31
|
+
// Регистер глобальных экшенов
|
|
32
|
+
provide: ACTION_REGISTRY_TOKEN,
|
|
33
|
+
scope: Scope.SINGLETON,
|
|
34
|
+
useClass: ActionRegistry,
|
|
35
|
+
deps: { actionsList: ACTIONS_LIST_TOKEN },
|
|
36
|
+
}),
|
|
37
|
+
provide({
|
|
38
|
+
provide: ACTION_EXECUTION_TOKEN,
|
|
39
|
+
scope: Scope.REQUEST,
|
|
40
|
+
useClass: ActionExecution,
|
|
41
|
+
deps: {
|
|
42
|
+
actionConditionals: { token: ACTION_CONDITIONALS, optional: true },
|
|
43
|
+
context: CONTEXT_TOKEN,
|
|
44
|
+
store: STORE_TOKEN,
|
|
45
|
+
di: DI_TOKEN,
|
|
46
|
+
executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
47
|
+
transformAction: {
|
|
48
|
+
token: 'actionTransformAction',
|
|
49
|
+
optional: true,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
}),
|
|
53
|
+
provide({
|
|
54
|
+
provide: ACTION_PAGE_RUNNER_TOKEN,
|
|
55
|
+
scope: Scope.REQUEST,
|
|
56
|
+
useClass: ActionPageRunner,
|
|
57
|
+
deps: {
|
|
58
|
+
actionExecution: ACTION_EXECUTION_TOKEN,
|
|
59
|
+
executionContextManager: EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
60
|
+
commandLineExecutionContext: COMMAND_LINE_EXECUTION_CONTEXT_TOKEN,
|
|
61
|
+
store: STORE_TOKEN,
|
|
62
|
+
limitTime: LIMIT_ACTION_GLOBAL_TIME_RUN,
|
|
63
|
+
logger: LOGGER_TOKEN,
|
|
64
|
+
},
|
|
65
|
+
}),
|
|
66
|
+
provide({
|
|
67
|
+
provide: LIMIT_ACTION_GLOBAL_TIME_RUN,
|
|
68
|
+
useValue: 500,
|
|
69
|
+
}),
|
|
70
|
+
provide({
|
|
71
|
+
provide: ACTION_CONDITIONALS,
|
|
72
|
+
multi: true,
|
|
73
|
+
useValue: [alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser],
|
|
74
|
+
}),
|
|
75
|
+
],
|
|
76
|
+
})
|
|
77
|
+
], ActionModule);
|
|
78
|
+
|
|
79
|
+
export { ActionModule };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var core = require('@tramvai/core');
|
|
7
|
+
var tokensCommon = require('@tramvai/tokens-common');
|
|
8
|
+
var actionTramvaiReducer = require('./actionTramvaiReducer.js');
|
|
9
|
+
var actionExecution = require('./actionExecution.js');
|
|
10
|
+
var actionRegistry = require('./actionRegistry.js');
|
|
11
|
+
var actionPageRunner = require('./actionPageRunner.js');
|
|
12
|
+
var always = require('./conditions/always.js');
|
|
13
|
+
var onlyServer = require('./conditions/onlyServer.js');
|
|
14
|
+
var onlyBrowser = require('./conditions/onlyBrowser.js');
|
|
15
|
+
var pageServer = require('./conditions/pageServer.js');
|
|
16
|
+
var pageBrowser = require('./conditions/pageBrowser.js');
|
|
17
|
+
|
|
18
|
+
const LIMIT_ACTION_GLOBAL_TIME_RUN = core.createToken('limitActionGlobalTimeRun');
|
|
19
|
+
exports.ActionModule = class ActionModule {
|
|
20
|
+
};
|
|
21
|
+
exports.ActionModule = tslib.__decorate([
|
|
22
|
+
core.Module({
|
|
23
|
+
providers: [
|
|
24
|
+
core.provide({
|
|
25
|
+
provide: tokensCommon.COMBINE_REDUCERS,
|
|
26
|
+
multi: true,
|
|
27
|
+
useValue: actionTramvaiReducer.actionTramvaiReducer,
|
|
28
|
+
}),
|
|
29
|
+
core.provide({
|
|
30
|
+
// Регистер глобальных экшенов
|
|
31
|
+
provide: tokensCommon.ACTION_REGISTRY_TOKEN,
|
|
32
|
+
scope: core.Scope.SINGLETON,
|
|
33
|
+
useClass: actionRegistry.ActionRegistry,
|
|
34
|
+
deps: { actionsList: core.ACTIONS_LIST_TOKEN },
|
|
35
|
+
}),
|
|
36
|
+
core.provide({
|
|
37
|
+
provide: tokensCommon.ACTION_EXECUTION_TOKEN,
|
|
38
|
+
scope: core.Scope.REQUEST,
|
|
39
|
+
useClass: actionExecution.ActionExecution,
|
|
40
|
+
deps: {
|
|
41
|
+
actionConditionals: { token: tokensCommon.ACTION_CONDITIONALS, optional: true },
|
|
42
|
+
context: tokensCommon.CONTEXT_TOKEN,
|
|
43
|
+
store: tokensCommon.STORE_TOKEN,
|
|
44
|
+
di: core.DI_TOKEN,
|
|
45
|
+
executionContextManager: tokensCommon.EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
46
|
+
transformAction: {
|
|
47
|
+
token: 'actionTransformAction',
|
|
48
|
+
optional: true,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
}),
|
|
52
|
+
core.provide({
|
|
53
|
+
provide: tokensCommon.ACTION_PAGE_RUNNER_TOKEN,
|
|
54
|
+
scope: core.Scope.REQUEST,
|
|
55
|
+
useClass: actionPageRunner.ActionPageRunner,
|
|
56
|
+
deps: {
|
|
57
|
+
actionExecution: tokensCommon.ACTION_EXECUTION_TOKEN,
|
|
58
|
+
executionContextManager: tokensCommon.EXECUTION_CONTEXT_MANAGER_TOKEN,
|
|
59
|
+
commandLineExecutionContext: tokensCommon.COMMAND_LINE_EXECUTION_CONTEXT_TOKEN,
|
|
60
|
+
store: tokensCommon.STORE_TOKEN,
|
|
61
|
+
limitTime: LIMIT_ACTION_GLOBAL_TIME_RUN,
|
|
62
|
+
logger: tokensCommon.LOGGER_TOKEN,
|
|
63
|
+
},
|
|
64
|
+
}),
|
|
65
|
+
core.provide({
|
|
66
|
+
provide: LIMIT_ACTION_GLOBAL_TIME_RUN,
|
|
67
|
+
useValue: 500,
|
|
68
|
+
}),
|
|
69
|
+
core.provide({
|
|
70
|
+
provide: tokensCommon.ACTION_CONDITIONALS,
|
|
71
|
+
multi: true,
|
|
72
|
+
useValue: [always.alwaysCondition, onlyServer.onlyServer, onlyBrowser.onlyBrowser, pageServer.pageServer, pageBrowser.pageBrowser],
|
|
73
|
+
}),
|
|
74
|
+
],
|
|
75
|
+
})
|
|
76
|
+
], exports.ActionModule);
|
|
77
|
+
|
|
78
|
+
exports.alwaysCondition = always.alwaysCondition;
|
|
79
|
+
exports.onlyServer = onlyServer.onlyServer;
|
|
80
|
+
exports.onlyBrowser = onlyBrowser.onlyBrowser;
|
|
81
|
+
exports.pageServer = pageServer.pageServer;
|
|
82
|
+
exports.pageBrowser = pageBrowser.pageBrowser;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { actionType } from './constants.browser.js';
|
|
2
|
+
|
|
3
|
+
const DEFAULT_CONDITIONS = {};
|
|
4
|
+
class ActionChecker {
|
|
5
|
+
// eslint-disable-next-line max-params
|
|
6
|
+
constructor(globalConditionals, payload, parameters, executionState, type) {
|
|
7
|
+
var _a;
|
|
8
|
+
this.globalConditionals = globalConditionals;
|
|
9
|
+
this.payload = payload;
|
|
10
|
+
this.parameters = parameters;
|
|
11
|
+
this.executionState = executionState;
|
|
12
|
+
this.type = type;
|
|
13
|
+
this.status = true;
|
|
14
|
+
this.forbiddenMarker = false;
|
|
15
|
+
this.key = null;
|
|
16
|
+
// для глобальных экшенов мы должны дедублицировать выполнение и меньше выполнять
|
|
17
|
+
if (type === actionType.global) {
|
|
18
|
+
// если экшен был уже выполнен, то считаем, что его не нужно больше выполнять
|
|
19
|
+
this.status = executionState.status !== 'success';
|
|
20
|
+
}
|
|
21
|
+
this.conditions = (_a = parameters.conditions) !== null && _a !== void 0 ? _a : DEFAULT_CONDITIONS;
|
|
22
|
+
}
|
|
23
|
+
check() {
|
|
24
|
+
this.globalConditionals.forEach((filter) => {
|
|
25
|
+
this.key = filter.key;
|
|
26
|
+
filter.fn(this);
|
|
27
|
+
});
|
|
28
|
+
return this.getStatus();
|
|
29
|
+
}
|
|
30
|
+
setState(value) {
|
|
31
|
+
this.executionState.state[this.key] = value;
|
|
32
|
+
}
|
|
33
|
+
getState() {
|
|
34
|
+
return this.executionState.state[this.key];
|
|
35
|
+
}
|
|
36
|
+
forbid() {
|
|
37
|
+
this.executionState.status = 'forbidden';
|
|
38
|
+
this.executionState.forbiddenBy = this.key;
|
|
39
|
+
this.forbiddenMarker = true;
|
|
40
|
+
}
|
|
41
|
+
allow() {
|
|
42
|
+
this.status = true;
|
|
43
|
+
}
|
|
44
|
+
getStatus() {
|
|
45
|
+
if (this.forbiddenMarker) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return this.status;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { ActionChecker };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { actionType } from './constants.es.js';
|
|
2
|
+
|
|
3
|
+
const DEFAULT_CONDITIONS = {};
|
|
4
|
+
class ActionChecker {
|
|
5
|
+
// eslint-disable-next-line max-params
|
|
6
|
+
constructor(globalConditionals, payload, parameters, executionState, type) {
|
|
7
|
+
var _a;
|
|
8
|
+
this.globalConditionals = globalConditionals;
|
|
9
|
+
this.payload = payload;
|
|
10
|
+
this.parameters = parameters;
|
|
11
|
+
this.executionState = executionState;
|
|
12
|
+
this.type = type;
|
|
13
|
+
this.status = true;
|
|
14
|
+
this.forbiddenMarker = false;
|
|
15
|
+
this.key = null;
|
|
16
|
+
// для глобальных экшенов мы должны дедублицировать выполнение и меньше выполнять
|
|
17
|
+
if (type === actionType.global) {
|
|
18
|
+
// если экшен был уже выполнен, то считаем, что его не нужно больше выполнять
|
|
19
|
+
this.status = executionState.status !== 'success';
|
|
20
|
+
}
|
|
21
|
+
this.conditions = (_a = parameters.conditions) !== null && _a !== void 0 ? _a : DEFAULT_CONDITIONS;
|
|
22
|
+
}
|
|
23
|
+
check() {
|
|
24
|
+
this.globalConditionals.forEach((filter) => {
|
|
25
|
+
this.key = filter.key;
|
|
26
|
+
filter.fn(this);
|
|
27
|
+
});
|
|
28
|
+
return this.getStatus();
|
|
29
|
+
}
|
|
30
|
+
setState(value) {
|
|
31
|
+
this.executionState.state[this.key] = value;
|
|
32
|
+
}
|
|
33
|
+
getState() {
|
|
34
|
+
return this.executionState.state[this.key];
|
|
35
|
+
}
|
|
36
|
+
forbid() {
|
|
37
|
+
this.executionState.status = 'forbidden';
|
|
38
|
+
this.executionState.forbiddenBy = this.key;
|
|
39
|
+
this.forbiddenMarker = true;
|
|
40
|
+
}
|
|
41
|
+
allow() {
|
|
42
|
+
this.status = true;
|
|
43
|
+
}
|
|
44
|
+
getStatus() {
|
|
45
|
+
if (this.forbiddenMarker) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return this.status;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { ActionChecker };
|