@tramvai/module-common 3.30.1 → 3.31.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.
@@ -2,6 +2,7 @@ import { __decorate } from 'tslib';
2
2
  import { createToken, Module, provide, Scope, ACTIONS_LIST_TOKEN, DI_TOKEN, optional } from '@tramvai/core';
3
3
  import { COMBINE_REDUCERS, ACTION_REGISTRY_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN, DEFERRED_ACTIONS_MAP_TOKEN, ACTION_PAGE_RUNNER_TOKEN, COMMAND_LINE_EXECUTION_CONTEXT_TOKEN, LOGGER_TOKEN } from '@tramvai/tokens-common';
4
4
  import { SERVER_RESPONSE_TASK_MANAGER, SERVER_RESPONSE_STREAM } from '@tramvai/tokens-server-private';
5
+ import { ROUTER_TOKEN } from '@tramvai/tokens-router';
5
6
  import { actionTramvaiReducer } from './actionTramvaiReducer.browser.js';
6
7
  import { ActionExecution } from './actionExecution.browser.js';
7
8
  import { ActionRegistry } from './actionRegistry.browser.js';
@@ -69,6 +70,7 @@ ActionModule = __decorate([
69
70
  deferredMap: DEFERRED_ACTIONS_MAP_TOKEN,
70
71
  responseTaskManager: optional(SERVER_RESPONSE_TASK_MANAGER),
71
72
  serverResponseStream: optional(SERVER_RESPONSE_STREAM),
73
+ router: ROUTER_TOKEN,
72
74
  },
73
75
  }),
