asma-helpers 0.3.0 → 0.3.1
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/helpers/generateGenqlClient.d.ts +1 -5
- package/lib/helpers/generateGenqlClient.d.ts.map +1 -1
- package/lib/helpers/generateGenqlClient.js +19 -14
- package/lib/helpers/generateGenqlClient.js.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.d.ts +3 -1
- package/lib/helpers/generateSrvAuthBindings.d.ts.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.js +11 -18
- package/lib/helpers/generateSrvAuthBindings.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers/generateGenqlClient.ts +27 -23
- package/src/helpers/generateSrvAuthBindings.ts +13 -22
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import type { AxiosRequestConfig } from 'axios';
|
|
2
2
|
import type { ClientOptions } from '@genql/runtime';
|
|
3
|
-
interface CliOptions extends Omit<ClientOptions, 'url'> {
|
|
3
|
+
interface CliOptions extends Omit<ClientOptions, 'url' | 'signal'> {
|
|
4
4
|
anonymous?: boolean;
|
|
5
5
|
}
|
|
6
6
|
export declare function generateGenqlClient<T extends ReturnType<typeof createClient>>({ setReqConfig, createClient, serviceUrl, path, }: {
|
|
7
7
|
setReqConfig: () => Promise<AxiosRequestConfig<any>>;
|
|
8
8
|
createClient: (options?: ClientOptions | undefined) => T;
|
|
9
9
|
serviceUrl: () => string;
|
|
10
|
-
/**
|
|
11
|
-
* Returns true whenether token and refresh token is epired! this helps to cancel all concurent requests after first request is invalidated.
|
|
12
|
-
* @returns true if request should be cancelled
|
|
13
|
-
*/
|
|
14
10
|
path?: string;
|
|
15
11
|
}): {
|
|
16
12
|
getGenqlClient: () => Promise<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateGenqlClient.d.ts","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"generateGenqlClient.d.ts","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAMnD,UAAU,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAoB,GACvB,EAAE;IACC,YAAY,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,KAAK,CAAC,CAAA;IACxD,UAAU,EAAE,MAAM,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;;;4BAsCuC,UAAU,GAAG;QAAE,eAAe,CAAC,EAAE,eAAe,CAAA;KAAE,KAAQ,QAAQ,CAAC,CAAC;;EAoD3G"}
|
|
@@ -7,8 +7,9 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
7
7
|
client = null;
|
|
8
8
|
wsClient = null;
|
|
9
9
|
}
|
|
10
|
-
registerCallbackOnSrvAuthEvents('
|
|
10
|
+
//registerCallbackOnSrvAuthEvents('logout_event', resetClients)
|
|
11
11
|
async function getGenqlClient() {
|
|
12
|
+
console.log('getGenqlClient', client, serviceUrl());
|
|
12
13
|
if (client === null) {
|
|
13
14
|
client = await genqlClient();
|
|
14
15
|
return client;
|
|
@@ -19,12 +20,18 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
19
20
|
client = null;
|
|
20
21
|
wsClient = null;
|
|
21
22
|
}
|
|
23
|
+
let logoutEventAbort = new AbortController();
|
|
24
|
+
registerCallbackOnSrvAuthEvents('logout_event', () => {
|
|
25
|
+
logoutEventAbort === null || logoutEventAbort === void 0 ? void 0 : logoutEventAbort.abort();
|
|
26
|
+
resetClients();
|
|
27
|
+
logoutEventAbort = new AbortController();
|
|
28
|
+
});
|
|
22
29
|
async function genqlClient(options = {}) {
|
|
23
|
-
const {
|
|
30
|
+
const { headers, abortController: abortControlleFromOpts, ...rest } = options;
|
|
24
31
|
if (!serviceUrl()) {
|
|
25
|
-
|
|
32
|
+
throw Error('requred param srv_url is undefined, please check EnvConfig object!');
|
|
26
33
|
}
|
|
27
|
-
const
|
|
34
|
+
const abortControllerlocal = createabortControllerAndAbortOnLogoutEvent(abortControlleFromOpts);
|
|
28
35
|
return createClient({
|
|
29
36
|
url: `${serviceUrl()}${path}`,
|
|
30
37
|
headers: async () => {
|
|
@@ -34,19 +41,19 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
34
41
|
...headers,
|
|
35
42
|
});
|
|
36
43
|
},
|
|
37
|
-
signal:
|
|
44
|
+
signal: abortControllerlocal.signal,
|
|
38
45
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
39
46
|
...rest,
|
|
40
47
|
});
|
|
41
48
|
}
|
|
42
49
|
async function genqlClientWs() {
|
|
43
50
|
if (!wsClient) {
|
|
44
|
-
const
|
|
51
|
+
const aborControllerLocal = createabortControllerAndAbortOnLogoutEvent();
|
|
45
52
|
wsClient = createClient({
|
|
46
53
|
url: `${httpToWs(serviceUrl())}${path}`,
|
|
47
54
|
cache: 'reload',
|
|
48
55
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
49
|
-
signal:
|
|
56
|
+
signal: aborControllerLocal.signal,
|
|
50
57
|
subscription: {
|
|
51
58
|
reconnect: true,
|
|
52
59
|
reconnectionAttempts: 5,
|
|
@@ -56,13 +63,11 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
|
|
|
56
63
|
}
|
|
57
64
|
return wsClient;
|
|
58
65
|
}
|
|
59
|
-
function createabortControllerAndAbortOnLogoutEvent(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
localAbrotController
|
|
63
|
-
|
|
64
|
-
unregister();
|
|
65
|
-
});
|
|
66
|
+
function createabortControllerAndAbortOnLogoutEvent(abortControllerFromFnSig) {
|
|
67
|
+
const localAbrotController = abortControllerFromFnSig || new AbortController();
|
|
68
|
+
logoutEventAbort.signal.onabort = () => {
|
|
69
|
+
localAbrotController.abort();
|
|
70
|
+
};
|
|
66
71
|
return localAbrotController;
|
|
67
72
|
}
|
|
68
73
|
return { getGenqlClient, resetGenqlClient, genqlClient, genqlClientWs };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateGenqlClient.js","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateGenqlClient.js","sourceRoot":"","sources":["../../src/helpers/generateGenqlClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export declare const dispatchSrvAuthEvents: <Key extends "logout_event" | "jwt_c
|
|
|
9
9
|
}[Key_1]) => void) => {
|
|
10
10
|
unregister: () => void;
|
|
11
11
|
};
|
|
12
|
+
declare function dispatchLogoutEvent(): void;
|
|
12
13
|
export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, EnvironmentToOperateFn: () => string, logout?: () => void): {
|
|
13
14
|
hasFeature: (featureName: FeatureEnums) => boolean;
|
|
14
15
|
getFeatures: () => Set<FeatureEnums> | undefined;
|
|
@@ -18,7 +19,7 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
|
|
|
18
19
|
features: FeatureEnums[];
|
|
19
20
|
}, any> | undefined>;
|
|
20
21
|
srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<AxiosResponse<R, any> | undefined>;
|
|
21
|
-
signoutAuth:
|
|
22
|
+
signoutAuth: typeof dispatchLogoutEvent;
|
|
22
23
|
setReqConfig: <T = unknown>(data?: T | undefined, responseType?: ResponseType) => Promise<{
|
|
23
24
|
data: T | undefined;
|
|
24
25
|
responseType: ResponseType | undefined;
|
|
@@ -48,4 +49,5 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
|
|
|
48
49
|
*
|
|
49
50
|
*/
|
|
50
51
|
export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void): {};
|
|
52
|
+
export {};
|
|
51
53
|
//# sourceMappingURL=generateSrvAuthBindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAI/C,eAAO,MAAkB,qBAAqB;iBAC7B,EAAE;kBACD,EAAE;sDAFsC,+BAA+B;iBACxE,EAAE;kBACD,EAAE;;;CACD,CAAA;AAEnB,wBAAgB,uBAAuB,CAAC,YAAY,GAAG,KAAK,EACxD,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,MAAM,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAI/C,eAAO,MAAkB,qBAAqB;iBAC7B,EAAE;kBACD,EAAE;sDAFsC,+BAA+B;iBACxE,EAAE;kBACD,EAAE;;;CACD,CAAA;AAEnB,iBAAS,mBAAmB,SAE3B;AAKD,wBAAgB,uBAAuB,CAAC,YAAY,GAAG,KAAK,EACxD,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,MAAM,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI;8BAkLc,YAAY;;;kBAtGlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACxB,MAAM;kBAAY,YAAY,EAAE;;yBAvDzC,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAoGR,YAAY;;;;;;;IAsE1E;;OAEG;;;;;;;qBAtGe,MAAM;;iBAwES,MAAM;aAAO,MAAM;;;iCAlGtB,OAAO;EA6I5C;AACD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,gBAAgB,EAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,MAMtB"}
|
|
@@ -3,6 +3,12 @@ import { EventBus } from 'asma-event-bus/lib/event-buss';
|
|
|
3
3
|
import { EnvironmentEnums, parseJwt } from '..';
|
|
4
4
|
//let logoutsuccesfull = false
|
|
5
5
|
export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus('auth-bindings');
|
|
6
|
+
function dispatchLogoutEvent() {
|
|
7
|
+
dispatchSrvAuthEvents('logout_event', {}, false);
|
|
8
|
+
}
|
|
9
|
+
function dispatchJwtChangedEvent() {
|
|
10
|
+
dispatchSrvAuthEvents('jwt_changed', {}, false);
|
|
11
|
+
}
|
|
6
12
|
export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOperateFn, logout) {
|
|
7
13
|
var _a;
|
|
8
14
|
if (logout) {
|
|
@@ -14,14 +20,8 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
14
20
|
let jwtToken = '';
|
|
15
21
|
let features;
|
|
16
22
|
let parsed_jwt;
|
|
17
|
-
/* let fetchJwtPromise: Promise<{
|
|
18
|
-
data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
|
|
19
|
-
}> | null = null */
|
|
20
23
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
|
|
21
24
|
const isJwtValid = () => !isJwtInvalid();
|
|
22
|
-
//function cancelRequest() {
|
|
23
|
-
// return logoutsuccesfull
|
|
24
|
-
// }
|
|
25
25
|
const promiseRegistry = {};
|
|
26
26
|
async function srvAuthGet(url, headers) {
|
|
27
27
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
@@ -61,13 +61,11 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
61
61
|
const tokenObj = getParsedJwt();
|
|
62
62
|
const accessTokenExpDate = (tokenObj === null || tokenObj === void 0 ? void 0 : tokenObj.exp) || 0;
|
|
63
63
|
const nowTime = Math.floor(new Date().getTime() / 1000);
|
|
64
|
-
//set exp time -20sec for token to be refreshed early
|
|
65
64
|
return accessTokenExpDate - 10 <= nowTime;
|
|
66
65
|
}
|
|
67
66
|
async function signin(url, headers) {
|
|
68
67
|
const data = await srvAuthGet(url, headers);
|
|
69
68
|
setAuthData(data === null || data === void 0 ? void 0 : data.data);
|
|
70
|
-
// logoutsuccesfull = false
|
|
71
69
|
return data;
|
|
72
70
|
}
|
|
73
71
|
const { unregister } = registerCallbackOnSrvAuthEvents('logout_event', () => {
|
|
@@ -75,10 +73,6 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
75
73
|
srvAuthGet('/signout');
|
|
76
74
|
unregister();
|
|
77
75
|
});
|
|
78
|
-
async function signoutAuth() {
|
|
79
|
-
dispatchSrvAuthEvents('logout_event', {}, false);
|
|
80
|
-
// return srvAuthGet('/signout')
|
|
81
|
-
}
|
|
82
76
|
function getUserId() {
|
|
83
77
|
var _a;
|
|
84
78
|
return ((_a = getParsedJwt()) === null || _a === void 0 ? void 0 : _a['user_id']) || '-1';
|
|
@@ -89,7 +83,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
89
83
|
features = new Set(data.features);
|
|
90
84
|
parsed_jwt = parseJwt(jwtToken);
|
|
91
85
|
}
|
|
92
|
-
|
|
86
|
+
dispatchJwtChangedEvent();
|
|
93
87
|
}
|
|
94
88
|
function getJwtToken() {
|
|
95
89
|
return jwtToken;
|
|
@@ -123,17 +117,16 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
123
117
|
} */
|
|
124
118
|
const data = await srvAuthGet('/token');
|
|
125
119
|
if (!data || ((_a = data.data) === null || _a === void 0 ? void 0 : _a.errors) || !data.data.token) {
|
|
126
|
-
|
|
120
|
+
dispatchLogoutEvent();
|
|
127
121
|
return;
|
|
128
122
|
}
|
|
129
123
|
setAuthData({ token: data.data.token || '', features: data.data.features || [] });
|
|
124
|
+
return jwtToken;
|
|
130
125
|
}
|
|
131
126
|
catch (error) {
|
|
132
|
-
|
|
127
|
+
dispatchLogoutEvent();
|
|
133
128
|
setAuthData({ token: '', features: [] });
|
|
134
129
|
console.error(error);
|
|
135
|
-
}
|
|
136
|
-
finally {
|
|
137
130
|
return jwtToken;
|
|
138
131
|
}
|
|
139
132
|
}
|
|
@@ -160,7 +153,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
160
153
|
isJwtValid,
|
|
161
154
|
signin,
|
|
162
155
|
srvAuthGet,
|
|
163
|
-
signoutAuth,
|
|
156
|
+
signoutAuth: dispatchLogoutEvent,
|
|
164
157
|
setReqConfig,
|
|
165
158
|
getJwtTokenAsync,
|
|
166
159
|
getNewJwtToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAE/C,8BAA8B;AAE9B,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,GAAG,QAAQ,CAGnG,eAAe,CAAC,CAAA;AAEnB,MAAM,UAAU,uBAAuB,CACnC,QAAsB,EACtB,WAA0B,EAC1B,sBAAoC,EACpC,MAAmB;;IAEnB,IAAI,MAAM,EAAE;QACR,+BAA+B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;KAC1D;IAED,IAAI,MAAA,MAAM,CAAC,eAAe,0CAAE,aAAa,EAAE;QACvC,OAAO,MAAM,CAAC,eAAe,CAAC,aAAqC,CAAA;KACtE;IAED,IAAI,QAAQ,GAAG,EAAE,CAAA;IAEjB,IAAI,QAAuC,CAAA;IAE3C,IAAI,UAA+B,CAAA;IAEnC
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAE/C,8BAA8B;AAE9B,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,GAAG,QAAQ,CAGnG,eAAe,CAAC,CAAA;AAEnB,SAAS,mBAAmB;IACxB,qBAAqB,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;AACpD,CAAC;AACD,SAAS,uBAAuB;IAC5B,qBAAqB,CAAC,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,QAAsB,EACtB,WAA0B,EAC1B,sBAAoC,EACpC,MAAmB;;IAEnB,IAAI,MAAM,EAAE;QACR,+BAA+B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;KAC1D;IAED,IAAI,MAAA,MAAM,CAAC,eAAe,0CAAE,aAAa,EAAE;QACvC,OAAO,MAAM,CAAC,eAAe,CAAC,aAAqC,CAAA;KACtE;IAED,IAAI,QAAQ,GAAG,EAAE,CAAA;IAEjB,IAAI,QAAuC,CAAA;IAE3C,IAAI,UAA+B,CAAA;IAEnC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,qBAAqB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAA;IAE7E,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,CAAA;IAExC,MAAM,eAAe,GAAyC,EAAE,CAAA;IAEhE,KAAK,UAAU,UAAU,CAAI,GAAW,EAAE,OAAgC;QACtE,IAAI,WAAW,EAAE,IAAI,sBAAsB,EAAE,EAAE;YAC3C,IAAI,sBAAsB,EAAE,IAAI,gBAAgB,EAAE;gBAC9C,GAAG,GAAG,GAAG,GAAG,QAAQ,sBAAsB,EAAE,EAAE,CAAA;gBAE9C,oGAAoG;gBACpG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;aAC9E;iBAAM;gBACH,OAAO,CAAC,IAAI,CACR,0DAA0D,EAC1D,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EAAE,CAC3B,CAAA;aACJ;SACJ;QAED,MAAM,OAAO,GACT,eAAe,CAAC,GAAG,CAAC;YACpB,KAAK,CAAC,GAAG,CAA4B,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE;gBACxD,OAAO,EAAE;oBACL,GAAG,OAAO;oBACV,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;iBACxC;gBACD,eAAe,EAAE,IAAI;aACxB,CAAC,CAAA;QAEN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;YACvB,eAAe,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;SACjC;QAED,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,OAAO,CAAA;YAEzB,OAAO,GAA4B,CAAA;SACtC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,OAAM;SACT;gBAAS;YACN,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;SAC9B;IACL,CAAC;IAED,SAAS,qBAAqB;QAC1B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAA;QAE/B,MAAM,kBAAkB,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,KAAI,CAAC,CAAA;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;QAEvD,OAAO,kBAAkB,GAAG,EAAE,IAAI,OAAO,CAAA;IAC7C,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,GAAW,EAAE,OAAgC;QAC/D,MAAM,IAAI,GAAG,MAAM,UAAU,CAA8C,GAAG,EAAE,OAAO,CAAC,CAAA;QAExF,WAAW,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAA;QAEvB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,+BAA+B,CAAC,cAAc,EAAE,GAAG,EAAE;QACxE,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;QAE1B,UAAU,CAAC,UAAU,CAAC,CAAA;QAEtB,UAAU,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,SAAS,SAAS;;QACd,OAAO,CAAA,MAAA,YAAY,EAAE,0CAAG,SAAS,CAAC,KAAI,IAAI,CAAA;IAC9C,CAAC;IAED,SAAS,WAAW,CAAC,IAAmD;QACpE,IAAI,IAAI,EAAE;YACN,QAAQ,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA;YAEtB,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEjC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;SAClC;QAED,uBAAuB,EAAE,CAAA;IAC7B,CAAC;IAED,SAAS,WAAW;QAChB,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,UAAU,gBAAgB;QAC3B,IAAI,YAAY,EAAE,EAAE;YAChB,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAA;YAEtC,OAAO,OAAO,CAAA;SACjB;aAAM;YACH,OAAO,QAAQ,CAAA;SAClB;IACL,CAAC;IAED,KAAK,UAAU,YAAY,CAAc,IAAQ,EAAE,YAA2B;QAC1E,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAA;QAEtC,MAAM,GAAG,GAAG;YACR,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,EAA4B;SACxC,CAAA;QAED,IAAI,KAAK,EAAE;YACP,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;SACnD;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,UAAU,cAAc;;QACzB,IAAI;YACA;;gBAEI;YAEJ,MAAM,IAAI,GAAG,MAAM,UAAU,CAA+D,QAAQ,CAAC,CAAA;YAErG,IAAI,CAAC,IAAI,KAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBAChD,mBAAmB,EAAE,CAAA;gBAErB,OAAM;aACT;YAED,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAA;YACjF,OAAO,QAAQ,CAAA;SAClB;QAAC,OAAO,KAAK,EAAE;YACZ,mBAAmB,EAAE,CAAA;YAErB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;YAExC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpB,OAAO,QAAQ,CAAA;SAClB;IACL,CAAC;IAED,SAAS,YAAY;QACjB,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,GAAG,QAAQ,CAAI,QAAQ,CAAC,CAAA;SACrC;QACD,OAAO,UAAe,CAAA;IAC1B,CAAC;IACD,SAAS,WAAW;QAChB,OAAO,QAAQ,CAAA;IACnB,CAAC;IACD;;;;OAIG;IACH,SAAS,UAAU,CAAC,WAAyB;QACzC,OAAO,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAC,WAAW,CAAC,CAAA,CAAA;IACvC,CAAC;IAED,MAAM,aAAa,GAAG;QAClB,UAAU;QACV,WAAW;QACX,UAAU;QACV,MAAM;QACN,UAAU;QACV,WAAW,EAAE,mBAAmB;QAChC,YAAY;QACZ,gBAAgB;QAChB,cAAc;QACd;;WAEG;QACH,oBAAoB,EAAE,+BAA+B;QACrD,SAAS;QACT,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,qBAAqB;KACxB,CAAA;IACD,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAA;IAErD,MAAM,CAAC,eAAe,CAAC,aAAa,GAAG,aAAa,CAAA;IAEpD,OAAO,aAAa,CAAA;AACxB,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC3C,QAAsB,EACtB,WAA0B,EAC1B,sBAA8C,EAC9C,MAAmB;;IAEnB,OAAO,CACH,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,aAAa;QACrC,uBAAuB,CAAC,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,CAAC,CACjF,CAAA;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { AxiosRequestConfig } from 'axios'
|
|
2
|
-
import type {
|
|
2
|
+
import type { createClient } from '@genql/runtime'
|
|
3
|
+
import type { ClientOptions } from '@genql/runtime'
|
|
3
4
|
import { httpToWs } from './Config'
|
|
4
5
|
import { registerCallbackOnSrvAuthEvents } from './generateSrvAuthBindings'
|
|
6
|
+
|
|
5
7
|
//import { parseJwt } from '../helpers/parseJwt'
|
|
6
8
|
|
|
7
|
-
interface CliOptions extends Omit<ClientOptions, 'url'> {
|
|
9
|
+
interface CliOptions extends Omit<ClientOptions, 'url' | 'signal'> {
|
|
8
10
|
anonymous?: boolean
|
|
9
11
|
}
|
|
10
12
|
|
|
@@ -14,14 +16,9 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
14
16
|
serviceUrl,
|
|
15
17
|
path = '/v1/graphql',
|
|
16
18
|
}: {
|
|
17
|
-
// jwt_exp: number
|
|
18
19
|
setReqConfig: () => Promise<AxiosRequestConfig<any>>
|
|
19
20
|
createClient: (options?: ClientOptions | undefined) => T
|
|
20
21
|
serviceUrl: () => string
|
|
21
|
-
/**
|
|
22
|
-
* Returns true whenether token and refresh token is epired! this helps to cancel all concurent requests after first request is invalidated.
|
|
23
|
-
* @returns true if request should be cancelled
|
|
24
|
-
*/
|
|
25
22
|
path?: string
|
|
26
23
|
}) {
|
|
27
24
|
let client: T | null = null
|
|
@@ -33,9 +30,11 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
33
30
|
wsClient = null
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
registerCallbackOnSrvAuthEvents('
|
|
33
|
+
//registerCallbackOnSrvAuthEvents('logout_event', resetClients)
|
|
37
34
|
|
|
38
35
|
async function getGenqlClient() {
|
|
36
|
+
console.log('getGenqlClient', client, serviceUrl())
|
|
37
|
+
|
|
39
38
|
if (client === null) {
|
|
40
39
|
client = await genqlClient()
|
|
41
40
|
|
|
@@ -49,15 +48,24 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
49
48
|
client = null
|
|
50
49
|
wsClient = null
|
|
51
50
|
}
|
|
51
|
+
let logoutEventAbort = new AbortController()
|
|
52
|
+
|
|
53
|
+
registerCallbackOnSrvAuthEvents('logout_event', () => {
|
|
54
|
+
logoutEventAbort?.abort()
|
|
55
|
+
|
|
56
|
+
resetClients()
|
|
57
|
+
|
|
58
|
+
logoutEventAbort = new AbortController()
|
|
59
|
+
})
|
|
52
60
|
|
|
53
61
|
async function genqlClient(options: CliOptions & { abortController?: AbortController } = {}): Promise<T> {
|
|
54
|
-
const {
|
|
62
|
+
const { headers, abortController: abortControlleFromOpts, ...rest } = options
|
|
55
63
|
|
|
56
64
|
if (!serviceUrl()) {
|
|
57
|
-
|
|
65
|
+
throw Error('requred param srv_url is undefined, please check EnvConfig object!')
|
|
58
66
|
}
|
|
59
67
|
|
|
60
|
-
const
|
|
68
|
+
const abortControllerlocal = createabortControllerAndAbortOnLogoutEvent(abortControlleFromOpts)
|
|
61
69
|
|
|
62
70
|
return createClient({
|
|
63
71
|
url: `${serviceUrl()}${path}`,
|
|
@@ -65,7 +73,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
65
73
|
...(options.anonymous ? {} : (((await setReqConfig()).headers ?? {}) as Record<string, string>)),
|
|
66
74
|
...headers,
|
|
67
75
|
}),
|
|
68
|
-
signal:
|
|
76
|
+
signal: abortControllerlocal.signal,
|
|
69
77
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
70
78
|
...rest,
|
|
71
79
|
})
|
|
@@ -73,13 +81,13 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
73
81
|
|
|
74
82
|
async function genqlClientWs() {
|
|
75
83
|
if (!wsClient) {
|
|
76
|
-
const
|
|
84
|
+
const aborControllerLocal = createabortControllerAndAbortOnLogoutEvent()
|
|
77
85
|
|
|
78
86
|
wsClient = createClient({
|
|
79
87
|
url: `${httpToWs(serviceUrl())}${path}`,
|
|
80
88
|
cache: 'reload',
|
|
81
89
|
batch: { batchInterval: 50, maxBatchSize: 100 },
|
|
82
|
-
signal:
|
|
90
|
+
signal: aborControllerLocal.signal,
|
|
83
91
|
subscription: {
|
|
84
92
|
reconnect: true,
|
|
85
93
|
reconnectionAttempts: 5,
|
|
@@ -91,16 +99,12 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
|
|
|
91
99
|
return wsClient
|
|
92
100
|
}
|
|
93
101
|
|
|
94
|
-
function createabortControllerAndAbortOnLogoutEvent(
|
|
95
|
-
|
|
102
|
+
function createabortControllerAndAbortOnLogoutEvent(abortControllerFromFnSig?: AbortController) {
|
|
103
|
+
const localAbrotController = abortControllerFromFnSig || new AbortController()
|
|
96
104
|
|
|
97
|
-
|
|
98
|
-
localAbrotController
|
|
99
|
-
|
|
100
|
-
resetClients()
|
|
101
|
-
|
|
102
|
-
unregister()
|
|
103
|
-
})
|
|
105
|
+
logoutEventAbort.signal.onabort = () => {
|
|
106
|
+
localAbrotController.abort()
|
|
107
|
+
}
|
|
104
108
|
|
|
105
109
|
return localAbrotController
|
|
106
110
|
}
|
|
@@ -9,6 +9,13 @@ export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvA
|
|
|
9
9
|
logout_event: {}
|
|
10
10
|
}>('auth-bindings')
|
|
11
11
|
|
|
12
|
+
function dispatchLogoutEvent() {
|
|
13
|
+
dispatchSrvAuthEvents('logout_event', {}, false)
|
|
14
|
+
}
|
|
15
|
+
function dispatchJwtChangedEvent() {
|
|
16
|
+
dispatchSrvAuthEvents('jwt_changed', {}, false)
|
|
17
|
+
}
|
|
18
|
+
|
|
12
19
|
export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
13
20
|
SRV_AUTH: () => string,
|
|
14
21
|
DEVELOPMENT: () => boolean,
|
|
@@ -29,18 +36,10 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
29
36
|
|
|
30
37
|
let parsed_jwt: unknown | undefined
|
|
31
38
|
|
|
32
|
-
/* let fetchJwtPromise: Promise<{
|
|
33
|
-
data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
|
|
34
|
-
}> | null = null */
|
|
35
|
-
|
|
36
39
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken
|
|
37
40
|
|
|
38
41
|
const isJwtValid = () => !isJwtInvalid()
|
|
39
42
|
|
|
40
|
-
//function cancelRequest() {
|
|
41
|
-
// return logoutsuccesfull
|
|
42
|
-
// }
|
|
43
|
-
|
|
44
43
|
const promiseRegistry: Record<string, Promise<unknown>> = <{}>{}
|
|
45
44
|
|
|
46
45
|
async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
|
|
@@ -74,6 +73,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
74
73
|
if (!promiseRegistry[url]) {
|
|
75
74
|
promiseRegistry[url] = promise
|
|
76
75
|
}
|
|
76
|
+
|
|
77
77
|
try {
|
|
78
78
|
const res = await promise
|
|
79
79
|
|
|
@@ -93,7 +93,6 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
93
93
|
|
|
94
94
|
const nowTime = Math.floor(new Date().getTime() / 1000)
|
|
95
95
|
|
|
96
|
-
//set exp time -20sec for token to be refreshed early
|
|
97
96
|
return accessTokenExpDate - 10 <= nowTime
|
|
98
97
|
}
|
|
99
98
|
|
|
@@ -102,8 +101,6 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
102
101
|
|
|
103
102
|
setAuthData(data?.data)
|
|
104
103
|
|
|
105
|
-
// logoutsuccesfull = false
|
|
106
|
-
|
|
107
104
|
return data
|
|
108
105
|
}
|
|
109
106
|
|
|
@@ -115,12 +112,6 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
115
112
|
unregister()
|
|
116
113
|
})
|
|
117
114
|
|
|
118
|
-
async function signoutAuth() {
|
|
119
|
-
dispatchSrvAuthEvents('logout_event', {}, false)
|
|
120
|
-
|
|
121
|
-
// return srvAuthGet('/signout')
|
|
122
|
-
}
|
|
123
|
-
|
|
124
115
|
function getUserId(): string {
|
|
125
116
|
return getParsedJwt()?.['user_id'] || '-1'
|
|
126
117
|
}
|
|
@@ -134,7 +125,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
134
125
|
parsed_jwt = parseJwt(jwtToken)
|
|
135
126
|
}
|
|
136
127
|
|
|
137
|
-
|
|
128
|
+
dispatchJwtChangedEvent()
|
|
138
129
|
}
|
|
139
130
|
|
|
140
131
|
function getJwtToken() {
|
|
@@ -176,19 +167,19 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
176
167
|
const data = await srvAuthGet<{ errors?: string; token: string; features: FeatureEnums[] }>('/token')
|
|
177
168
|
|
|
178
169
|
if (!data || data.data?.errors || !data.data.token) {
|
|
179
|
-
|
|
170
|
+
dispatchLogoutEvent()
|
|
180
171
|
|
|
181
172
|
return
|
|
182
173
|
}
|
|
183
174
|
|
|
184
175
|
setAuthData({ token: data.data.token || '', features: data.data.features || [] })
|
|
176
|
+
return jwtToken
|
|
185
177
|
} catch (error) {
|
|
186
|
-
|
|
178
|
+
dispatchLogoutEvent()
|
|
187
179
|
|
|
188
180
|
setAuthData({ token: '', features: [] })
|
|
189
181
|
|
|
190
182
|
console.error(error)
|
|
191
|
-
} finally {
|
|
192
183
|
return jwtToken
|
|
193
184
|
}
|
|
194
185
|
}
|
|
@@ -217,7 +208,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
217
208
|
isJwtValid,
|
|
218
209
|
signin,
|
|
219
210
|
srvAuthGet,
|
|
220
|
-
signoutAuth,
|
|
211
|
+
signoutAuth: dispatchLogoutEvent,
|
|
221
212
|
setReqConfig,
|
|
222
213
|
getJwtTokenAsync,
|
|
223
214
|
getNewJwtToken,
|