@common-stack/client-core 4.0.1-alpha.0 → 4.0.1-alpha.6
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/connector/ScopedContainer.d.ts +67 -0
- package/lib/connector/ScopedContainer.js +75 -0
- package/lib/connector/ScopedContainer.js.map +1 -0
- package/lib/connector/abstract-connector.d.ts +8 -13
- package/lib/connector/abstract-connector.js +67 -111
- package/lib/connector/abstract-connector.js.map +1 -1
- package/lib/connector/index.d.ts +1 -0
- package/lib/helpers/apollo-client-test-helper.js +4 -4
- package/lib/helpers/apollo-client-test-helper.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/interfaces/connector.d.ts +10 -7
- package/lib/utils/resolversUtils.d.ts +3 -0
- package/lib/utils/resolversUtils.js +11 -0
- package/lib/utils/resolversUtils.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Container, interfaces } from 'inversify';
|
|
2
|
+
export type RegisterScopedDependenciesAction = (container: Container) => void;
|
|
3
|
+
export declare class ScopedContainer {
|
|
4
|
+
private static _dependencyRegistrations;
|
|
5
|
+
private static _globalContainer;
|
|
6
|
+
private static readonly _containerInstances;
|
|
7
|
+
/**
|
|
8
|
+
* Options object to use when creating a new container for a
|
|
9
|
+
* scope ID.
|
|
10
|
+
*/
|
|
11
|
+
static scopedContainerOptions: interfaces.ContainerOptions;
|
|
12
|
+
/**
|
|
13
|
+
* A function to register global dependencies.
|
|
14
|
+
* This creates a global container instance, which enables truly
|
|
15
|
+
* singleton instances when using a scoped container. All scoped
|
|
16
|
+
* containers reference the global container as parent.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ScopedContainer.registerGlobalDependencies((container) => {
|
|
20
|
+
* container
|
|
21
|
+
* .bind<SomeSingletonDep>(TOKENS.SomeSingletonDep)
|
|
22
|
+
* .to(SomeSingletonDep)
|
|
23
|
+
* .inSingletonScope();
|
|
24
|
+
* })();
|
|
25
|
+
*/
|
|
26
|
+
static registerGlobalDependencies: (container: Container) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Returns a @see Container that is unique to the specified scope.
|
|
29
|
+
* If this is the first time getting the container for the scope, then a
|
|
30
|
+
* new container will be created using the provided factory. Any post configure
|
|
31
|
+
* actions will also be applied to the new container instance.
|
|
32
|
+
* @param scopeId Any string to identify the scope (e.g. current request ID).
|
|
33
|
+
* @returns A @see Container that is unique to the specified scope.
|
|
34
|
+
*/
|
|
35
|
+
static for(scopeId?: string): Container;
|
|
36
|
+
/**
|
|
37
|
+
* Unbinds the @see Container (i.e. container.unbindAll()) and removes
|
|
38
|
+
* it from the cache.
|
|
39
|
+
* @param scopeId
|
|
40
|
+
*/
|
|
41
|
+
static remove(scopeId?: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Runs the @method remove method on all instances.
|
|
44
|
+
*/
|
|
45
|
+
static removeAll(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Registers dependencies that should be tied to a scope,
|
|
48
|
+
* e.g. HTTP request.
|
|
49
|
+
* @remarks
|
|
50
|
+
* ✔️ DO use `inSingletonScope` to register scoped dependencies.
|
|
51
|
+
* ❌ DO NOT use `inRequestScope`, as this will create a new instance for
|
|
52
|
+
* separate calls to `get` even within the same scope.
|
|
53
|
+
* @see https://stackoverflow.com/a/71180025
|
|
54
|
+
* @param fn A function that registers scoped dependencies.
|
|
55
|
+
* @returns The @see ScopedContainer itself, to allow chaining.
|
|
56
|
+
* @example
|
|
57
|
+
* ScopedContainer.registerScopedDependencies((container) => {
|
|
58
|
+
* container
|
|
59
|
+
* .bind<SomeScopedDep>(TOKENS.SomeScopedDep)
|
|
60
|
+
* .to(SomeScopedDep)
|
|
61
|
+
* .inSingletonScope(); // this is right; use the singleton scope
|
|
62
|
+
* })();
|
|
63
|
+
*/
|
|
64
|
+
static registerScopedDependencies(fn: RegisterScopedDependenciesAction): ScopedContainer;
|
|
65
|
+
private static makeNewContainer;
|
|
66
|
+
private static ensureGlobalContainer;
|
|
67
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {Container}from'inversify';/* eslint-disable no-underscore-dangle */
|
|
2
|
+
const DEFAULT_SCOPE_ID = '__default__';
|
|
3
|
+
class ScopedContainer {
|
|
4
|
+
/**
|
|
5
|
+
* Returns a @see Container that is unique to the specified scope.
|
|
6
|
+
* If this is the first time getting the container for the scope, then a
|
|
7
|
+
* new container will be created using the provided factory. Any post configure
|
|
8
|
+
* actions will also be applied to the new container instance.
|
|
9
|
+
* @param scopeId Any string to identify the scope (e.g. current request ID).
|
|
10
|
+
* @returns A @see Container that is unique to the specified scope.
|
|
11
|
+
*/
|
|
12
|
+
static for(scopeId = DEFAULT_SCOPE_ID) {
|
|
13
|
+
let container = this._containerInstances[scopeId];
|
|
14
|
+
if (!container) {
|
|
15
|
+
container = this.makeNewContainer();
|
|
16
|
+
this._containerInstances[scopeId] = container;
|
|
17
|
+
}
|
|
18
|
+
return container;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Unbinds the @see Container (i.e. container.unbindAll()) and removes
|
|
22
|
+
* it from the cache.
|
|
23
|
+
* @param scopeId
|
|
24
|
+
*/
|
|
25
|
+
static remove(scopeId = DEFAULT_SCOPE_ID) {
|
|
26
|
+
const container = this._containerInstances[scopeId];
|
|
27
|
+
if (!container)
|
|
28
|
+
return;
|
|
29
|
+
container.unbindAll();
|
|
30
|
+
delete this._containerInstances[scopeId];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Runs the @method remove method on all instances.
|
|
34
|
+
*/
|
|
35
|
+
static removeAll() {
|
|
36
|
+
Object.keys(this._containerInstances).forEach((key) => this.remove(key));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Registers dependencies that should be tied to a scope,
|
|
40
|
+
* e.g. HTTP request.
|
|
41
|
+
* @remarks
|
|
42
|
+
* ✔️ DO use `inSingletonScope` to register scoped dependencies.
|
|
43
|
+
* ❌ DO NOT use `inRequestScope`, as this will create a new instance for
|
|
44
|
+
* separate calls to `get` even within the same scope.
|
|
45
|
+
* @see https://stackoverflow.com/a/71180025
|
|
46
|
+
* @param fn A function that registers scoped dependencies.
|
|
47
|
+
* @returns The @see ScopedContainer itself, to allow chaining.
|
|
48
|
+
* @example
|
|
49
|
+
* ScopedContainer.registerScopedDependencies((container) => {
|
|
50
|
+
* container
|
|
51
|
+
* .bind<SomeScopedDep>(TOKENS.SomeScopedDep)
|
|
52
|
+
* .to(SomeScopedDep)
|
|
53
|
+
* .inSingletonScope(); // this is right; use the singleton scope
|
|
54
|
+
* })();
|
|
55
|
+
*/
|
|
56
|
+
static registerScopedDependencies(fn) {
|
|
57
|
+
this._dependencyRegistrations.push(fn);
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
static makeNewContainer() {
|
|
61
|
+
const container = this.ensureGlobalContainer().createChild(this.scopedContainerOptions);
|
|
62
|
+
this._dependencyRegistrations.forEach((action) => action(container));
|
|
63
|
+
return container;
|
|
64
|
+
}
|
|
65
|
+
static ensureGlobalContainer() {
|
|
66
|
+
if (!this._globalContainer) {
|
|
67
|
+
const container = new Container(this.scopedContainerOptions);
|
|
68
|
+
this.registerGlobalDependencies?.(container);
|
|
69
|
+
this._globalContainer = container;
|
|
70
|
+
}
|
|
71
|
+
return this._globalContainer;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
ScopedContainer._dependencyRegistrations = [];
|
|
75
|
+
ScopedContainer._containerInstances = {};export{ScopedContainer};//# sourceMappingURL=ScopedContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopedContainer.js","sources":["../../src/connector/ScopedContainer.ts"],"sourcesContent":[null],"names":[],"mappings":"kCAAA;AAGA,MAAM,gBAAgB,GAAG,aAAa,CAAC;MAQ1B,eAAe,CAAA;AA6BxB;;;;;;;AAOG;AACH,IAAA,OAAO,GAAG,CAAC,OAAO,GAAG,gBAAgB,EAAA;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AACjD,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AAED;;;;AAIG;AACH,IAAA,OAAO,MAAM,CAAC,OAAO,GAAG,gBAAgB,EAAA;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,CAAC,SAAS,EAAE,CAAC;AACtB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KAC5C;AAED;;AAEG;AACH,IAAA,OAAO,SAAS,GAAA;QACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5E;AAED;;;;;;;;;;;;;;;;;AAiBG;IACH,OAAO,0BAA0B,CAAC,EAAoC,EAAA;AAClE,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,QAAA,OAAO,IAAI,CAAC;KACf;AAEO,IAAA,OAAO,gBAAgB,GAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACxF,QAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACrE,QAAA,OAAO,SAAS,CAAC;KACpB;AAEO,IAAA,OAAO,qBAAqB,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AACrC,SAAA;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;;AApGc,eAAwB,CAAA,wBAAA,GAAuC,EAAE,CAAC;AAIzD,eAAmB,CAAA,mBAAA,GAAyB,EAAE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IdGetterObj } from '@apollo/client/core
|
|
2
|
-
import { ErrorLink } from '@apollo/client/link/error
|
|
1
|
+
import { IdGetterObj, Resolvers } from '@apollo/client/core';
|
|
2
|
+
import { ErrorLink } from '@apollo/client/link/error';
|
|
3
3
|
import { ReducersMapObject } from 'redux';
|
|
4
4
|
import { interfaces } from 'inversify';
|
|
5
5
|
import { IFeature, IModuleShape, IClientStateConfig, IClientState } from '../interfaces';
|
|
@@ -42,26 +42,21 @@ export declare abstract class AbstractFeature implements IFeature {
|
|
|
42
42
|
private isContainerLoaded;
|
|
43
43
|
private services;
|
|
44
44
|
private _container;
|
|
45
|
-
|
|
46
|
-
* Constructs Client feature module representation, that folds all the feature modules
|
|
47
|
-
* into a single module represented by this instance.
|
|
48
|
-
* @param feature
|
|
49
|
-
* @param features
|
|
50
|
-
*/
|
|
45
|
+
private _apolloResolvers;
|
|
51
46
|
constructor(feature?: IModuleShape, ...features: IModuleShape[]);
|
|
52
|
-
|
|
53
|
-
private
|
|
47
|
+
getApolloResolvers(resolverContex: any): Resolvers;
|
|
48
|
+
private getContainer;
|
|
54
49
|
get epics(): any;
|
|
55
50
|
getRouter(withRoot?: boolean, rootComponent?: any): any;
|
|
56
51
|
abstract getRoutes(searchPath?: RegExp): any;
|
|
57
52
|
abstract get navItems(): any;
|
|
58
53
|
abstract get navItemsRight(): any;
|
|
59
54
|
get reducers(): any;
|
|
60
|
-
createContainers(options: any): interfaces.Container;
|
|
61
|
-
createService(options: any,
|
|
55
|
+
createContainers(options: any, scopeId?: string): interfaces.Container;
|
|
56
|
+
createService(options: any, scopeId?: string): any;
|
|
62
57
|
getStateParams(args?: {
|
|
63
58
|
resolverContex?: any;
|
|
64
|
-
|
|
59
|
+
scopeId?: string;
|
|
65
60
|
requestResponsePair?: {
|
|
66
61
|
req: Record<string, any>;
|
|
67
62
|
res: Record<string, any>;
|
|
@@ -1,78 +1,52 @@
|
|
|
1
|
-
import*as React from'react';import {merge,without,union,
|
|
1
|
+
import*as React from'react';import {merge,without,union,castArray}from'lodash-es';import {consolidatedResolvers}from'../utils/resolversUtils.js';import {ScopedContainer}from'./ScopedContainer.js';/* eslint-disable no-underscore-dangle */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
3
|
/* eslint-disable no-nested-ternary */
|
|
3
4
|
/* eslint-disable no-use-before-define */
|
|
4
|
-
const combine = (features, extractor) => without(union(...map(
|
|
5
|
+
const combine = (features, extractor) => without(union(...features.map((res) => castArray(extractor(res)))), undefined);
|
|
5
6
|
const featureCatalog = {};
|
|
6
7
|
class AbstractFeature {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
constructor(feature,
|
|
14
|
-
// tslint:disable:trailing-comma
|
|
15
|
-
...features) {
|
|
16
|
-
// Connectivity
|
|
17
|
-
this.link = combine(arguments, (arg) => arg.link);
|
|
18
|
-
this.errorLink = combine(arguments, (arg) => arg.errorLink);
|
|
19
|
-
this.createFetch = combine(arguments, (arg) => arg.createFetch)
|
|
8
|
+
constructor(feature, ...features) {
|
|
9
|
+
const args = [feature, ...features];
|
|
10
|
+
this.link = combine(args, (arg) => arg.link);
|
|
11
|
+
this.errorLink = combine(args, (arg) => arg.errorLink);
|
|
12
|
+
this.createFetch = combine(args, (arg) => arg.createFetch)
|
|
20
13
|
.slice(-1)
|
|
21
14
|
.pop();
|
|
22
|
-
this.connectionParam = combine(
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
this.
|
|
27
|
-
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
// TODO: Use React Helmet for those. Low level DOM manipulation
|
|
51
|
-
this.stylesInsert = combine(arguments, (arg) => arg.stylesInsert);
|
|
52
|
-
this.scriptsInsert = combine(arguments, (arg) => arg.scriptsInsert);
|
|
53
|
-
this.reduxPersistTransforms = combine(arguments, (arg) => arg.reduxPersistTransforms);
|
|
54
|
-
// Shared modules data
|
|
55
|
-
this.data = combine([{}].concat(Array.from(arguments)), (arg) => arg.data).reduce((acc, el) => [{ ...acc[0], ...el }], [{}]);
|
|
56
|
-
}
|
|
57
|
-
get envalidConfigs() {
|
|
58
|
-
return this.envalidConfig.reduce((prev, config) => {
|
|
59
|
-
for (const key in config) {
|
|
60
|
-
if (prev[key]) {
|
|
61
|
-
if (prev[key].required) {
|
|
62
|
-
config[key].required = prev[key].required;
|
|
63
|
-
}
|
|
64
|
-
if (prev[key].devRequired) {
|
|
65
|
-
config[key].devRequired = prev[key].devRequired;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return { ...prev, ...config };
|
|
69
|
-
}
|
|
70
|
-
}, {});
|
|
71
|
-
}
|
|
72
|
-
get container() {
|
|
73
|
-
if (!this._container) {
|
|
74
|
-
this._container = new Container();
|
|
15
|
+
this.connectionParam = combine(args, (arg) => arg.connectionParam);
|
|
16
|
+
this.reducer = combine(args, (arg) => arg.reducer);
|
|
17
|
+
this.clientStateParams = combine(args, (arg) => arg.clientStateParams);
|
|
18
|
+
this.epic = combine(args, (arg) => arg.epic);
|
|
19
|
+
this.sidebarSegments = combine(args, (arg) => arg.sidebarSegments);
|
|
20
|
+
this.leftMainPanelItems = combine(args, (arg) => arg.leftMainPanelItems);
|
|
21
|
+
this.middleMainPanelItems = combine(args, (arg) => arg.middleMainPanelItems);
|
|
22
|
+
this.middleMainPanelItemsProps = combine(args, (arg) => arg.middleMainPanelItemsProps);
|
|
23
|
+
this.leftFooterItems = combine(args, (arg) => arg.leftFooterItems);
|
|
24
|
+
this.rightFooterItems = combine(args, (arg) => arg.rightFooterItems);
|
|
25
|
+
this.middleLowerPanelItems = combine(args, (arg) => arg.middleLowerPanelItems);
|
|
26
|
+
this.dataIdFromObject = combine(args, (arg) => arg.dataIdFromObject);
|
|
27
|
+
this.navItem = combine(args, (arg) => arg.navItem);
|
|
28
|
+
this.navItemRight = combine(args, (arg) => arg.navItemRight);
|
|
29
|
+
this.rootComponentFactory = combine(args, (arg) => arg.rootComponentFactory);
|
|
30
|
+
this.dataRootComponent = combine(args, (arg) => arg.dataRootComponent);
|
|
31
|
+
this.languagesFuncs = combine(args, (arg) => arg.languagesFuncs);
|
|
32
|
+
this.createContainerFunc = combine(args, (arg) => arg.createContainerFunc);
|
|
33
|
+
this.createServiceFunc = combine(args, (arg) => arg.createServiceFunc);
|
|
34
|
+
this.stylesInsert = combine(args, (arg) => arg.stylesInsert);
|
|
35
|
+
this.scriptsInsert = combine(args, (arg) => arg.scriptsInsert);
|
|
36
|
+
this.reduxPersistTransforms = combine(args, (arg) => arg.reduxPersistTransforms);
|
|
37
|
+
this.data = combine([{}].concat(args), (arg) => arg.data).reduce((acc, el) => [{ ...acc[0], ...el }], [{}]);
|
|
38
|
+
}
|
|
39
|
+
getApolloResolvers(resolverContex) {
|
|
40
|
+
// Ensure _apolloResolvers is initialized
|
|
41
|
+
if (!this._apolloResolvers) {
|
|
42
|
+
throw new Error('Resolvers have not been initialized.');
|
|
75
43
|
}
|
|
44
|
+
// Loop through each resolver function and process it with consolidatedResolvers
|
|
45
|
+
const processedResolvers = Object.keys(this._apolloResolvers).reduce((acc, key) => merge(acc, consolidatedResolvers(this._apolloResolvers[key], resolverContex)), {});
|
|
46
|
+
return processedResolvers;
|
|
47
|
+
}
|
|
48
|
+
getContainer(scopeId) {
|
|
49
|
+
this._container = ScopedContainer.for(scopeId);
|
|
76
50
|
return this._container;
|
|
77
51
|
}
|
|
78
52
|
get epics() {
|
|
@@ -84,37 +58,35 @@ class AbstractFeature {
|
|
|
84
58
|
get reducers() {
|
|
85
59
|
return merge({}, ...(this.reducer || []));
|
|
86
60
|
}
|
|
87
|
-
createContainers(options) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return this.container;
|
|
91
|
-
}
|
|
92
|
-
this.createContainerFunc.map((createModule) => {
|
|
93
|
-
this.container.load(createModule(options));
|
|
61
|
+
createContainers(options, scopeId) {
|
|
62
|
+
this.createContainerFunc.forEach((createModule) => {
|
|
63
|
+
this.getContainer(scopeId).load(createModule(options));
|
|
94
64
|
});
|
|
95
|
-
this.
|
|
96
|
-
return this.container;
|
|
65
|
+
return this.getContainer(scopeId);
|
|
97
66
|
}
|
|
98
|
-
createService(options,
|
|
99
|
-
|
|
67
|
+
createService(options, scopeId) {
|
|
68
|
+
if (typeof window === undefined) {
|
|
69
|
+
throw new Error('Services not for node');
|
|
70
|
+
}
|
|
100
71
|
if (this.services) {
|
|
101
72
|
return this.services;
|
|
102
73
|
}
|
|
103
74
|
try {
|
|
104
75
|
if (!this.isContainerLoaded) {
|
|
105
|
-
this.createContainers(options);
|
|
76
|
+
this.createContainers(options, scopeId);
|
|
106
77
|
}
|
|
107
|
-
this.services = merge({}, ...this.createServiceFunc.map((serviceFunc) => serviceFunc(this.
|
|
78
|
+
this.services = merge({}, ...this.createServiceFunc.map((serviceFunc) => serviceFunc(this.getContainer(scopeId))));
|
|
108
79
|
return this.services;
|
|
109
80
|
}
|
|
110
81
|
catch (err) {
|
|
82
|
+
console.error(err);
|
|
111
83
|
throw err;
|
|
112
84
|
}
|
|
113
85
|
}
|
|
114
86
|
getStateParams(args = {}) {
|
|
115
|
-
const cn = args.
|
|
87
|
+
const cn = this.getContainer(args.scopeId);
|
|
116
88
|
const { requestResponsePair } = args;
|
|
117
|
-
|
|
89
|
+
const result = this.clientStateParams.reduce((acc, curr) => {
|
|
118
90
|
const defs = curr.typeDefs ? (Array.isArray(curr.typeDefs) ? curr.typeDefs : [curr.typeDefs]) : [];
|
|
119
91
|
const preLinksAccumulator = acc.preLinks || [];
|
|
120
92
|
const attemptFuncAccumulator = acc.retryLinkAttemptFuncs || [];
|
|
@@ -122,17 +94,14 @@ class AbstractFeature {
|
|
|
122
94
|
const callbackBackFuncAccumulator = acc.connectionCallbackFuncs || [];
|
|
123
95
|
const attemptDefaults = acc.defaults || [];
|
|
124
96
|
const schema = defs
|
|
125
|
-
.map((typeDef) =>
|
|
126
|
-
|
|
127
|
-
return typeDef;
|
|
128
|
-
}
|
|
129
|
-
console.warn(`Not supported AST format `, typeDef);
|
|
130
|
-
})
|
|
131
|
-
.map((str) => str?.trim())
|
|
97
|
+
.map((typeDef) => (typeof typeDef === 'string' ? typeDef : ''))
|
|
98
|
+
.map((str) => str.trim())
|
|
132
99
|
.join('\n');
|
|
133
100
|
const typeDefs = acc.typeDefs ? acc.typeDefs.concat('\n', schema) : schema;
|
|
134
101
|
const defaults = curr.defaults ? attemptDefaults.concat(curr.defaults) : attemptDefaults;
|
|
135
|
-
|
|
102
|
+
// Merge native resolvers
|
|
103
|
+
const nativeResolvers = merge({}, acc.nativeResolvers, curr.resolvers);
|
|
104
|
+
const resolvers = merge(acc.resolvers, consolidatedResolvers(curr.resolvers, args.resolverContex));
|
|
136
105
|
const possibleTypes = merge(acc.possibleTypes, curr.possibleTypes);
|
|
137
106
|
const typePolicies = merge(acc.typePolicies, curr.typePolicies);
|
|
138
107
|
const retryLinkAttemptFuncs = curr.retryLinkAttemptFuncs
|
|
@@ -140,7 +109,7 @@ class AbstractFeature {
|
|
|
140
109
|
: attemptFuncAccumulator;
|
|
141
110
|
const preLinks = preLinksAccumulator.concat((curr.preLinkFuncs || []).map((linkF) => linkF(cn, requestResponsePair)) || []);
|
|
142
111
|
const connectionParams = curr.connectionParam
|
|
143
|
-
? connectionParamsFuncAccumulator.concat(
|
|
112
|
+
? connectionParamsFuncAccumulator.concat(consolidatedConnection(curr.connectionParam, cn))
|
|
144
113
|
: connectionParamsFuncAccumulator;
|
|
145
114
|
const connectionCallbackFuncs = curr.connectionCallbackFunc
|
|
146
115
|
? callbackBackFuncAccumulator.concat(curr.connectionCallbackFunc(cn) || [])
|
|
@@ -148,6 +117,7 @@ class AbstractFeature {
|
|
|
148
117
|
return {
|
|
149
118
|
defaults,
|
|
150
119
|
resolvers,
|
|
120
|
+
nativeResolvers,
|
|
151
121
|
typeDefs,
|
|
152
122
|
possibleTypes,
|
|
153
123
|
retryLinkAttemptFuncs,
|
|
@@ -157,6 +127,8 @@ class AbstractFeature {
|
|
|
157
127
|
connectionCallbackFuncs,
|
|
158
128
|
};
|
|
159
129
|
}, {});
|
|
130
|
+
this._apolloResolvers = result.nativeResolvers;
|
|
131
|
+
return result;
|
|
160
132
|
}
|
|
161
133
|
get connectionParams() {
|
|
162
134
|
return this.connectionParam;
|
|
@@ -187,7 +159,7 @@ class AbstractFeature {
|
|
|
187
159
|
}
|
|
188
160
|
});
|
|
189
161
|
});
|
|
190
|
-
|
|
162
|
+
withProps[key] = React.cloneElement(panelObj[key], mergedProps);
|
|
191
163
|
});
|
|
192
164
|
return withProps;
|
|
193
165
|
}
|
|
@@ -211,25 +183,9 @@ class AbstractFeature {
|
|
|
211
183
|
return result.id || result._id;
|
|
212
184
|
}
|
|
213
185
|
}
|
|
214
|
-
function
|
|
215
|
-
let finalResolvers;
|
|
216
|
-
if (Array.isArray(resolvers)) {
|
|
217
|
-
const resolverObject = resolvers.map((resolver) => typeof resolver === 'function' ? resolver(context) : resolver);
|
|
218
|
-
finalResolvers = merge({}, ...resolverObject);
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
finalResolvers = typeof resolvers === 'function' ? resolvers(context) : resolvers;
|
|
222
|
-
}
|
|
223
|
-
return finalResolvers;
|
|
224
|
-
}
|
|
225
|
-
async function consoldidatedConnection(connectionParams, context) {
|
|
226
|
-
let finalConnectionParams;
|
|
186
|
+
async function consolidatedConnection(connectionParams, context) {
|
|
227
187
|
if (Array.isArray(connectionParams)) {
|
|
228
188
|
throw new Error('Array is not supported for ConnectionParams');
|
|
229
189
|
}
|
|
230
|
-
|
|
231
|
-
finalConnectionParams =
|
|
232
|
-
typeof connectionParams === 'function' ? await connectionParams(context) : connectionParams;
|
|
233
|
-
}
|
|
234
|
-
return finalConnectionParams;
|
|
190
|
+
return typeof connectionParams === 'function' ? await connectionParams(context) : connectionParams;
|
|
235
191
|
}export{AbstractFeature,featureCatalog};//# sourceMappingURL=abstract-connector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-connector.js","sources":["../../src/connector/abstract-connector.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abstract-connector.js","sources":["../../src/connector/abstract-connector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/lib/connector/index.d.ts
CHANGED
|
@@ -11,11 +11,11 @@ import {ApolloClient}from'@apollo/client/core/index.js';import {InMemoryCache}fr
|
|
|
11
11
|
* @param modules
|
|
12
12
|
*/
|
|
13
13
|
const apolloClientHelper = (modules) => {
|
|
14
|
-
const clientState = modules.getStateParams({ resolverContex: () => modules.createService({}
|
|
14
|
+
const clientState = modules.getStateParams({ resolverContex: () => modules.createService({}) });
|
|
15
15
|
const dataIdFromObject = (result) => modules.getDataIdFromObject(result);
|
|
16
16
|
const cache = new InMemoryCache({
|
|
17
17
|
dataIdFromObject,
|
|
18
|
-
possibleTypes: clientState.possibleTypes
|
|
18
|
+
possibleTypes: clientState.possibleTypes,
|
|
19
19
|
});
|
|
20
20
|
const schema = ``;
|
|
21
21
|
const params = {
|
|
@@ -25,7 +25,7 @@ const apolloClientHelper = (modules) => {
|
|
|
25
25
|
resolvers: clientState.resolvers,
|
|
26
26
|
};
|
|
27
27
|
const client = new ApolloClient(params);
|
|
28
|
-
clientState.defaults.map(x => {
|
|
28
|
+
clientState.defaults.map((x) => {
|
|
29
29
|
if (x.type === 'query') {
|
|
30
30
|
cache.writeQuery(x);
|
|
31
31
|
}
|
|
@@ -40,7 +40,7 @@ const apolloClientHelper = (modules) => {
|
|
|
40
40
|
container.bind(ClientTypes.UtilityClass).toConstantValue(utility);
|
|
41
41
|
container.bind(ClientTypes.ApolloClient).toConstantValue(client);
|
|
42
42
|
container.bind(ClientTypes.InMemoryCache).toConstantValue(cache);
|
|
43
|
-
const services = modules.createService({}
|
|
43
|
+
const services = modules.createService({});
|
|
44
44
|
client.container = services;
|
|
45
45
|
return {
|
|
46
46
|
client,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apollo-client-test-helper.js","sources":["../../src/helpers/apollo-client-test-helper.ts"],"sourcesContent":[null],"names":[],"mappings":"uMAOA,MAAM,YAAY,CAAA;AACd,IAAA,WAAA,CAAoB,OAAO,EAAA;QAAP,IAAO,CAAA,OAAA,GAAP,OAAO,CAAA;KAC1B;AACM,IAAA,WAAW,CAAC,QAAQ,EAAA;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;KACrD;AACJ,CAAA;AAGD;;;AAGG;AACU,MAAA,kBAAkB,GAAG,CAAC,OAAiB,KAAI;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"apollo-client-test-helper.js","sources":["../../src/helpers/apollo-client-test-helper.ts"],"sourcesContent":[null],"names":[],"mappings":"uMAOA,MAAM,YAAY,CAAA;AACd,IAAA,WAAA,CAAoB,OAAO,EAAA;QAAP,IAAO,CAAA,OAAA,GAAP,OAAO,CAAA;KAC1B;AACM,IAAA,WAAW,CAAC,QAAQ,EAAA;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;KACrD;AACJ,CAAA;AAGD;;;AAGG;AACU,MAAA,kBAAkB,GAAG,CAAC,OAAiB,KAAI;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAEhG,IAAA,MAAM,gBAAgB,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACzE,IAAA,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC;QAC5B,gBAAgB;QAChB,aAAa,EAAE,WAAW,CAAC,aAAa;AAC3C,KAAA,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAA,CAAE,CAAC;AAElB,IAAA,MAAM,MAAM,GAA6B;QACrC,KAAK;AACL,QAAA,kBAAkB,EAAE,IAAI;QACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAS,WAAW,CAAC,QAAQ,CAAC;QACrD,SAAS,EAAE,WAAW,CAAC,SAAgB;KAC1C,CAAC;AACF,IAAA,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC3B,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;AACpB,YAAA,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,SAAA;AAAM,aAAA,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE;AAC9B,YAAA,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1B,SAAA;AACL,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;;IAG1C,MAAM,SAAS,GAAyB,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;AACrE,IAAA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC3D,IAAA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAClE,IAAA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACjE,IAAA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAC1C,IAAA,MAAc,CAAC,SAAS,GAAG,QAAQ,CAAC;IAErC,OAAO;QACH,MAAM;QACN,gBAAgB;QAChB,QAAQ;QACR,SAAS;KACZ,CAAC;AACN"}
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{logger}from'./logger/logger.js';export{AbstractFeature,featureCatalog}from'./connector/abstract-connector.js';export{REDUX_PERSIST_KEY}from'./constants/constants.js';export{apolloClientHelper}from'./helpers/apollo-client-test-helper.js';export{ClientTypes,ElectronTypes}from'@common-stack/core';//# sourceMappingURL=index.js.map
|
|
1
|
+
export{logger}from'./logger/logger.js';export{AbstractFeature,featureCatalog}from'./connector/abstract-connector.js';export{ScopedContainer}from'./connector/ScopedContainer.js';export{REDUX_PERSIST_KEY}from'./constants/constants.js';export{apolloClientHelper}from'./helpers/apollo-client-test-helper.js';export{ClientTypes,ElectronTypes}from'@common-stack/core';//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApolloLink, IdGetterObj, Operation, PossibleTypesMap, Resolvers, TypePolicies } from '@apollo/client/core/index.js';
|
|
2
|
-
import { interfaces } from 'inversify';
|
|
2
|
+
import { Container, interfaces } from 'inversify';
|
|
3
3
|
import { Cache } from '@apollo/client/cache/index.js';
|
|
4
4
|
import { ReducersMapObject } from 'redux';
|
|
5
5
|
import { ErrorLink } from '@apollo/client/link/error/index.js';
|
|
@@ -48,6 +48,7 @@ export interface IClientStateConfig {
|
|
|
48
48
|
export interface IClientState {
|
|
49
49
|
container?: interfaces.Container;
|
|
50
50
|
resolvers?: Resolvers;
|
|
51
|
+
nativeResolvers?: Resolvers;
|
|
51
52
|
defaults: IClientStateDefault[];
|
|
52
53
|
typeDefs?: string | string[];
|
|
53
54
|
possibleTypes?: PossibleTypesMap;
|
|
@@ -187,10 +188,6 @@ export interface IModuleShape {
|
|
|
187
188
|
*/
|
|
188
189
|
export interface IFeature extends IModuleShape {
|
|
189
190
|
readonly data: any[];
|
|
190
|
-
/**
|
|
191
|
-
* @returns envalidConfig of all features
|
|
192
|
-
*/
|
|
193
|
-
readonly envalidConfigs: any[];
|
|
194
191
|
/**
|
|
195
192
|
* @returns Redux-Observable Epics
|
|
196
193
|
*/
|
|
@@ -231,19 +228,25 @@ export interface IFeature extends IModuleShape {
|
|
|
231
228
|
* @param args Options to pass to each Container Module
|
|
232
229
|
* @returns Created container and binds all the container modules
|
|
233
230
|
*/
|
|
234
|
-
createContainers(args: any): any;
|
|
235
|
-
createService(options: any,
|
|
231
|
+
createContainers(args: any, scopeId?: string): any;
|
|
232
|
+
createService(options: any, scopeId?: string): any;
|
|
236
233
|
/**
|
|
237
234
|
* @param args Provide resolverContext which can be passed to all resolver functions.
|
|
238
235
|
* @returns IClientState
|
|
239
236
|
*/
|
|
240
237
|
getStateParams(args?: {
|
|
241
238
|
resolverContex?: any;
|
|
239
|
+
container?: Container;
|
|
242
240
|
}): IClientState;
|
|
243
241
|
getDataIdFromObject(result: {
|
|
244
242
|
[key: string]: string | number;
|
|
245
243
|
__typename?: string;
|
|
246
244
|
} | IdGetterObj): any;
|
|
245
|
+
/**
|
|
246
|
+
* Apollo Resolvers
|
|
247
|
+
* @param context
|
|
248
|
+
*/
|
|
249
|
+
getApolloResolvers(context: any): any;
|
|
247
250
|
/**
|
|
248
251
|
* @arguments root React tree root component
|
|
249
252
|
* @arguments req Http Request
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {merge}from'lodash-es';function consolidatedResolvers(resolvers, context) {
|
|
2
|
+
let finalResolvers;
|
|
3
|
+
if (Array.isArray(resolvers)) {
|
|
4
|
+
const resolverObject = resolvers.map((resolver) => typeof resolver === 'function' ? resolver(context) : resolver);
|
|
5
|
+
finalResolvers = merge({}, ...resolverObject);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
finalResolvers = typeof resolvers === 'function' ? resolvers(context) : resolvers;
|
|
9
|
+
}
|
|
10
|
+
return finalResolvers;
|
|
11
|
+
}export{consolidatedResolvers};//# sourceMappingURL=resolversUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolversUtils.js","sources":["../../src/utils/resolversUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"8BAIgB,SAAA,qBAAqB,CAAC,SAAuB,EAAE,OAAO,EAAA;AAClE,IAAA,IAAI,cAAc,CAAC;AACnB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC1B,MAAM,cAAc,GAAI,SAAsB,CAAC,GAAG,CAAC,CAAC,QAAQ,KACxD,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAChE,CAAC;QACF,cAAc,GAAG,KAAK,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC;AACjD,KAAA;AAAM,SAAA;AACH,QAAA,cAAc,GAAG,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AACrF,KAAA;AAED,IAAA,OAAO,cAAc,CAAC;AAC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/client-core",
|
|
3
|
-
"version": "4.0.1-alpha.
|
|
3
|
+
"version": "4.0.1-alpha.6",
|
|
4
4
|
"description": "common core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"typescript": {
|
|
34
34
|
"definition": "lib/index.d.ts"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "90624ca5bdda49d2caf49316ec34529d3789e382"
|
|
37
37
|
}
|