74
76
  provide({
@@ -2,6 +2,7 @@ import { __decorate } from 'tslib';
2
2
  import { createToken, Module, provide, Scope, ACTIONS_LIST_TOKEN, DI_TOKEN, optional } from '@tramvai/core';
3
3
  import { COMBINE_REDUCERS, ACTION_REGISTRY_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, CONTEXT_TOKEN, STORE_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN, DEFERRED_ACTIONS_MAP_TOKEN, ACTION_PAGE_RUNNER_TOKEN, COMMAND_LINE_EXECUTION_CONTEXT_TOKEN, LOGGER_TOKEN } from '@tramvai/tokens-common';
4
4
  import { SERVER_RESPONSE_TASK_MANAGER, SERVER_RESPONSE_STREAM } from '@tramvai/tokens-server-private';
5
+ import { ROUTER_TOKEN } from '@tramvai/tokens-router';
5
6
  import { actionTramvaiReducer } from './actionTramvaiReducer.es.js';
6
7
  import { ActionExecution } from './actionExecution.es.js';
7
8
  import { ActionRegistry } from './actionRegistry.es.js';
@@ -69,6 +70,7 @@ ActionModule = __decorate([
69
70
  deferredMap: DEFERRED_ACTIONS_MAP_TOKEN,
70
71
  responseTaskManager: optional(SERVER_RESPONSE_TASK_MANAGER),
71
72
  serverResponseStream: optional(SERVER_RESPONSE_STREAM),
73
+ router: ROUTER_TOKEN,
72
74
  },
73
75
  }),
74
76
  provide({
@@ -6,6 +6,7 @@ var tslib = require('tslib');
6
6
  var core = require('@tramvai/core');
7
7
  var tokensCommon = require('@tramvai/tokens-common');
8
8
  var tokensServerPrivate = require('@tramvai/tokens-server-private');
9
+ var tokensRouter = require('@tramvai/tokens-router');
9
10
  var actionTramvaiReducer = require('./actionTramvaiReducer.js');
10
11
  var actionExecution = require('./actionExecution.js');
11
12
  var actionRegistry = require('./actionRegistry.js');
@@ -67,6 +68,7 @@ exports.ActionModule = tslib.__decorate([
67
68
  deferredMap: tokensCommon.DEFERRED_ACTIONS_MAP_TOKEN,
68
69
  responseTaskManager: core.optional(tokensServerPrivate.SERVER_RESPONSE_TASK_MANAGER),
69
70
  serverResponseStream: core.optional(tokensServerPrivate.SERVER_RESPONSE_STREAM),
71
+ router: tokensRouter.ROUTER_TOKEN,
70
72
  },
71
73
  }),
72
74
  core.provide({
@@ -8,7 +8,12 @@ class ActionPageRunner {
8
8
  this.log = deps.logger('action:action-page-runner');
9
9
  }
10
10
  runActions(actions, stopRunAtError = () => false) {
11
- return this.deps.executionContextManager.withContext(this.deps.commandLineExecutionContext(), { name: 'pageActions', values: { pageActions: true } }, async (executionContext) => {
11
+ return this.deps.executionContextManager.withContext(this.deps.commandLineExecutionContext(), { name: 'pageActions', values: { pageActions: true } }, async (executionContext, abortController) => {
12
+ const unregisterAbortPageActionsHookOnNavigate = this.deps.router.registerHook('beforeNavigate', function abortPageActionsOnNavigation() {
13
+ unregisterAbortPageActionsHookOnNavigate();
14
+ abortController.abort('pageActions are aborted because of route changing');
15
+ return Promise.resolve();
16
+ });
12
17
  const actionMapper = (action) => {
13
18
  return Promise.resolve()
14
19
  .then(() => {
@@ -30,7 +35,10 @@ class ActionPageRunner {
30
35
  }
31
36
  });
32
37
  };
33
- await Promise.all(actions.map(actionMapper));
38
+ await Promise.all(actions.map(actionMapper)).finally(() => {
39
+ // unregister hook for abortion of page actions if actions has been executed or stopped
40
+ unregisterAbortPageActionsHookOnNavigate();
41
+ });
34
42
  });
35
43
  }
36
44
  }
@@ -1,6 +1,7 @@
1
1
  import type { Action, ExtractDependencyType, TramvaiAction } from '@tramvai/core';
2
2
  import type { LOGGER_TOKEN } from '@tramvai/module-log';
3
3
  import type { COMMAND_LINE_EXECUTION_CONTEXT_TOKEN, EXECUTION_CONTEXT_MANAGER_TOKEN } from '@tramvai/tokens-common';
4
+ import type { ROUTER_TOKEN } from '@tramvai/tokens-router';
4
5
  import type { ActionExecution } from './actionExecution';
5
6
  export declare class ActionPageRunner {
6
7
  private deps;
@@ -10,6 +11,7 @@ export declare class ActionPageRunner {
10
11
  executionContextManager: ExtractDependencyType<typeof EXECUTION_CONTEXT_MANAGER_TOKEN>;
11
12
  commandLineExecutionContext: ExtractDependencyType<typeof COMMAND_LINE_EXECUTION_CONTEXT_TOKEN>;
12
13
  logger: ExtractDependencyType<typeof LOGGER_TOKEN>;
14
+ router: ExtractDependencyType<typeof ROUTER_TOKEN>;
13
15
  });
14
16
  runActions(actions: Array<Action | TramvaiAction<any[], any, any>>, stopRunAtError?: (error: Error) => boolean): Promise<void>;
15
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-common",
3
- "version": "3.30.1",
3
+ "version": "3.31.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -37,28 +37,29 @@
37
37
  "@tinkoff/pubsub": "0.6.1",
38
38
  "@tinkoff/url": "0.9.2",
39
39
  "@tramvai/safe-strings": "0.6.2",
40
- "@tramvai/experiments": "3.30.1",
41
- "@tramvai/module-cookie": "3.30.1",
42
- "@tramvai/module-environment": "3.30.1",
43
- "@tramvai/module-log": "3.30.1",
44
- "@tramvai/tokens-child-app": "3.30.1",
45
- "@tramvai/tokens-core-private": "3.30.1",
46
- "@tramvai/tokens-common": "3.30.1",
47
- "@tramvai/tokens-render": "3.30.1",
48
- "@tramvai/tokens-server-private": "3.30.1",
49
- "@tramvai/types-actions-state-context": "3.30.1",
40
+ "@tramvai/experiments": "3.31.0",
41
+ "@tramvai/module-cookie": "3.31.0",
42
+ "@tramvai/module-environment": "3.31.0",
43
+ "@tramvai/module-log": "3.31.0",
44
+ "@tramvai/tokens-child-app": "3.31.0",
45
+ "@tramvai/tokens-core-private": "3.31.0",
46
+ "@tramvai/tokens-common": "3.31.0",
47
+ "@tramvai/tokens-render": "3.31.0",
48
+ "@tramvai/tokens-router": "3.31.0",
49
+ "@tramvai/tokens-server-private": "3.31.0",
50
+ "@tramvai/types-actions-state-context": "3.31.0",
50
51
  "hoist-non-react-statics": "^3.3.1",
51
52
  "node-abort-controller": "^3.0.1"
52
53
  },
53
54
  "peerDependencies": {
54
55
  "@tinkoff/dippy": "0.9.2",
55
56
  "@tinkoff/utils": "^2.1.2",
56
- "@tramvai/cli": "3.30.1",
57
- "@tramvai/core": "3.30.1",
58
- "@tramvai/papi": "3.30.1",
59
- "@tramvai/react": "3.30.1",
60
- "@tramvai/state": "3.30.1",
61
- "@tramvai/tokens-server": "3.30.1",
57
+ "@tramvai/cli": "3.31.0",
58
+ "@tramvai/core": "3.31.0",
59
+ "@tramvai/papi": "3.31.0",
60
+ "@tramvai/react": "3.31.0",
61
+ "@tramvai/state": "3.31.0",
62
+ "@tramvai/tokens-server": "3.31.0",
62
63
  "react": ">=16.14.0",
63
64
  "tslib": "^2.4.0"
64
65
  },