datajunction-ui 0.0.1-rc.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/.env +1 -0
- package/.env.local +4 -0
- package/.env.production +1 -0
- package/.eslintrc.js +20 -0
- package/.gitattributes +201 -0
- package/.github/pull_request_template.md +11 -0
- package/.github/workflows/ci.yml +33 -0
- package/.husky/pre-commit +6 -0
- package/.nvmrc +1 -0
- package/.prettierignore +4 -0
- package/.prettierrc +9 -0
- package/.stylelintrc +7 -0
- package/.vscode/extensions.json +8 -0
- package/.vscode/launch.json +15 -0
- package/.vscode/settings.json +25 -0
- package/Dockerfile +6 -0
- package/LICENSE +22 -0
- package/README.md +10 -0
- package/internals/testing/loadable.mock.tsx +6 -0
- package/package.json +150 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +29 -0
- package/public/manifest.json +15 -0
- package/public/robots.txt +3 -0
- package/src/app/__tests__/__snapshots__/index.test.tsx.snap +45 -0
- package/src/app/__tests__/index.test.tsx +14 -0
- package/src/app/components/ListGroupItem.jsx +17 -0
- package/src/app/components/NamespaceHeader.jsx +40 -0
- package/src/app/components/Tab.jsx +26 -0
- package/src/app/components/__tests__/ListGroupItem.test.tsx +16 -0
- package/src/app/components/__tests__/NamespaceHeader.test.jsx +14 -0
- package/src/app/components/__tests__/__snapshots__/ListGroupItem.test.tsx.snap +26 -0
- package/src/app/components/__tests__/__snapshots__/NamespaceHeader.test.jsx.snap +63 -0
- package/src/app/components/djgraph/DJNode.jsx +111 -0
- package/src/app/components/djgraph/__tests__/DJNode.test.tsx +24 -0
- package/src/app/components/djgraph/__tests__/__snapshots__/DJNode.test.tsx.snap +73 -0
- package/src/app/index.tsx +53 -0
- package/src/app/pages/ListNamespacesPage/Loadable.jsx +23 -0
- package/src/app/pages/ListNamespacesPage/index.jsx +53 -0
- package/src/app/pages/NamespacePage/Loadable.jsx +23 -0
- package/src/app/pages/NamespacePage/__tests__/__snapshots__/index.test.tsx.snap +45 -0
- package/src/app/pages/NamespacePage/__tests__/index.test.tsx +14 -0
- package/src/app/pages/NamespacePage/index.jsx +93 -0
- package/src/app/pages/NodePage/Loadable.jsx +23 -0
- package/src/app/pages/NodePage/NodeColumnTab.jsx +44 -0
- package/src/app/pages/NodePage/NodeGraphTab.jsx +160 -0
- package/src/app/pages/NodePage/NodeInfoTab.jsx +87 -0
- package/src/app/pages/NodePage/NodeStatus.jsx +34 -0
- package/src/app/pages/NodePage/index.jsx +100 -0
- package/src/app/pages/NotFoundPage/Loadable.tsx +14 -0
- package/src/app/pages/NotFoundPage/P.ts +8 -0
- package/src/app/pages/NotFoundPage/__tests__/__snapshots__/index.test.tsx.snap +61 -0
- package/src/app/pages/NotFoundPage/__tests__/index.test.tsx +21 -0
- package/src/app/pages/NotFoundPage/index.tsx +45 -0
- package/src/app/pages/Root/Loadable.tsx +23 -0
- package/src/app/pages/Root/assets/dj-logo.png +0 -0
- package/src/app/pages/Root/index.tsx +42 -0
- package/src/app/services/DJService.js +124 -0
- package/src/index.tsx +47 -0
- package/src/react-app-env.d.ts +4 -0
- package/src/reportWebVitals.ts +15 -0
- package/src/setupTests.ts +8 -0
- package/src/styles/dag-styles.ts +117 -0
- package/src/styles/global-styles.ts +588 -0
- package/src/styles/index.css +546 -0
- package/src/utils/__tests__/__snapshots__/loadable.test.tsx.snap +17 -0
- package/src/utils/__tests__/loadable.test.tsx +53 -0
- package/src/utils/__tests__/request.test.ts +82 -0
- package/src/utils/loadable.tsx +30 -0
- package/src/utils/request.ts +54 -0
- package/tsconfig.json +31 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export class ResponseError extends Error {
|
|
2
|
+
public response: Response;
|
|
3
|
+
|
|
4
|
+
constructor(response: Response) {
|
|
5
|
+
super(response.statusText);
|
|
6
|
+
this.response = response;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Parses the JSON returned by a network request
|
|
11
|
+
*
|
|
12
|
+
* @param {object} response A response from a network request
|
|
13
|
+
*
|
|
14
|
+
* @return {object} The parsed JSON from the request
|
|
15
|
+
*/
|
|
16
|
+
function parseJSON(response: Response) {
|
|
17
|
+
if (response.status === 204 || response.status === 205) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return response.json();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Checks if a network request came back fine, and throws an error if not
|
|
25
|
+
*
|
|
26
|
+
* @param {object} response A response from a network request
|
|
27
|
+
*
|
|
28
|
+
* @return {object|undefined} Returns either the response, or throws an error
|
|
29
|
+
*/
|
|
30
|
+
function checkStatus(response: Response) {
|
|
31
|
+
if (response.status >= 200 && response.status < 300) {
|
|
32
|
+
return response;
|
|
33
|
+
}
|
|
34
|
+
const error = new ResponseError(response);
|
|
35
|
+
error.response = response;
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Requests a URL, returning a promise
|
|
41
|
+
*
|
|
42
|
+
* @param {string} url The URL we want to request
|
|
43
|
+
* @param {object} [options] The options we want to pass to "fetch"
|
|
44
|
+
*
|
|
45
|
+
* @return {object} The response data
|
|
46
|
+
*/
|
|
47
|
+
export async function request(
|
|
48
|
+
url: string,
|
|
49
|
+
options?: RequestInit,
|
|
50
|
+
): Promise<{} | { err: ResponseError }> {
|
|
51
|
+
const fetchResponse = await fetch(url, options);
|
|
52
|
+
const response = checkStatus(fetchResponse);
|
|
53
|
+
return parseJSON(response);
|
|
54
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"noImplicitAny": false,
|
|
4
|
+
"target": "es5",
|
|
5
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
6
|
+
"allowJs": true,
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"allowSyntheticDefaultImports": true,
|
|
10
|
+
"strict": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"module": "esnext",
|
|
13
|
+
"moduleResolution": "node",
|
|
14
|
+
"resolveJsonModule": true,
|
|
15
|
+
"isolatedModules": true,
|
|
16
|
+
"noEmit": true,
|
|
17
|
+
"noFallthroughCasesInSwitch": true,
|
|
18
|
+
"jsx": "react-jsx",
|
|
19
|
+
"baseUrl": "./src"
|
|
20
|
+
},
|
|
21
|
+
"include": ["src", "internals/startingTemplate/**/*"],
|
|
22
|
+
"ts-node": {
|
|
23
|
+
"compilerOptions": {
|
|
24
|
+
"esModuleInterop": true,
|
|
25
|
+
"module": "commonjs",
|
|
26
|
+
"moduleResolution": "node",
|
|
27
|
+
"noEmit": true,
|
|
28
|
+
"allowSyntheticDefaultImports": true
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|