@adaas/a-concept 0.0.36 → 0.0.38

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.
@@ -40,6 +40,13 @@ export declare class A_Scope {
40
40
  has(component: typeof A_Component): boolean;
41
41
  has(entity: typeof A_Entity): boolean;
42
42
  has(fragment: typeof A_Fragment): boolean;
43
+ /**
44
+ * Merges two scopes into a new one
45
+ *
46
+ * @param anotherScope
47
+ * @returns
48
+ */
49
+ merge(anotherScope: A_Scope): A_Scope;
43
50
  /**
44
51
  * This method is used to get the component by class
45
52
  *
@@ -92,6 +92,32 @@ class A_Scope {
92
92
  }
93
93
  }
94
94
  }
95
+ /**
96
+ * Merges two scopes into a new one
97
+ *
98
+ * @param anotherScope
99
+ * @returns
100
+ */
101
+ merge(anotherScope) {
102
+ const merged = new A_Scope({
103
+ name: `${this.name}&${anotherScope.name}`,
104
+ components: Array.from(new Set([
105
+ ...this.params.components,
106
+ ...anotherScope.params.components
107
+ ])),
108
+ fragments: Array.from(new Set([
109
+ ...this.params.fragments,
110
+ ...anotherScope.params.fragments
111
+ ])),
112
+ entities: Array.from(new Set([
113
+ ...this.params.entities,
114
+ ...anotherScope.params.entities
115
+ ])),
116
+ }, {
117
+ parent: this._parent || anotherScope._parent
118
+ });
119
+ return merged;
120
+ }
95
121
  // base definition
96
122
  resolve(param1, param2) {
97
123
  switch (true) {
@@ -1 +1 @@
1
- {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { A_Error } from "@adaas/a-utils";
2
2
  import { A_Feature } from "../A-Feature/A-Feature.class";
3
- import { A_TYPES__A_Stage_JSON, A_TYPES__A_Stage_Status, A_TYPES__A_StageStep } from "./A-Stage.types";
3
+ import { A_TYPES__A_Stage_JSON, A_TYPES__A_Stage_Status, A_TYPES__A_StageStep, A_TYPES__A_StageStepProcessingExtraParams } from "./A-Stage.types";
4
4
  import { A_Container } from "../A-Container/A-Container.class";
5
+ import { A_Scope } from "../A-Scope/A-Scope.class";
5
6
  /**
6
7
  * A_Stage is a set of A_Functions within A_Feature that should be run in a specific order.
7
8
  * Each stage may contain one or more functions.
@@ -11,8 +12,8 @@ import { A_Container } from "../A-Container/A-Container.class";
11
12
  */
12
13
  export declare class A_Stage {
13
14
  private feature;
14
- private steps;
15
- constructor(feature: A_Feature, steps?: A_TYPES__A_StageStep[]);
15
+ private _steps;
16
+ constructor(feature: A_Feature, _steps?: A_TYPES__A_StageStep[]);
16
17
  status: A_TYPES__A_Stage_Status;
17
18
  /**
18
19
  * Promise that will be resolved when the stage is Processed
@@ -20,13 +21,16 @@ export declare class A_Stage {
20
21
  processed: Promise<void> | undefined;
21
22
  get before(): string[];
22
23
  get after(): string[];
24
+ get steps(): A_TYPES__A_StageStep[];
25
+ get asyncSteps(): A_TYPES__A_StageStep[];
26
+ get syncSteps(): A_TYPES__A_StageStep[];
23
27
  /**
24
28
  * Resolves the arguments of the step
25
29
  *
26
30
  * @param step
27
31
  * @returns
28
32
  */
29
- protected getStepArgs(step: A_TYPES__A_StageStep): Promise<(import("../A-Fragment/A-Fragment.class").A_Fragment | import("../A-Component/A-Component.class").A_Component | A_Container | import("../A-Entity/A-Entity.class").A_Entity<any, import("../A-Entity/A-Entity.types").A_TYPES__Entity_JSON> | import("../A-Scope/A-Scope.class").A_Scope | A_Feature)[]>;
33
+ protected getStepArgs(step: A_TYPES__A_StageStep, scope: A_Scope): Promise<(import("../A-Fragment/A-Fragment.class").A_Fragment | import("../A-Component/A-Component.class").A_Component | A_Container | import("../A-Entity/A-Entity.class").A_Entity<any, import("../A-Entity/A-Entity.types").A_TYPES__Entity_JSON> | A_Scope | A_Feature)[]>;
30
34
  /**
31
35
  * Adds a step to the stage
32
36
  *
@@ -47,13 +51,17 @@ export declare class A_Stage {
47
51
  * @param step
48
52
  * @returns
49
53
  */
50
- protected callStepHandler(step: A_TYPES__A_StageStep): Promise<any>;
54
+ protected callStepHandler(step: A_TYPES__A_StageStep, scope: A_Scope): Promise<any>;
51
55
  /**
52
- * Runs async all the steps of the stage
56
+ * Runs async all the _steps of the stage
53
57
  *
54
58
  * @returns
55
59
  */
56
- process(): Promise<void>;
60
+ process(
61
+ /**
62
+ * Scope to be used to resolve the steps dependencies
63
+ */
64
+ scope?: A_Scope, params?: Partial<A_TYPES__A_StageStepProcessingExtraParams>): Promise<void>;
57
65
  /**
58
66
  * Skips the stage
59
67
  *
@@ -15,6 +15,7 @@ const A_Context_class_1 = require("../A-Context/A-Context.class");
15
15
  const A_Feature_class_1 = require("../A-Feature/A-Feature.class");
16
16
  const A_Stage_types_1 = require("./A-Stage.types");
17
17
  const A_Container_class_1 = require("../A-Container/A-Container.class");
18
+ const A_Scope_class_1 = require("../A-Scope/A-Scope.class");
18
19
  /**
19
20
  * A_Stage is a set of A_Functions within A_Feature that should be run in a specific order.
20
21
  * Each stage may contain one or more functions.
@@ -23,30 +24,39 @@ const A_Container_class_1 = require("../A-Container/A-Container.class");
23
24
  * A-Stage is a common object that uses to simplify logic and re-use of A-Feature internals for better composition.
24
25
  */
25
26
  class A_Stage {
26
- constructor(feature, steps = []) {
27
+ constructor(feature, _steps = []) {
27
28
  this.feature = feature;
28
- this.steps = steps;
29
+ this._steps = _steps;
29
30
  this.status = A_Stage_types_1.A_TYPES__A_Stage_Status.INITIALIZED;
30
31
  }
31
32
  get before() {
32
- return this.steps.reduce((acc, step) => ([
33
+ return this._steps.reduce((acc, step) => ([
33
34
  ...acc,
34
35
  ...step.before
35
36
  ]), []);
36
37
  }
37
38
  get after() {
38
- return this.steps.reduce((acc, step) => ([
39
+ return this._steps.reduce((acc, step) => ([
39
40
  ...acc,
40
41
  ...step.after
41
42
  ]), []);
42
43
  }
44
+ get steps() {
45
+ return this._steps;
46
+ }
47
+ get asyncSteps() {
48
+ return this._steps.filter(step => step.behavior === 'async');
49
+ }
50
+ get syncSteps() {
51
+ return this._steps.filter(step => step.behavior === 'sync');
52
+ }
43
53
  /**
44
54
  * Resolves the arguments of the step
45
55
  *
46
56
  * @param step
47
57
  * @returns
48
58
  */
49
- getStepArgs(step) {
59
+ getStepArgs(step, scope) {
50
60
  return __awaiter(this, void 0, void 0, function* () {
51
61
  return Promise
52
62
  .all(A_Context_class_1.A_Context
@@ -55,10 +65,11 @@ class A_Stage {
55
65
  : step.component)
56
66
  .injections(step.handler)
57
67
  .map((arg) => __awaiter(this, void 0, void 0, function* () {
58
- // In case if the target is a feature step then pass the current feature
59
- return a_utils_1.A_CommonHelper.isInheritedFrom(arg.target, A_Feature_class_1.A_Feature)
60
- ? this.feature
61
- : A_Context_class_1.A_Context.scope(this.feature).resolve(arg.target);
68
+ if (a_utils_1.A_CommonHelper.isInheritedFrom(arg.target, A_Feature_class_1.A_Feature))
69
+ return this.feature;
70
+ return scope
71
+ .merge(A_Context_class_1.A_Context.scope(this.feature))
72
+ .resolve(arg.target);
62
73
  })));
63
74
  });
64
75
  }
@@ -69,7 +80,7 @@ class A_Stage {
69
80
  * @returns
70
81
  */
71
82
  add(step) {
72
- this.steps.push(step);
83
+ this._steps.push(step);
73
84
  return this;
74
85
  }
75
86
  /**
@@ -96,36 +107,43 @@ class A_Stage {
96
107
  * @param step
97
108
  * @returns
98
109
  */
99
- callStepHandler(step) {
110
+ callStepHandler(step, scope) {
100
111
  return __awaiter(this, void 0, void 0, function* () {
101
112
  const instance = yield this.getStepInstance(step);
102
- const callArgs = yield this.getStepArgs(step);
113
+ const callArgs = yield this.getStepArgs(step, scope);
103
114
  return instance[step.handler](...callArgs);
104
115
  });
105
116
  }
106
117
  /**
107
- * Runs async all the steps of the stage
118
+ * Runs async all the _steps of the stage
108
119
  *
109
120
  * @returns
110
121
  */
111
122
  process() {
112
- return __awaiter(this, void 0, void 0, function* () {
123
+ return __awaiter(this, arguments, void 0, function* (
124
+ /**
125
+ * Scope to be used to resolve the steps dependencies
126
+ */
127
+ scope = new A_Scope_class_1.A_Scope({}, {}), params) {
113
128
  if (!this.processed)
114
129
  this.processed = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
115
130
  try {
116
131
  this.status = A_Stage_types_1.A_TYPES__A_Stage_Status.PROCESSING;
117
- const syncSteps = this.steps.filter(step => step.behavior === 'sync');
118
- const asyncSteps = this.steps.filter(step => step.behavior === 'async');
119
- // Run sync steps
132
+ if ((params === null || params === void 0 ? void 0 : params.steps) && params.steps.length) {
133
+ params.steps.forEach(step => this.add(step));
134
+ }
135
+ const syncSteps = this.syncSteps.filter((params === null || params === void 0 ? void 0 : params.filter) || (() => true));
136
+ const asyncSteps = this.asyncSteps.filter((params === null || params === void 0 ? void 0 : params.filter) || (() => true));
137
+ // Run sync _steps
120
138
  yield Promise
121
139
  .all([
122
- // Run async steps that are independent of each other
123
- ...asyncSteps.map(step => this.callStepHandler(step)),
124
- // Run sync steps that are dependent on each other
140
+ // Run async _steps that are independent of each other
141
+ ...asyncSteps.map(step => this.callStepHandler(step, scope)),
142
+ // Run sync _steps that are dependent on each other
125
143
  new Promise((r, j) => __awaiter(this, void 0, void 0, function* () {
126
144
  try {
127
145
  for (const step of syncSteps) {
128
- yield this.callStepHandler(step);
146
+ yield this.callStepHandler(step, scope);
129
147
  }
130
148
  return r();
131
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"A-Stage.class.js","sourceRoot":"","sources":["../../../../src/global/A-Stage/A-Stage.class.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyD;AACzD,kEAAyD;AACzD,kEAAyD;AACzD,mDAAuG;AACvG,wEAA+D;AAG/D;;;;;;GAMG;AACH,MAAa,OAAO;IAIhB,YACY,OAAkB,EAClB,QAAgC,EAAE;QADlC,YAAO,GAAP,OAAO,CAAW;QAClB,UAAK,GAAL,KAAK,CAA6B;QAK9C,WAAM,GAA4B,uCAAuB,CAAC,WAAW,CAAC;IAFtE,CAAC;IASD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,GAAG;YACN,GAAG,IAAI,CAAC,MAAM;SACjB,CAAC,EAAE,EAAc,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,GAAG;YACN,GAAG,IAAI,CAAC,KAAK;SAChB,CAAC,EAAE,EAAc,CAAC,CAAC;IACxB,CAAC;IAGD;;;;;OAKG;IACa,WAAW,CAAC,IAA0B;;YAClD,OAAO,OAAO;iBACT,GAAG,CAAC,2BAAS;iBACT,IAAI,CACD,IAAI,CAAC,SAAS,YAAY,+BAAW;gBACjC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW;gBAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CACvB;iBACA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;iBACxB,GAAG,CAAC,CAAM,GAAG,EAAC,EAAE;gBACb,wEAAwE;gBACxE,OAAA,wBAAc,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,2BAAS,CAAC;oBACjD,CAAC,CAAC,IAAI,CAAC,OAAO;oBACd,CAAC,CAAC,2BAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAAA,CAC1D,CAAC,CAAC;QACf,CAAC;KAAA;IAGD;;;;;OAKG;IACH,GAAG,CACC,IAA0B;QAE1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD;;;;;OAKG;IACO,eAAe,CAAC,IAA0B;QAChD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAGpC,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,SAAS,YAAY,+BAAW;YAC7C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,2BAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,iBAAiB,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAID;;;;;OAKG;IACa,eAAe,CAAC,IAA0B;;YAEtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAG9C,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE/C,CAAC;KAAA;IAGD;;;;OAIG;IACG,OAAO;;YACT,IAAI,CAAC,IAAI,CAAC,SAAS;gBACf,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CACxB,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;oBACtB,IAAI,CAAC;wBACD,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,UAAU,CAAC;wBAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;wBACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;wBAExE,iBAAiB;wBAEjB,MAAM,OAAO;6BACR,GAAG,CAAC;4BAED,qDAAqD;4BACrD,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;4BAErD,kDAAkD;4BAClD,IAAI,OAAO,CACP,CAAO,CAAC,EAAE,CAAC,EAAE,EAAE;gCACX,IAAI,CAAC;oCACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;wCAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oCACrC,CAAC;oCAED,OAAO,CAAC,EAAE,CAAC;gCACf,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACb,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;gCACpB,CAAC;4BACL,CAAC,CAAA,CACJ;yBACJ,CAAC,CAAC;wBAEP,IAAI,CAAC,SAAS,EAAE,CAAC;wBAEjB,OAAO,OAAO,EAAE,CAAC;oBAErB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAEnB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC,CAAA,CAAC,CAAC;YAGX,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;KAAA;IAGD;;;OAGG;IACH,IAAI;QACA,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAKD,6CAA6C;IAC7C,4CAA4C;IAC5C,6CAA6C;IAEnC,SAAS;QACf,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,SAAS,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAES,MAAM,CACZ,KAAgC;QAEhC,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,MAAM,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAID,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAG7C;;;OAGG;IACH,MAAM;QAEF,OAAO;YACH,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAA;IACL,CAAC;CACJ;AA3ND,0BA2NC"}
1
+ {"version":3,"file":"A-Stage.class.js","sourceRoot":"","sources":["../../../../src/global/A-Stage/A-Stage.class.ts"],"names":[],"mappings":"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"}
@@ -76,3 +76,7 @@ export type A_TYPES__A_Stage_JSON = {
76
76
  */
77
77
  status: A_TYPES__A_Stage_Status;
78
78
  };
79
+ export type A_TYPES__A_StageStepProcessingExtraParams = {
80
+ steps: A_TYPES__A_StageStep[];
81
+ filter: (step: A_TYPES__A_StageStep) => boolean;
82
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"A-Stage.types.js","sourceRoot":"","sources":["../../../../src/global/A-Stage/A-Stage.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,uBAqDX;AArDD,WAAY,uBAAuB;IAC/B;;OAEG;IACH,oDAAyB,CAAA;IACzB;;OAEG;IACH,kDAAuB,CAAA;IACvB;;OAEG;IACH,4CAAiB,CAAA;IACjB;;OAEG;IACH,8CAAmB,CAAA;IACnB;;OAEG;IACH,qBAAqB;IACrB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,sDAA2B,CAAA;IAC3B;;OAEG;IACH,mBAAmB;IACnB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,2BAA2B;IAC3B;;OAEG;IACH,6BAA6B;IAC7B;;OAEG;IACH,8CAAmB,CAAA;AACvB,CAAC,EArDW,uBAAuB,uCAAvB,uBAAuB,QAqDlC"}
1
+ {"version":3,"file":"A-Stage.types.js","sourceRoot":"","sources":["../../../../src/global/A-Stage/A-Stage.types.ts"],"names":[],"mappings":";;;AAQA,IAAY,uBAqDX;AArDD,WAAY,uBAAuB;IAC/B;;OAEG;IACH,oDAAyB,CAAA;IACzB;;OAEG;IACH,kDAAuB,CAAA;IACvB;;OAEG;IACH,4CAAiB,CAAA;IACjB;;OAEG;IACH,8CAAmB,CAAA;IACnB;;OAEG;IACH,qBAAqB;IACrB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,sDAA2B,CAAA;IAC3B;;OAEG;IACH,mBAAmB;IACnB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,2BAA2B;IAC3B;;OAEG;IACH,6BAA6B;IAC7B;;OAEG;IACH,8CAAmB,CAAA;AACvB,CAAC,EArDW,uBAAuB,uCAAvB,uBAAuB,QAqDlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaas/a-concept",
3
- "version": "0.0.36",
3
+ "version": "0.0.38",
4
4
  "description": "A-Concept is a framework to build new Applications within or outside the ADAAS ecosystem. This framework is designed to be modular structure regardless environment and program goal.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -165,6 +165,39 @@ export class A_Scope {
165
165
  }
166
166
 
167
167
 
168
+
169
+ /**
170
+ * Merges two scopes into a new one
171
+ *
172
+ * @param anotherScope
173
+ * @returns
174
+ */
175
+ merge(anotherScope: A_Scope): A_Scope {
176
+ const merged = new A_Scope(
177
+ {
178
+ name: `${this.name}&${anotherScope.name}`,
179
+ components: Array.from(new Set([
180
+ ...this.params.components,
181
+ ...anotherScope.params.components
182
+ ])),
183
+ fragments: Array.from(new Set([
184
+ ...this.params.fragments,
185
+ ...anotherScope.params.fragments
186
+ ])),
187
+ entities: Array.from(new Set([
188
+ ...this.params.entities,
189
+ ...anotherScope.params.entities
190
+ ])),
191
+ },
192
+ {
193
+ parent: this._parent || anotherScope._parent
194
+ }
195
+ );
196
+
197
+ return merged;
198
+ }
199
+
200
+
168
201
  /**
169
202
  * This method is used to get the component by class
170
203
  *
@@ -1,8 +1,10 @@
1
1
  import { A_CommonHelper, A_Error } from "@adaas/a-utils";
2
2
  import { A_Context } from "../A-Context/A-Context.class";
3
3
  import { A_Feature } from "../A-Feature/A-Feature.class";
4
- import { A_TYPES__A_Stage_JSON, A_TYPES__A_Stage_Status, A_TYPES__A_StageStep } from "./A-Stage.types";
4
+ import { A_TYPES__A_Stage_JSON, A_TYPES__A_Stage_Status, A_TYPES__A_StageStep, A_TYPES__A_StageStepProcessingExtraParams } from "./A-Stage.types";
5
5
  import { A_Container } from "../A-Container/A-Container.class";
6
+ import { A_TYPES__ScopeConstructor } from "../A-Scope/A-Scope.types";
7
+ import { A_Scope } from "../A-Scope/A-Scope.class";
6
8
 
7
9
 
8
10
  /**
@@ -18,7 +20,7 @@ export class A_Stage {
18
20
 
19
21
  constructor(
20
22
  private feature: A_Feature,
21
- private steps: A_TYPES__A_StageStep[] = []
23
+ private _steps: A_TYPES__A_StageStep[] = []
22
24
  ) {
23
25
 
24
26
  }
@@ -31,19 +33,32 @@ export class A_Stage {
31
33
 
32
34
 
33
35
  get before(): string[] {
34
- return this.steps.reduce((acc, step) => ([
36
+ return this._steps.reduce((acc, step) => ([
35
37
  ...acc,
36
38
  ...step.before
37
39
  ]), [] as string[]);
38
40
  }
39
41
 
40
42
  get after(): string[] {
41
- return this.steps.reduce((acc, step) => ([
43
+ return this._steps.reduce((acc, step) => ([
42
44
  ...acc,
43
45
  ...step.after
44
46
  ]), [] as string[]);
45
47
  }
46
48
 
49
+ get steps(): A_TYPES__A_StageStep[] {
50
+ return this._steps;
51
+ }
52
+
53
+
54
+ get asyncSteps(): A_TYPES__A_StageStep[] {
55
+ return this._steps.filter(step => step.behavior === 'async');
56
+ }
57
+
58
+ get syncSteps(): A_TYPES__A_StageStep[] {
59
+ return this._steps.filter(step => step.behavior === 'sync');
60
+ }
61
+
47
62
 
48
63
  /**
49
64
  * Resolves the arguments of the step
@@ -51,7 +66,11 @@ export class A_Stage {
51
66
  * @param step
52
67
  * @returns
53
68
  */
54
- protected async getStepArgs(step: A_TYPES__A_StageStep) {
69
+ protected async getStepArgs(
70
+ step: A_TYPES__A_StageStep,
71
+ scope: A_Scope
72
+ ) {
73
+
55
74
  return Promise
56
75
  .all(A_Context
57
76
  .meta(
@@ -60,12 +79,15 @@ export class A_Stage {
60
79
  : step.component
61
80
  )
62
81
  .injections(step.handler)
63
- .map(async arg =>
64
- // In case if the target is a feature step then pass the current feature
65
- A_CommonHelper.isInheritedFrom(arg.target, A_Feature)
66
- ? this.feature
67
- : A_Context.scope(this.feature).resolve(arg.target)
68
- ));
82
+ .map(async arg => {
83
+ if (A_CommonHelper.isInheritedFrom(arg.target, A_Feature))
84
+ return this.feature;
85
+
86
+ return scope
87
+ .merge(A_Context.scope(this.feature))
88
+ .resolve(arg.target)
89
+ })
90
+ )
69
91
  }
70
92
 
71
93
 
@@ -78,7 +100,7 @@ export class A_Stage {
78
100
  add(
79
101
  step: A_TYPES__A_StageStep
80
102
  ): this {
81
- this.steps.push(step);
103
+ this._steps.push(step);
82
104
 
83
105
  return this;
84
106
  }
@@ -116,46 +138,55 @@ export class A_Stage {
116
138
  * @param step
117
139
  * @returns
118
140
  */
119
- protected async callStepHandler(step: A_TYPES__A_StageStep) {
120
-
141
+ protected async callStepHandler(
142
+ step: A_TYPES__A_StageStep,
143
+ scope: A_Scope
144
+ ) {
121
145
  const instance = await this.getStepInstance(step);
122
- const callArgs = await this.getStepArgs(step);
123
-
146
+ const callArgs = await this.getStepArgs(step, scope);
124
147
 
125
148
  return instance[step.handler](...callArgs);
126
-
127
149
  }
128
150
 
129
151
 
130
152
  /**
131
- * Runs async all the steps of the stage
153
+ * Runs async all the _steps of the stage
132
154
  *
133
155
  * @returns
134
156
  */
135
- async process(): Promise<void> {
157
+ async process(
158
+ /**
159
+ * Scope to be used to resolve the steps dependencies
160
+ */
161
+ scope: A_Scope = new A_Scope({}, {}),
162
+ params?: Partial<A_TYPES__A_StageStepProcessingExtraParams>
163
+ ): Promise<void> {
136
164
  if (!this.processed)
137
165
  this.processed = new Promise<void>(
138
166
  async (resolve, reject) => {
139
167
  try {
140
168
  this.status = A_TYPES__A_Stage_Status.PROCESSING;
141
169
 
142
- const syncSteps = this.steps.filter(step => step.behavior === 'sync');
143
- const asyncSteps = this.steps.filter(step => step.behavior === 'async');
170
+ if (params?.steps && params.steps.length) {
171
+ params.steps.forEach(step => this.add(step));
172
+ }
144
173
 
145
- // Run sync steps
174
+ const syncSteps = this.syncSteps.filter(params?.filter || (() => true));
175
+ const asyncSteps = this.asyncSteps.filter(params?.filter || (() => true));
146
176
 
147
- await Promise
177
+ // Run sync _steps
178
+ await Promise
148
179
  .all([
149
180
 
150
- // Run async steps that are independent of each other
151
- ...asyncSteps.map(step => this.callStepHandler(step)),
181
+ // Run async _steps that are independent of each other
182
+ ...asyncSteps.map(step => this.callStepHandler(step, scope)),
152
183
 
153
- // Run sync steps that are dependent on each other
184
+ // Run sync _steps that are dependent on each other
154
185
  new Promise<void>(
155
186
  async (r, j) => {
156
187
  try {
157
188
  for (const step of syncSteps) {
158
- await this.callStepHandler(step);
189
+ await this.callStepHandler(step, scope);
159
190
  }
160
191
 
161
192
  return r();
@@ -1,6 +1,8 @@
1
1
  import { A_Component } from "../A-Component/A-Component.class"
2
2
  import { A_Container } from "../A-Container/A-Container.class"
3
3
  import { A_TYPES__A_ExtendDecorator_BehaviorConfig } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator.types"
4
+ import { A_TYPES__ScopeConfig, A_TYPES__ScopeConstructor } from "../A-Scope/A-Scope.types"
5
+ import { A_Scope } from "../A-Scope/A-Scope.class"
4
6
 
5
7
 
6
8
 
@@ -65,7 +67,7 @@ export type A_TYPES__A_StageStep = {
65
67
  /**
66
68
  * The component to be called
67
69
  */
68
- component: typeof A_Component | A_Container
70
+ component: typeof A_Component | A_Container
69
71
 
70
72
  /**
71
73
  * The method to be called on the component
@@ -97,4 +99,12 @@ export type A_TYPES__A_Stage_JSON = {
97
99
  */
98
100
  status: A_TYPES__A_Stage_Status,
99
101
 
100
- }
102
+
103
+ }
104
+
105
+
106
+
107
+ export type A_TYPES__A_StageStepProcessingExtraParams = {
108
+ steps: A_TYPES__A_StageStep[]
109
+ filter: (step: A_TYPES__A_StageStep) => boolean
110
+ }