mod-arch-core 1.0.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/README.md +44 -0
- package/dist/__tests__/__mocks__/mockGenericResponse.d.ts +8 -0
- package/dist/__tests__/__mocks__/mockGenericResponse.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/mockGenericResponse.js +6 -0
- package/dist/__tests__/__mocks__/mockGenericResponse.js.map +1 -0
- package/dist/__tests__/__mocks__/styleMock.d.ts +2 -0
- package/dist/__tests__/__mocks__/styleMock.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/styleMock.js +3 -0
- package/dist/__tests__/__mocks__/styleMock.js.map +1 -0
- package/dist/__tests__/unit/jest.setup.d.ts +2 -0
- package/dist/__tests__/unit/jest.setup.d.ts.map +1 -0
- package/dist/__tests__/unit/jest.setup.js +48 -0
- package/dist/__tests__/unit/jest.setup.js.map +1 -0
- package/dist/__tests__/unit/testUtils/hooks.d.ts +80 -0
- package/dist/__tests__/unit/testUtils/hooks.d.ts.map +1 -0
- package/dist/__tests__/unit/testUtils/hooks.js +126 -0
- package/dist/__tests__/unit/testUtils/hooks.js.map +1 -0
- package/dist/__tests__/unit/testUtils/hooks.spec.d.ts +2 -0
- package/dist/__tests__/unit/testUtils/hooks.spec.d.ts.map +1 -0
- package/dist/__tests__/unit/testUtils/hooks.spec.js +192 -0
- package/dist/__tests__/unit/testUtils/hooks.spec.js.map +1 -0
- package/dist/api/__tests__/errorUtils.spec.d.ts +2 -0
- package/dist/api/__tests__/errorUtils.spec.d.ts.map +1 -0
- package/dist/api/__tests__/errorUtils.spec.js +27 -0
- package/dist/api/__tests__/errorUtils.spec.js.map +1 -0
- package/dist/api/apiUtils.d.ts +16 -0
- package/dist/api/apiUtils.d.ts.map +1 -0
- package/dist/api/apiUtils.js +96 -0
- package/dist/api/apiUtils.js.map +1 -0
- package/dist/api/const.d.ts +3 -0
- package/dist/api/const.d.ts.map +1 -0
- package/dist/api/const.js +4 -0
- package/dist/api/const.js.map +1 -0
- package/dist/api/errorUtils.d.ts +2 -0
- package/dist/api/errorUtils.d.ts.map +1 -0
- package/dist/api/errorUtils.js +22 -0
- package/dist/api/errorUtils.js.map +1 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/k8s.d.ts +10 -0
- package/dist/api/k8s.d.ts.map +1 -0
- package/dist/api/k8s.js +16 -0
- package/dist/api/k8s.js.map +1 -0
- package/dist/api/types.d.ts +19 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/useAPIState.d.ts +3 -0
- package/dist/api/useAPIState.d.ts.map +1 -0
- package/dist/api/useAPIState.js +22 -0
- package/dist/api/useAPIState.js.map +1 -0
- package/dist/config/transform.file.d.ts +3 -0
- package/dist/config/transform.file.d.ts.map +1 -0
- package/dist/config/transform.file.js +4 -0
- package/dist/config/transform.file.js.map +1 -0
- package/dist/config/transform.style.d.ts +2 -0
- package/dist/config/transform.style.d.ts.map +1 -0
- package/dist/config/transform.style.js +4 -0
- package/dist/config/transform.style.js.map +1 -0
- package/dist/context/BrowserStorageContext.d.ts +25 -0
- package/dist/context/BrowserStorageContext.d.ts.map +1 -0
- package/dist/context/BrowserStorageContext.js +97 -0
- package/dist/context/BrowserStorageContext.js.map +1 -0
- package/dist/context/ModularArchContext.d.ts +20 -0
- package/dist/context/ModularArchContext.d.ts.map +1 -0
- package/dist/context/ModularArchContext.js +67 -0
- package/dist/context/ModularArchContext.js.map +1 -0
- package/dist/context/NotificationContext.d.ts +15 -0
- package/dist/context/NotificationContext.d.ts.map +1 -0
- package/dist/context/NotificationContext.js +43 -0
- package/dist/context/NotificationContext.js.map +1 -0
- package/dist/context/__tests__/ModularArchContext.test.d.ts +2 -0
- package/dist/context/__tests__/ModularArchContext.test.d.ts.map +1 -0
- package/dist/context/__tests__/ModularArchContext.test.js +331 -0
- package/dist/context/__tests__/ModularArchContext.test.js.map +1 -0
- package/dist/context/index.d.ts +4 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +4 -0
- package/dist/context/index.js.map +1 -0
- package/dist/hooks/__tests__/useModularArchContext.test.d.ts +2 -0
- package/dist/hooks/__tests__/useModularArchContext.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/useModularArchContext.test.js +39 -0
- package/dist/hooks/__tests__/useModularArchContext.test.js.map +1 -0
- package/dist/hooks/__tests__/useNamespaces.test.d.ts +2 -0
- package/dist/hooks/__tests__/useNamespaces.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/useNamespaces.test.js +62 -0
- package/dist/hooks/__tests__/useNamespaces.test.js.map +1 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +8 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useModularArchContext.d.ts +5 -0
- package/dist/hooks/useModularArchContext.d.ts.map +1 -0
- package/dist/hooks/useModularArchContext.js +11 -0
- package/dist/hooks/useModularArchContext.js.map +1 -0
- package/dist/hooks/useNamespaceSelector.d.ts +10 -0
- package/dist/hooks/useNamespaceSelector.d.ts.map +1 -0
- package/dist/hooks/useNamespaceSelector.js +13 -0
- package/dist/hooks/useNamespaceSelector.js.map +1 -0
- package/dist/hooks/useNamespaces.d.ts +6 -0
- package/dist/hooks/useNamespaces.d.ts.map +1 -0
- package/dist/hooks/useNamespaces.js +34 -0
- package/dist/hooks/useNamespaces.js.map +1 -0
- package/dist/hooks/useNotification.d.ts +18 -0
- package/dist/hooks/useNotification.d.ts.map +1 -0
- package/dist/hooks/useNotification.js +74 -0
- package/dist/hooks/useNotification.js.map +1 -0
- package/dist/hooks/useQueryParamNamespaces.d.ts +2 -0
- package/dist/hooks/useQueryParamNamespaces.d.ts.map +1 -0
- package/dist/hooks/useQueryParamNamespaces.js +9 -0
- package/dist/hooks/useQueryParamNamespaces.js.map +1 -0
- package/dist/hooks/useSettings.d.ts +9 -0
- package/dist/hooks/useSettings.d.ts.map +1 -0
- package/dist/hooks/useSettings.js +72 -0
- package/dist/hooks/useSettings.js.map +1 -0
- package/dist/hooks/useTimeBasedRefresh.d.ts +4 -0
- package/dist/hooks/useTimeBasedRefresh.d.ts.map +1 -0
- package/dist/hooks/useTimeBasedRefresh.js +32 -0
- package/dist/hooks/useTimeBasedRefresh.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/jest.config.d.ts +21 -0
- package/dist/jest.config.d.ts.map +1 -0
- package/dist/jest.config.js +41 -0
- package/dist/jest.config.js.map +1 -0
- package/dist/types/common.d.ts +68 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +14 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/typeHelpers.d.ts +147 -0
- package/dist/types/typeHelpers.d.ts.map +1 -0
- package/dist/types/typeHelpers.js +2 -0
- package/dist/types/typeHelpers.js.map +1 -0
- package/dist/utilities/appUtils.d.ts +2 -0
- package/dist/utilities/appUtils.d.ts.map +1 -0
- package/dist/utilities/appUtils.js +4 -0
- package/dist/utilities/appUtils.js.map +1 -0
- package/dist/utilities/const.d.ts +8 -0
- package/dist/utilities/const.d.ts.map +1 -0
- package/dist/utilities/const.js +9 -0
- package/dist/utilities/const.js.map +1 -0
- package/dist/utilities/index.d.ts +9 -0
- package/dist/utilities/index.d.ts.map +1 -0
- package/dist/utilities/index.js +10 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/useDeepCompareMemoize.d.ts +2 -0
- package/dist/utilities/useDeepCompareMemoize.d.ts.map +1 -0
- package/dist/utilities/useDeepCompareMemoize.js +10 -0
- package/dist/utilities/useDeepCompareMemoize.js.map +1 -0
- package/dist/utilities/useEventListener.d.ts +2 -0
- package/dist/utilities/useEventListener.d.ts.map +1 -0
- package/dist/utilities/useEventListener.js +10 -0
- package/dist/utilities/useEventListener.js.map +1 -0
- package/dist/utilities/useFetchState.d.ts +92 -0
- package/dist/utilities/useFetchState.d.ts.map +1 -0
- package/dist/utilities/useFetchState.js +153 -0
- package/dist/utilities/useFetchState.js.map +1 -0
- package/dist/utilities/useGenericObjectState.d.ts +9 -0
- package/dist/utilities/useGenericObjectState.d.ts.map +1 -0
- package/dist/utilities/useGenericObjectState.js +14 -0
- package/dist/utilities/useGenericObjectState.js.map +1 -0
- package/dist/utilities/useMakeFetchObject.d.ts +4 -0
- package/dist/utilities/useMakeFetchObject.d.ts.map +1 -0
- package/dist/utilities/useMakeFetchObject.js +6 -0
- package/dist/utilities/useMakeFetchObject.js.map +1 -0
- package/dist/utilities/utils.d.ts +26 -0
- package/dist/utilities/utils.d.ts.map +1 -0
- package/dist/utilities/utils.js +104 -0
- package/dist/utilities/utils.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { APIOptions } from '../api/types';
|
|
2
|
+
import { ModArchBody } from '../types';
|
|
3
|
+
export declare const mergeRequestInit: (opts?: APIOptions, specificOpts?: RequestInit) => RequestInit;
|
|
4
|
+
export declare const restGET: <T>(host: string, path: string, queryParams?: Record<string, unknown>, options?: APIOptions) => Promise<T>;
|
|
5
|
+
/** Standard POST */
|
|
6
|
+
export declare const restCREATE: <T>(host: string, path: string, data: Record<string, unknown>, queryParams?: Record<string, unknown>, options?: APIOptions) => Promise<T>;
|
|
7
|
+
/** POST -- but with file content instead of body data */
|
|
8
|
+
export declare const restFILE: <T>(host: string, path: string, fileContents: string, queryParams?: Record<string, unknown>, options?: APIOptions) => Promise<T>;
|
|
9
|
+
/** POST -- but no body data -- targets simple endpoints */
|
|
10
|
+
export declare const restENDPOINT: <T>(host: string, path: string, queryParams?: Record<string, unknown>, options?: APIOptions) => Promise<T>;
|
|
11
|
+
export declare const restUPDATE: <T>(host: string, path: string, data: Record<string, unknown>, queryParams?: Record<string, unknown>, options?: APIOptions) => Promise<T>;
|
|
12
|
+
export declare const restPATCH: <T>(host: string, path: string, data: Record<string, unknown>, queryParams?: Record<string, unknown>, options?: APIOptions) => Promise<T>;
|
|
13
|
+
export declare const restDELETE: <T>(host: string, path: string, data: Record<string, unknown>, queryParams?: Record<string, unknown>, options?: APIOptions) => Promise<T>;
|
|
14
|
+
export declare const isModArchResponse: <T>(response: unknown) => response is ModArchBody<T>;
|
|
15
|
+
export declare const assembleModArchBody: <T>(data: T) => ModArchBody<T>;
|
|
16
|
+
//# sourceMappingURL=apiUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiUtils.d.ts","sourceRoot":"","sources":["../../api/apiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,gBAAgB,GAC3B,OAAM,UAAe,EACrB,eAAc,WAAgB,KAC7B,WAOD,CAAC;AAsEH,eAAO,MAAM,OAAO,GAAI,CAAC,EACvB,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,UAAU,UAAU,KACnB,OAAO,CAAC,CAAC,CAIR,CAAC;AAEL,oBAAoB;AACpB,eAAO,MAAM,UAAU,GAAI,CAAC,EAC1B,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,UAAU,UAAU,KACnB,OAAO,CAAC,CAAC,CAKR,CAAC;AAEL,yDAAyD;AACzD,eAAO,MAAM,QAAQ,GAAI,CAAC,EACxB,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,cAAc,MAAM,EACpB,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,UAAU,UAAU,KACnB,OAAO,CAAC,CAAC,CAKR,CAAC;AAEL,2DAA2D;AAC3D,eAAO,MAAM,YAAY,GAAI,CAAC,EAC5B,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,UAAU,UAAU,KACnB,OAAO,CAAC,CAAC,CAIR,CAAC;AAEL,eAAO,MAAM,UAAU,GAAI,CAAC,EAC1B,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,UAAU,UAAU,KACnB,OAAO,CAAC,CAAC,CAKR,CAAC;AAEL,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,UAAU,UAAU,KACnB,OAAO,CAAC,CAAC,CAKR,CAAC;AAEL,eAAO,MAAM,UAAU,GAAI,CAAC,EAC1B,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,UAAU,UAAU,KACnB,OAAO,CAAC,CAAC,CAKR,CAAC;AAEL,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,UAAU,OAAO,KAAG,QAAQ,IAAI,WAAW,CAAC,CAAC,CAOjF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,WAAW,CAAC,CAAC,CAE5D,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export const mergeRequestInit = (opts = {}, specificOpts = {}) => ({
|
|
2
|
+
...specificOpts,
|
|
3
|
+
...(opts.signal && { signal: opts.signal }),
|
|
4
|
+
headers: {
|
|
5
|
+
...(opts.headers ?? {}),
|
|
6
|
+
...(specificOpts.headers ?? {}),
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
const callRestJSON = (host, path, requestInit, { data, fileContents, queryParams, parseJSON = true }) => {
|
|
10
|
+
const { method, ...otherOptions } = requestInit;
|
|
11
|
+
const sanitizedQueryParams = queryParams
|
|
12
|
+
? Object.entries(queryParams).reduce((acc, [key, value]) => {
|
|
13
|
+
if (value) {
|
|
14
|
+
return { ...acc, [key]: value };
|
|
15
|
+
}
|
|
16
|
+
return acc;
|
|
17
|
+
}, {})
|
|
18
|
+
: null;
|
|
19
|
+
const searchParams = sanitizedQueryParams
|
|
20
|
+
? new URLSearchParams(sanitizedQueryParams).toString()
|
|
21
|
+
: null;
|
|
22
|
+
let requestData;
|
|
23
|
+
let contentType;
|
|
24
|
+
let formData;
|
|
25
|
+
if (fileContents) {
|
|
26
|
+
formData = new FormData();
|
|
27
|
+
formData.append('uploadfile', new Blob([fileContents], { type: 'application/x-yaml' }), 'uploadedFile.yml');
|
|
28
|
+
}
|
|
29
|
+
else if (data) {
|
|
30
|
+
// It's OK for contentType and requestData to BOTH be undefined for e.g. a GET request or POST with no body.
|
|
31
|
+
contentType = 'application/json;charset=UTF-8';
|
|
32
|
+
requestData = JSON.stringify(data);
|
|
33
|
+
}
|
|
34
|
+
return fetch(`${host}${path}${searchParams ? `?${searchParams}` : ''}`, {
|
|
35
|
+
...otherOptions,
|
|
36
|
+
headers: {
|
|
37
|
+
...otherOptions.headers,
|
|
38
|
+
...(contentType && { 'Content-Type': contentType }),
|
|
39
|
+
},
|
|
40
|
+
method,
|
|
41
|
+
body: formData ?? requestData,
|
|
42
|
+
}).then((response) => response.text().then((fetchedData) => {
|
|
43
|
+
if (parseJSON) {
|
|
44
|
+
return JSON.parse(fetchedData);
|
|
45
|
+
}
|
|
46
|
+
return fetchedData;
|
|
47
|
+
}));
|
|
48
|
+
};
|
|
49
|
+
export const restGET = (host, path, queryParams = {}, options) => callRestJSON(host, path, mergeRequestInit(options, { method: 'GET' }), {
|
|
50
|
+
queryParams,
|
|
51
|
+
parseJSON: options?.parseJSON,
|
|
52
|
+
});
|
|
53
|
+
/** Standard POST */
|
|
54
|
+
export const restCREATE = (host, path, data, queryParams = {}, options) => callRestJSON(host, path, mergeRequestInit(options, { method: 'POST' }), {
|
|
55
|
+
data,
|
|
56
|
+
queryParams,
|
|
57
|
+
parseJSON: options?.parseJSON,
|
|
58
|
+
});
|
|
59
|
+
/** POST -- but with file content instead of body data */
|
|
60
|
+
export const restFILE = (host, path, fileContents, queryParams = {}, options) => callRestJSON(host, path, mergeRequestInit(options, { method: 'POST' }), {
|
|
61
|
+
fileContents,
|
|
62
|
+
queryParams,
|
|
63
|
+
parseJSON: options?.parseJSON,
|
|
64
|
+
});
|
|
65
|
+
/** POST -- but no body data -- targets simple endpoints */
|
|
66
|
+
export const restENDPOINT = (host, path, queryParams = {}, options) => callRestJSON(host, path, mergeRequestInit(options, { method: 'POST' }), {
|
|
67
|
+
queryParams,
|
|
68
|
+
parseJSON: options?.parseJSON,
|
|
69
|
+
});
|
|
70
|
+
export const restUPDATE = (host, path, data, queryParams = {}, options) => callRestJSON(host, path, mergeRequestInit(options, { method: 'PUT' }), {
|
|
71
|
+
data,
|
|
72
|
+
queryParams,
|
|
73
|
+
parseJSON: options?.parseJSON,
|
|
74
|
+
});
|
|
75
|
+
export const restPATCH = (host, path, data, queryParams = {}, options) => callRestJSON(host, path, mergeRequestInit(options, { method: 'PATCH' }), {
|
|
76
|
+
data,
|
|
77
|
+
queryParams,
|
|
78
|
+
parseJSON: options?.parseJSON,
|
|
79
|
+
});
|
|
80
|
+
export const restDELETE = (host, path, data, queryParams = {}, options) => callRestJSON(host, path, mergeRequestInit(options, { method: 'DELETE' }), {
|
|
81
|
+
data,
|
|
82
|
+
queryParams,
|
|
83
|
+
parseJSON: options?.parseJSON,
|
|
84
|
+
});
|
|
85
|
+
export const isModArchResponse = (response) => {
|
|
86
|
+
if (typeof response === 'object' && response !== null) {
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
88
|
+
const modArchBody = response;
|
|
89
|
+
return modArchBody.data !== undefined;
|
|
90
|
+
}
|
|
91
|
+
return false;
|
|
92
|
+
};
|
|
93
|
+
export const assembleModArchBody = (data) => ({
|
|
94
|
+
data,
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=apiUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiUtils.js","sourceRoot":"","sources":["../../api/apiUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../api/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,WAAW,CAAC,CAAC,CAE5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../api/const.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,IAAO,EAAkB,EAAE,CAAC,CAAC;IAClE,IAAI;CACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../../api/errorUtils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAmB/D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { isCommonStateError } from '../utilities/useFetchState';
|
|
2
|
+
const isError = (e) => typeof e === 'object' && e !== null && 'error' in e;
|
|
3
|
+
export const handleRestFailures = (promise) => promise
|
|
4
|
+
.then((result) => {
|
|
5
|
+
if (isError(result)) {
|
|
6
|
+
throw result;
|
|
7
|
+
}
|
|
8
|
+
return result;
|
|
9
|
+
})
|
|
10
|
+
.catch((e) => {
|
|
11
|
+
if (isError(e)) {
|
|
12
|
+
throw new Error(e.error.message);
|
|
13
|
+
}
|
|
14
|
+
if (isCommonStateError(e)) {
|
|
15
|
+
// Common state errors are handled by useFetchState at storage level, let them deal with it
|
|
16
|
+
throw e;
|
|
17
|
+
}
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
console.error('Unknown API error', e);
|
|
20
|
+
throw new Error('Error communicating with server');
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=errorUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorUtils.js","sourceRoot":"","sources":["../../api/errorUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAI,OAAmB,EAAc,EAAE,CACvE,OAAO;KACJ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;IACf,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACX,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,2FAA2F;QAC3F,MAAM,CAAC,CAAC;IACV,CAAC;IACD,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { APIOptions } from '../api/types';
|
|
2
|
+
import { Namespace, UserSettings } from '../types';
|
|
3
|
+
type K8sApiConfig = {
|
|
4
|
+
BFF_API_VERSION: string;
|
|
5
|
+
URL_PREFIX: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const getUser: (hostPath: string, config: K8sApiConfig) => (opts: APIOptions) => Promise<UserSettings>;
|
|
8
|
+
export declare const getNamespaces: (hostPath: string, config: K8sApiConfig) => (opts: APIOptions) => Promise<Namespace[]>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=k8s.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s.d.ts","sourceRoot":"","sources":["../../api/k8s.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGlD,KAAK,YAAY,GAAG;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,eAAO,MAAM,OAAO,GACjB,UAAU,MAAM,EAAE,QAAQ,YAAY,MACtC,MAAM,UAAU,KAAG,OAAO,CAAC,YAAY,CAQpC,CAAC;AAEP,eAAO,MAAM,aAAa,GACvB,UAAU,MAAM,EAAE,QAAQ,YAAY,MACtC,MAAM,UAAU,KAAG,OAAO,CAAC,SAAS,EAAE,CAQnC,CAAC"}
|
package/dist/api/k8s.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { handleRestFailures } from '../api/errorUtils';
|
|
2
|
+
import { isModArchResponse, restGET } from '../api/apiUtils';
|
|
3
|
+
// Functions now accept config object
|
|
4
|
+
export const getUser = (hostPath, config) => (opts) => handleRestFailures(restGET(hostPath, `${config.URL_PREFIX}/api/${config.BFF_API_VERSION}/user`, {}, opts)).then((response) => {
|
|
5
|
+
if (isModArchResponse(response)) {
|
|
6
|
+
return response.data;
|
|
7
|
+
}
|
|
8
|
+
throw new Error('Invalid response format');
|
|
9
|
+
});
|
|
10
|
+
export const getNamespaces = (hostPath, config) => (opts) => handleRestFailures(restGET(hostPath, `${config.URL_PREFIX}/api/${config.BFF_API_VERSION}/namespaces`, {}, opts)).then((response) => {
|
|
11
|
+
if (isModArchResponse(response)) {
|
|
12
|
+
return response.data;
|
|
13
|
+
}
|
|
14
|
+
throw new Error('Invalid response format');
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=k8s.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s.js","sourceRoot":"","sources":["../../api/k8s.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAS5D,qCAAqC;AACrC,MAAM,CAAC,MAAM,OAAO,GAClB,CAAC,QAAgB,EAAE,MAAoB,EAAE,EAAE,CAC3C,CAAC,IAAgB,EAAyB,EAAE,CAC1C,kBAAkB,CAChB,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,QAAQ,MAAM,CAAC,eAAe,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CACvF,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;IAClB,IAAI,iBAAiB,CAAe,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEP,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,QAAgB,EAAE,MAAoB,EAAE,EAAE,CAC3C,CAAC,IAAgB,EAAwB,EAAE,CACzC,kBAAkB,CAChB,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,QAAQ,MAAM,CAAC,eAAe,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAC7F,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;IAClB,IAAI,iBAAiB,CAAc,QAAQ,CAAC,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type APIOptions = {
|
|
2
|
+
dryRun?: boolean;
|
|
3
|
+
signal?: AbortSignal;
|
|
4
|
+
parseJSON?: boolean;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
};
|
|
7
|
+
export type APIError = {
|
|
8
|
+
error: {
|
|
9
|
+
code: string;
|
|
10
|
+
message: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type APIState<T> = {
|
|
14
|
+
/** If API will successfully call */
|
|
15
|
+
apiAvailable: boolean;
|
|
16
|
+
/** The available API functions */
|
|
17
|
+
api: T;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../api/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,oCAAoC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,GAAG,EAAE,CAAC,CAAC;CACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../api/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAPIState.d.ts","sourceRoot":"","sources":["../../api/useAPIState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,UAAU,MAAM,GAAG,IAAI,EACvB,WAAW,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KAC7B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,IAAI,CAuBrD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export const useAPIState = (hostPath, createAPI) => {
|
|
3
|
+
const [internalAPIToggleState, setInternalAPIToggleState] = React.useState(false);
|
|
4
|
+
const refreshAPIState = React.useCallback(() => {
|
|
5
|
+
setInternalAPIToggleState((v) => !v);
|
|
6
|
+
}, []);
|
|
7
|
+
const apiState = React.useMemo(() => {
|
|
8
|
+
let path = hostPath;
|
|
9
|
+
if (!path) {
|
|
10
|
+
// TODO: we need to figure out maybe a stopgap or something
|
|
11
|
+
path = '';
|
|
12
|
+
}
|
|
13
|
+
const api = createAPI(path);
|
|
14
|
+
return {
|
|
15
|
+
apiAvailable: !!path,
|
|
16
|
+
api,
|
|
17
|
+
};
|
|
18
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
19
|
+
}, [createAPI, hostPath, internalAPIToggleState]);
|
|
20
|
+
return [apiState, refreshAPIState];
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=useAPIState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAPIState.js","sourceRoot":"","sources":["../../api/useAPIState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAuB,EACvB,SAA8B,EACwB,EAAE;IACxD,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElF,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAc,GAAG,EAAE;QAC/C,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,2DAA2D;YAC3D,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5B,OAAO;YACL,YAAY,EAAE,CAAC,CAAC,IAAI;YACpB,GAAG;SACJ,CAAC;QACF,uDAAuD;IACzD,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAElD,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACrC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.file.d.ts","sourceRoot":"","sources":["../../config/transform.file.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.file.js","sourceRoot":"","sources":["../../config/transform.file.js"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.style.d.ts","sourceRoot":"","sources":["../../config/transform.style.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.style.js","sourceRoot":"","sources":["../../config/transform.style.js"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type BrowserStorageContextType = {
|
|
3
|
+
/** Based on parseJSON it can be any jsonify-able item */
|
|
4
|
+
getValue: (storageKey: string, parseJSON: boolean, isSessionStorage?: boolean) => unknown;
|
|
5
|
+
/** Returns a boolean if it was able to json-ify it. */
|
|
6
|
+
setJSONValue: (storageKey: string, value: unknown, isSessionStorage?: boolean) => boolean;
|
|
7
|
+
setStringValue: (storageKey: string, value: string, isSessionStorage?: boolean) => void;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @returns {boolean} if it was successful, false if it was not
|
|
11
|
+
*/
|
|
12
|
+
export type SetBrowserStorageHook<T> = (value: T) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* useBrowserStorage will handle all the effort behind managing localStorage or sessionStorage.
|
|
15
|
+
*/
|
|
16
|
+
export declare const useBrowserStorage: <T>(storageKey: string, defaultValue: T, jsonify?: boolean, isSessionStorage?: boolean) => [T, SetBrowserStorageHook<T>];
|
|
17
|
+
type BrowserStorageContextProviderProps = {
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @see useBrowserStorage
|
|
22
|
+
*/
|
|
23
|
+
export declare const BrowserStorageContextProvider: React.FC<BrowserStorageContextProviderProps>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=BrowserStorageContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserStorageContext.d.ts","sourceRoot":"","sources":["../../context/BrowserStorageContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,MAAM,yBAAyB,GAAG;IACtC,yDAAyD;IACzD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAC1F,uDAAuD;IACvD,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAC1F,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACzF,CAAC;AAQF;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EACjC,YAAY,MAAM,EAClB,cAAc,CAAC,EACf,iBAAc,EACd,0BAAwB,KACvB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAwB9B,CAAC;AAEF,KAAK,kCAAkC,GAAG;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAAC,kCAAkC,CA+EtF,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useDeepCompareMemoize } from '../utilities/useDeepCompareMemoize';
|
|
3
|
+
import { useEventListener } from '../utilities/useEventListener';
|
|
4
|
+
const BrowserStorageContext = React.createContext({
|
|
5
|
+
getValue: () => null,
|
|
6
|
+
setJSONValue: () => false,
|
|
7
|
+
setStringValue: () => undefined,
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* useBrowserStorage will handle all the effort behind managing localStorage or sessionStorage.
|
|
11
|
+
*/
|
|
12
|
+
export const useBrowserStorage = (storageKey, defaultValue, jsonify = true, isSessionStorage = false) => {
|
|
13
|
+
const { getValue, setJSONValue, setStringValue } = React.useContext(BrowserStorageContext);
|
|
14
|
+
const setValue = React.useCallback((value) => {
|
|
15
|
+
if (jsonify) {
|
|
16
|
+
return setJSONValue(storageKey, value, isSessionStorage);
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'string') {
|
|
19
|
+
setStringValue(storageKey, value, isSessionStorage);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
/* eslint-disable-next-line no-console */
|
|
23
|
+
console.error('Was not a string value provided, cannot stringify');
|
|
24
|
+
return false;
|
|
25
|
+
}, [isSessionStorage, jsonify, setJSONValue, setStringValue, storageKey]);
|
|
26
|
+
const value = useDeepCompareMemoize(
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
28
|
+
getValue(storageKey, jsonify, isSessionStorage) ?? defaultValue);
|
|
29
|
+
return [value, setValue];
|
|
30
|
+
};
|
|
31
|
+
const getStorage = (isSessionStorage) => {
|
|
32
|
+
if (isSessionStorage) {
|
|
33
|
+
return sessionStorage;
|
|
34
|
+
}
|
|
35
|
+
return localStorage;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* @see useBrowserStorage
|
|
39
|
+
*/
|
|
40
|
+
export const BrowserStorageContextProvider = ({ children, }) => {
|
|
41
|
+
const [values, setValues] = React.useState({});
|
|
42
|
+
/**
|
|
43
|
+
* Only listen to other storage changes (windows/tabs) -- which are localStorage.
|
|
44
|
+
* Session storage does not have cross instance storages.
|
|
45
|
+
* See MDN for more: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
|
|
46
|
+
*/
|
|
47
|
+
useEventListener(window, 'storage', () => {
|
|
48
|
+
// Another browser tab has updated storage, sync up the data
|
|
49
|
+
const keys = Object.keys(values);
|
|
50
|
+
setValues(keys.reduce((acc, key) => {
|
|
51
|
+
const value = localStorage.getItem(key);
|
|
52
|
+
return { ...acc, [key]: value };
|
|
53
|
+
}, {}));
|
|
54
|
+
});
|
|
55
|
+
const getValue = React.useCallback((key, parseJSON, isSessionStorage = false) => {
|
|
56
|
+
const value = getStorage(isSessionStorage).getItem(key);
|
|
57
|
+
if (value === null) {
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
if (parseJSON) {
|
|
61
|
+
try {
|
|
62
|
+
return JSON.parse(value);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
/* eslint-disable-next-line no-console */
|
|
66
|
+
console.warn(`Failed to parse storage value "${key}"`);
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
}, []);
|
|
74
|
+
const setJSONValue = React.useCallback((storageKey, value, isSessionStorage = false) => {
|
|
75
|
+
try {
|
|
76
|
+
const storageValue = JSON.stringify(value);
|
|
77
|
+
getStorage(isSessionStorage).setItem(storageKey, storageValue);
|
|
78
|
+
setValues((oldValues) => ({ ...oldValues, [storageKey]: storageValue }));
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
/* eslint-disable-next-line no-console */
|
|
83
|
+
console.warn('Could not store a value because it was requested to be stringified but was an invalid value for stringification.');
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}, []);
|
|
87
|
+
const setStringValue = React.useCallback((storageKey, value, isSessionStorage = false) => {
|
|
88
|
+
getStorage(isSessionStorage).setItem(storageKey, value);
|
|
89
|
+
setValues((oldValues) => ({ ...oldValues, [storageKey]: value }));
|
|
90
|
+
}, []);
|
|
91
|
+
const contextValue = React.useMemo(() => ({ getValue, setJSONValue, setStringValue }),
|
|
92
|
+
// Also trigger a context update if `values` changes.
|
|
93
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
94
|
+
[getValue, setJSONValue, setStringValue, values]);
|
|
95
|
+
return (React.createElement(BrowserStorageContext.Provider, { value: contextValue }, children));
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=BrowserStorageContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserStorageContext.js","sourceRoot":"","sources":["../../context/BrowserStorageContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ModularArchConfig, Namespace } from '../types';
|
|
3
|
+
export type ModularArchContextType = {
|
|
4
|
+
config: ModularArchConfig;
|
|
5
|
+
namespacesLoaded: boolean;
|
|
6
|
+
namespacesLoadError?: Error;
|
|
7
|
+
namespaces: Namespace[];
|
|
8
|
+
preferredNamespace: Namespace | undefined;
|
|
9
|
+
updatePreferredNamespace: (namespace: Namespace | undefined) => void;
|
|
10
|
+
initializationError?: Error;
|
|
11
|
+
scriptLoaded: boolean;
|
|
12
|
+
};
|
|
13
|
+
type ModularArchContextProviderProps = {
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
config: ModularArchConfig;
|
|
16
|
+
};
|
|
17
|
+
export declare const ModularArchContext: React.Context<ModularArchContextType | undefined>;
|
|
18
|
+
export declare const ModularArchContextProvider: React.FC<ModularArchContextProviderProps>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=ModularArchContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModularArchContext.d.ts","sourceRoot":"","sources":["../../context/ModularArchContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIvD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAE1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,kBAAkB,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,wBAAwB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IACrE,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAE5B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,mDAA+D,CAAC;AAE/F,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA+FhF,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React, { createContext, useEffect, useState } from 'react';
|
|
2
|
+
import { kubeflowScriptLoader, kubeflowNamespaceLoader } from '../utilities';
|
|
3
|
+
import { useNamespacesWithConfig } from '../hooks/useNamespaces';
|
|
4
|
+
export const ModularArchContext = createContext(undefined);
|
|
5
|
+
export const ModularArchContextProvider = ({ children, config, }) => {
|
|
6
|
+
const { deploymentMode, mandatoryNamespace } = config;
|
|
7
|
+
const [scriptLoaded, setScriptLoaded] = useState(false);
|
|
8
|
+
const [preferredNamespace, setPreferredNamespace] = useState(undefined);
|
|
9
|
+
const [initializationError, setInitializationError] = useState();
|
|
10
|
+
// Namespace-related state
|
|
11
|
+
const [unsortedNamespaces, isLoaded, error] = useNamespacesWithConfig(config);
|
|
12
|
+
const namespaces = React.useMemo(() => unsortedNamespaces.toSorted((a, b) => a.name.localeCompare(b.name)), [unsortedNamespaces]);
|
|
13
|
+
const firstNamespace = namespaces.length > 0 ? namespaces[0] : null;
|
|
14
|
+
// Set preferred namespace based on mandatory namespace or first available namespace
|
|
15
|
+
const defaultPreferredNamespace = React.useMemo(() => {
|
|
16
|
+
if (mandatoryNamespace) {
|
|
17
|
+
return { name: mandatoryNamespace };
|
|
18
|
+
}
|
|
19
|
+
return firstNamespace;
|
|
20
|
+
}, [mandatoryNamespace, firstNamespace]);
|
|
21
|
+
// Script loader for kubeflow integration
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
kubeflowScriptLoader(deploymentMode, () => setScriptLoaded(true), (scriptError) => {
|
|
24
|
+
// eslint-disable-next-line no-console
|
|
25
|
+
console.error('Error loading kubeflow script:', scriptError);
|
|
26
|
+
setScriptLoaded(true); // Still set to true to not block the UI
|
|
27
|
+
});
|
|
28
|
+
}, [deploymentMode]);
|
|
29
|
+
// Namespace selector for kubeflow integration
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
// If mandatory namespace is set, don't use kubeflow namespace loader
|
|
32
|
+
if (mandatoryNamespace) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
kubeflowNamespaceLoader(deploymentMode, scriptLoaded, (newNamespace) => {
|
|
36
|
+
setPreferredNamespace({ name: newNamespace });
|
|
37
|
+
}, (err) => {
|
|
38
|
+
setInitializationError(err);
|
|
39
|
+
}, mandatoryNamespace);
|
|
40
|
+
}, [deploymentMode, scriptLoaded, mandatoryNamespace]);
|
|
41
|
+
const contextValue = React.useMemo(() => ({
|
|
42
|
+
config,
|
|
43
|
+
namespacesLoaded: isLoaded,
|
|
44
|
+
namespacesLoadError: error,
|
|
45
|
+
namespaces,
|
|
46
|
+
preferredNamespace: preferredNamespace ?? defaultPreferredNamespace ?? undefined,
|
|
47
|
+
updatePreferredNamespace: setPreferredNamespace,
|
|
48
|
+
initializationError,
|
|
49
|
+
scriptLoaded,
|
|
50
|
+
}), [
|
|
51
|
+
config,
|
|
52
|
+
isLoaded,
|
|
53
|
+
error,
|
|
54
|
+
namespaces,
|
|
55
|
+
preferredNamespace,
|
|
56
|
+
defaultPreferredNamespace,
|
|
57
|
+
initializationError,
|
|
58
|
+
scriptLoaded,
|
|
59
|
+
]);
|
|
60
|
+
// Show loading spinner if script is not loaded yet
|
|
61
|
+
if (!scriptLoaded) {
|
|
62
|
+
return (React.createElement("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100vh' } },
|
|
63
|
+
React.createElement("div", null, "Loading...")));
|
|
64
|
+
}
|
|
65
|
+
return React.createElement(ModularArchContext.Provider, { value: contextValue }, children);
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=ModularArchContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModularArchContext.js","sourceRoot":"","sources":["../../context/ModularArchContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Notification, NotificationAction } from '../types';
|
|
3
|
+
type NotificationContextProps = {
|
|
4
|
+
notifications: Notification[];
|
|
5
|
+
notificationCount: number;
|
|
6
|
+
updateNotificationCount: React.Dispatch<React.SetStateAction<number>>;
|
|
7
|
+
dispatch: React.Dispatch<NotificationAction>;
|
|
8
|
+
};
|
|
9
|
+
export declare const NotificationContext: React.Context<NotificationContextProps>;
|
|
10
|
+
type NotificationContextProviderProps = {
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export declare const NotificationContextProvider: React.FC<NotificationContextProviderProps>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=NotificationContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationContext.d.ts","sourceRoot":"","sources":["../../context/NotificationContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,YAAY,EAA2B,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEpF,KAAK,wBAAwB,GAAG;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,yCAO9B,CAAC;AA4BH,KAAK,gCAAgC,GAAG;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,gCAAgC,CAqBlF,CAAC"}
|