@looker/run-it 0.9.43-alpha.1650 → 0.9.43
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +20 -1
- package/lib/RunIt.js +12 -28
- package/lib/RunIt.js.map +1 -1
- package/lib/RunItProvider.js +0 -6
- package/lib/RunItProvider.js.map +1 -1
- package/lib/components/Collapser/CollapserCard.js +0 -8
- package/lib/components/Collapser/CollapserCard.js.map +1 -1
- package/lib/components/Collapser/index.js +0 -1
- package/lib/components/Collapser/index.js.map +1 -1
- package/lib/components/ConfigForm/ConfigForm.js +5 -52
- package/lib/components/ConfigForm/ConfigForm.js.map +1 -1
- package/lib/components/ConfigForm/index.js +0 -4
- package/lib/components/ConfigForm/index.js.map +1 -1
- package/lib/components/ConfigForm/utils.js +5 -21
- package/lib/components/ConfigForm/utils.js.map +1 -1
- package/lib/components/CopyLinkWrapper/CopyLinkWrapper.js +0 -16
- package/lib/components/CopyLinkWrapper/CopyLinkWrapper.js.map +1 -1
- package/lib/components/CopyLinkWrapper/index.js +0 -1
- package/lib/components/CopyLinkWrapper/index.js.map +1 -1
- package/lib/components/DataGrid/DataGrid.d.ts +2 -2
- package/lib/components/DataGrid/DataGrid.js +1 -9
- package/lib/components/DataGrid/DataGrid.js.map +1 -1
- package/lib/components/DataGrid/gridUtils.js +1 -22
- package/lib/components/DataGrid/gridUtils.js.map +1 -1
- package/lib/components/DataGrid/index.js +4 -6
- package/lib/components/DataGrid/index.js.map +1 -1
- package/lib/components/DocSdkCalls/DocMultiCall.js +0 -6
- package/lib/components/DocSdkCalls/DocMultiCall.js.map +1 -1
- package/lib/components/DocSdkCalls/DocSdkCalls.d.ts +1 -0
- package/lib/components/DocSdkCalls/DocSdkCalls.js +5 -17
- package/lib/components/DocSdkCalls/DocSdkCalls.js.map +1 -1
- package/lib/components/DocSdkCalls/callUtils.js +0 -5
- package/lib/components/DocSdkCalls/callUtils.js.map +1 -1
- package/lib/components/DocSdkCalls/index.js +4 -6
- package/lib/components/DocSdkCalls/index.js.map +1 -1
- package/lib/components/Loading/Loading.js +0 -5
- package/lib/components/Loading/Loading.js.map +1 -1
- package/lib/components/Loading/index.js +0 -1
- package/lib/components/Loading/index.js.map +1 -1
- package/lib/components/LoginForm/LoginForm.js +1 -16
- package/lib/components/LoginForm/LoginForm.js.map +1 -1
- package/lib/components/LoginForm/index.js +0 -1
- package/lib/components/LoginForm/index.js.map +1 -1
- package/lib/components/MethodBadge/MethodBadge.js +1 -16
- package/lib/components/MethodBadge/MethodBadge.js.map +1 -1
- package/lib/components/MethodBadge/index.js +0 -1
- package/lib/components/MethodBadge/index.js.map +1 -1
- package/lib/components/PerfTracker/PerfChart.js +0 -12
- package/lib/components/PerfTracker/PerfChart.js.map +1 -1
- package/lib/components/PerfTracker/PerfTable.js +0 -9
- package/lib/components/PerfTracker/PerfTable.js.map +1 -1
- package/lib/components/PerfTracker/PerfTracker.js +0 -18
- package/lib/components/PerfTracker/PerfTracker.js.map +1 -1
- package/lib/components/PerfTracker/index.js +4 -6
- package/lib/components/PerfTracker/index.js.map +1 -1
- package/lib/components/PerfTracker/perfTableUtils.d.ts +1 -1
- package/lib/components/PerfTracker/perfTableUtils.js +2 -18
- package/lib/components/PerfTracker/perfTableUtils.js.map +1 -1
- package/lib/components/PerfTracker/perfUtils.js +4 -42
- package/lib/components/PerfTracker/perfUtils.js.map +1 -1
- package/lib/components/RequestForm/FormItem.js +0 -5
- package/lib/components/RequestForm/FormItem.js.map +1 -1
- package/lib/components/RequestForm/RequestForm.d.ts +3 -1
- package/lib/components/RequestForm/RequestForm.js +25 -23
- package/lib/components/RequestForm/RequestForm.js.map +1 -1
- package/lib/components/RequestForm/formUtils.d.ts +1 -0
- package/lib/components/RequestForm/formUtils.js +9 -47
- package/lib/components/RequestForm/formUtils.js.map +1 -1
- package/lib/components/RequestForm/index.js +0 -2
- package/lib/components/RequestForm/index.js.map +1 -1
- package/lib/components/ResponseExplorer/ResponseExplorer.js +2 -22
- package/lib/components/ResponseExplorer/ResponseExplorer.js.map +1 -1
- package/lib/components/ResponseExplorer/index.js +0 -2
- package/lib/components/ResponseExplorer/index.js.map +1 -1
- package/lib/components/ShowResponse/ShowResponse.js +0 -7
- package/lib/components/ShowResponse/ShowResponse.js.map +1 -1
- package/lib/components/ShowResponse/index.js +0 -1
- package/lib/components/ShowResponse/index.js.map +1 -1
- package/lib/components/ShowResponse/responseUtils.js +4 -49
- package/lib/components/ShowResponse/responseUtils.js.map +1 -1
- package/lib/components/common/common.d.ts +2 -2
- package/lib/components/common/common.js +1 -5
- package/lib/components/common/common.js.map +1 -1
- package/lib/components/common/index.js +0 -1
- package/lib/components/common/index.js.map +1 -1
- package/lib/components/index.js +0 -26
- package/lib/components/index.js.map +1 -1
- package/lib/esm/RunIt.js +65 -62
- package/lib/esm/RunIt.js.map +1 -1
- package/lib/esm/RunItProvider.js +14 -4
- package/lib/esm/RunItProvider.js.map +1 -1
- package/lib/esm/components/Collapser/CollapserCard.js +22 -14
- package/lib/esm/components/Collapser/CollapserCard.js.map +1 -1
- package/lib/esm/components/Collapser/index.js +12 -1
- package/lib/esm/components/Collapser/index.js.map +1 -1
- package/lib/esm/components/ConfigForm/ConfigForm.js +63 -89
- package/lib/esm/components/ConfigForm/ConfigForm.js.map +1 -1
- package/lib/esm/components/ConfigForm/index.js +27 -2
- package/lib/esm/components/ConfigForm/index.js.map +1 -1
- package/lib/esm/components/ConfigForm/utils.js +25 -21
- package/lib/esm/components/ConfigForm/utils.js.map +1 -1
- package/lib/esm/components/CopyLinkWrapper/CopyLinkWrapper.js +22 -19
- package/lib/esm/components/CopyLinkWrapper/CopyLinkWrapper.js.map +1 -1
- package/lib/esm/components/CopyLinkWrapper/index.js +12 -1
- package/lib/esm/components/CopyLinkWrapper/index.js.map +1 -1
- package/lib/esm/components/DataGrid/DataGrid.js +25 -17
- package/lib/esm/components/DataGrid/DataGrid.js.map +1 -1
- package/lib/esm/components/DataGrid/gridUtils.js +26 -15
- package/lib/esm/components/DataGrid/gridUtils.js.map +1 -1
- package/lib/esm/components/DataGrid/index.js +25 -2
- package/lib/esm/components/DataGrid/index.js.map +1 -1
- package/lib/esm/components/DocSdkCalls/DocMultiCall.js +15 -7
- package/lib/esm/components/DocSdkCalls/DocMultiCall.js.map +1 -1
- package/lib/esm/components/DocSdkCalls/DocSdkCalls.js +30 -22
- package/lib/esm/components/DocSdkCalls/DocSdkCalls.js.map +1 -1
- package/lib/esm/components/DocSdkCalls/callUtils.js +10 -3
- package/lib/esm/components/DocSdkCalls/callUtils.js.map +1 -1
- package/lib/esm/components/DocSdkCalls/index.js +19 -2
- package/lib/esm/components/DocSdkCalls/index.js.map +1 -1
- package/lib/esm/components/Loading/Loading.js +14 -6
- package/lib/esm/components/Loading/Loading.js.map +1 -1
- package/lib/esm/components/Loading/index.js +12 -1
- package/lib/esm/components/Loading/index.js.map +1 -1
- package/lib/esm/components/LoginForm/LoginForm.js +21 -18
- package/lib/esm/components/LoginForm/LoginForm.js.map +1 -1
- package/lib/esm/components/LoginForm/index.js +18 -1
- package/lib/esm/components/LoginForm/index.js.map +1 -1
- package/lib/esm/components/MethodBadge/MethodBadge.js +19 -13
- package/lib/esm/components/MethodBadge/MethodBadge.js.map +1 -1
- package/lib/esm/components/MethodBadge/index.js +12 -1
- package/lib/esm/components/MethodBadge/index.js.map +1 -1
- package/lib/esm/components/PerfTracker/PerfChart.js +18 -16
- package/lib/esm/components/PerfTracker/PerfChart.js.map +1 -1
- package/lib/esm/components/PerfTracker/PerfTable.js +22 -15
- package/lib/esm/components/PerfTracker/PerfTable.js.map +1 -1
- package/lib/esm/components/PerfTracker/PerfTracker.js +33 -31
- package/lib/esm/components/PerfTracker/PerfTracker.js.map +1 -1
- package/lib/esm/components/PerfTracker/index.js +19 -2
- package/lib/esm/components/PerfTracker/index.js.map +1 -1
- package/lib/esm/components/PerfTracker/perfTableUtils.js +28 -26
- package/lib/esm/components/PerfTracker/perfTableUtils.js.map +1 -1
- package/lib/esm/components/PerfTracker/perfUtils.js +15 -39
- package/lib/esm/components/PerfTracker/perfUtils.js.map +1 -1
- package/lib/esm/components/RequestForm/FormItem.js +14 -6
- package/lib/esm/components/RequestForm/FormItem.js.map +1 -1
- package/lib/esm/components/RequestForm/RequestForm.js +50 -32
- package/lib/esm/components/RequestForm/RequestForm.js.map +1 -1
- package/lib/esm/components/RequestForm/formUtils.js +47 -53
- package/lib/esm/components/RequestForm/formUtils.js.map +1 -1
- package/lib/esm/components/RequestForm/index.js +19 -2
- package/lib/esm/components/RequestForm/index.js.map +1 -1
- package/lib/esm/components/ResponseExplorer/ResponseExplorer.js +41 -35
- package/lib/esm/components/ResponseExplorer/ResponseExplorer.js.map +1 -1
- package/lib/esm/components/ResponseExplorer/index.js +16 -1
- package/lib/esm/components/ResponseExplorer/index.js.map +1 -1
- package/lib/esm/components/ShowResponse/ShowResponse.js +14 -8
- package/lib/esm/components/ShowResponse/ShowResponse.js.map +1 -1
- package/lib/esm/components/ShowResponse/index.js +12 -1
- package/lib/esm/components/ShowResponse/index.js.map +1 -1
- package/lib/esm/components/ShowResponse/responseUtils.js +43 -61
- package/lib/esm/components/ShowResponse/responseUtils.js.map +1 -1
- package/lib/esm/components/common/common.js +13 -4
- package/lib/esm/components/common/common.js.map +1 -1
- package/lib/esm/components/common/index.js +18 -1
- package/lib/esm/components/common/index.js.map +1 -1
- package/lib/esm/components/index.js +148 -13
- package/lib/esm/components/index.js.map +1 -1
- package/lib/esm/index.js +49 -4
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/test-data/index.js +68 -0
- package/lib/esm/test-data/index.js.map +1 -0
- package/lib/esm/test-data/responses.js +139 -0
- package/lib/esm/test-data/responses.js.map +1 -0
- package/lib/esm/test-data/specs.js +11 -0
- package/lib/esm/test-data/specs.js.map +1 -0
- package/lib/esm/utils/RunItSDK.js +25 -20
- package/lib/esm/utils/RunItSDK.js.map +1 -1
- package/lib/esm/utils/index.js +27 -2
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/requestUtils.js +42 -64
- package/lib/esm/utils/requestUtils.js.map +1 -1
- package/lib/index.js +0 -8
- package/lib/index.js.map +1 -1
- package/lib/test-data/index.js +20 -22
- package/lib/test-data/index.js.map +1 -1
- package/lib/test-data/responses.js +1 -3
- package/lib/test-data/responses.js.map +1 -1
- package/lib/test-data/specs.js +0 -4
- package/lib/test-data/specs.js.map +1 -1
- package/lib/utils/RunItSDK.js +6 -15
- package/lib/utils/RunItSDK.js.map +1 -1
- package/lib/utils/index.js +0 -4
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/requestUtils.d.ts +1 -1
- package/lib/utils/requestUtils.js +4 -61
- package/lib/utils/requestUtils.js.map +1 -1
- package/package.json +20 -19
@@ -1,12 +1,20 @@
|
|
1
|
-
|
2
|
-
import { Table, TableBody, TableRow, TableDataCell, Span, TableHead, TableHeaderCell, IconButton } from '@looker/components';
|
3
|
-
import styled from 'styled-components';
|
4
|
-
import { Warning } from '@styled-icons/material/Warning';
|
5
|
-
import { APIErrorDialog, APIErrorDisplay } from '@looker/extension-utils';
|
6
|
-
import { ShowResponse } from '../ShowResponse';
|
7
|
-
import { CollapserCard } from '../Collapser';
|
8
|
-
import { DarkSpan, RunItHeading } from '../common';
|
1
|
+
"use strict";
|
9
2
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.ResponseHeaders = exports.ResponseExplorer = void 0;
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
8
|
+
var _components = require("@looker/components");
|
9
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
10
|
+
var _Warning = require("@styled-icons/material/Warning");
|
11
|
+
var _extensionUtils = require("@looker/extension-utils");
|
12
|
+
var _ShowResponse = require("../ShowResponse");
|
13
|
+
var _Collapser = require("../Collapser");
|
14
|
+
var _common = require("../common");
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
10
18
|
var getHeaders = response => {
|
11
19
|
if (!(response !== null && response !== void 0 && response.headers)) return [];
|
12
20
|
var result = [];
|
@@ -16,84 +24,82 @@ var getHeaders = response => {
|
|
16
24
|
});
|
17
25
|
return result;
|
18
26
|
};
|
19
|
-
|
20
27
|
var getBodySize = response => {
|
21
28
|
var size = !response || !response.body ? 0 : (response === null || response === void 0 ? void 0 : response.body) instanceof Blob ? response === null || response === void 0 ? void 0 : response.body.size : response === null || response === void 0 ? void 0 : response.body.toString().length;
|
22
29
|
return "".concat(size, " bytes");
|
23
30
|
};
|
24
|
-
|
25
|
-
var NoWrap = styled(Span).withConfig({
|
31
|
+
var NoWrap = (0, _styledComponents.default)(_components.Span).withConfig({
|
26
32
|
displayName: "ResponseExplorer__NoWrap",
|
27
|
-
componentId: "bpger-0"
|
33
|
+
componentId: "sc-bpger-0"
|
28
34
|
})(["display:inline-block;direction:rtl;white-space:nowrap;overflow:hidden;"]);
|
29
|
-
|
35
|
+
var ResponseHeaders = _ref2 => {
|
30
36
|
var {
|
31
37
|
response
|
32
38
|
} = _ref2;
|
33
39
|
var rows = getHeaders(response);
|
34
|
-
if (rows.length === 0) return
|
35
|
-
return
|
40
|
+
if (rows.length === 0) return _react.default.createElement(_react.default.Fragment, null);
|
41
|
+
return _react.default.createElement(_Collapser.CollapserCard, {
|
36
42
|
key: "headers",
|
37
43
|
heading: "Headers (".concat(rows.length, ")"),
|
38
44
|
id: "headers",
|
39
45
|
defaultOpen: false,
|
40
46
|
divider: false
|
41
|
-
},
|
47
|
+
}, _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_components.Table, null, _react.default.createElement(_components.TableHead, null, _react.default.createElement(_components.TableRow, null, _react.default.createElement(_components.TableHeaderCell, {
|
42
48
|
p: "xsmall"
|
43
|
-
}, "Name"),
|
49
|
+
}, "Name"), _react.default.createElement(_components.TableHeaderCell, {
|
44
50
|
p: "xsmall"
|
45
|
-
}, "Value"))),
|
51
|
+
}, "Value"))), _react.default.createElement(_components.TableBody, null, rows.map(_ref3 => {
|
46
52
|
var [key, value] = _ref3;
|
47
|
-
return
|
53
|
+
return _react.default.createElement(_components.TableRow, {
|
48
54
|
key: key
|
49
|
-
},
|
55
|
+
}, _react.default.createElement(_components.TableDataCell, {
|
50
56
|
p: "xsmall"
|
51
|
-
},
|
57
|
+
}, _react.default.createElement(NoWrap, null, _react.default.createElement("strong", null, key))), _react.default.createElement(_components.TableDataCell, {
|
52
58
|
p: "xsmall"
|
53
|
-
},
|
59
|
+
}, _react.default.createElement(_components.Span, null, value)));
|
54
60
|
})))));
|
55
61
|
};
|
56
|
-
|
62
|
+
exports.ResponseHeaders = ResponseHeaders;
|
63
|
+
var ResponseExplorer = _ref4 => {
|
57
64
|
var {
|
58
65
|
response,
|
59
66
|
verb,
|
60
67
|
path
|
61
68
|
} = _ref4;
|
62
|
-
var [isOpen, setIsOpen] = useState(false);
|
69
|
+
var [isOpen, setIsOpen] = (0, _react.useState)(false);
|
63
70
|
var error = response && response.statusCode >= 400 && response.contentType === 'application/json' ? JSON.parse(response.body) : undefined;
|
64
|
-
|
65
71
|
var timed = response => {
|
66
72
|
if (!(response.responseCompleted || response.requestStarted)) return '';
|
67
73
|
var diff = (response.responseCompleted - response.requestStarted) / 1000;
|
68
74
|
return "Seconds: ".concat(diff.toFixed(3));
|
69
75
|
};
|
70
|
-
|
71
|
-
return React.createElement(React.Fragment, null, !response && React.createElement(DarkSpan, null, "No response was received"), response && React.createElement(React.Fragment, null, React.createElement(RunItHeading, {
|
76
|
+
return _react.default.createElement(_react.default.Fragment, null, !response && _react.default.createElement(_common.DarkSpan, null, "No response was received"), response && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_common.RunItHeading, {
|
72
77
|
as: "h4"
|
73
|
-
}, error &&
|
78
|
+
}, error && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_extensionUtils.APIErrorDialog, {
|
74
79
|
error: error,
|
75
80
|
isOpen: isOpen,
|
76
81
|
setOpen: setIsOpen
|
77
|
-
}),
|
82
|
+
}), _react.default.createElement(_components.IconButton, {
|
78
83
|
size: "small",
|
79
84
|
onClick: () => setIsOpen(true),
|
80
|
-
icon:
|
85
|
+
icon: _react.default.createElement(_Warning.Warning, null),
|
81
86
|
"aria-label": "API error",
|
82
87
|
label: "API Error"
|
83
|
-
})), "".concat(verb || '', " ").concat(path || '', " (").concat(response.statusCode, ": ").concat(response.statusMessage, ") ").concat(timed(response))),
|
88
|
+
})), "".concat(verb || '', " ").concat(path || '', " (").concat(response.statusCode, ": ").concat(response.statusMessage, ") ").concat(timed(response))), _react.default.createElement(_Collapser.CollapserCard, {
|
84
89
|
divider: false,
|
85
90
|
heading: "Body (".concat(getBodySize(response), ")"),
|
86
91
|
id: "body"
|
87
|
-
},
|
92
|
+
}, _react.default.createElement(_ShowResponse.ShowResponse, {
|
88
93
|
response: response
|
89
|
-
})), error &&
|
94
|
+
})), error && _react.default.createElement(_Collapser.CollapserCard, {
|
90
95
|
divider: false,
|
91
96
|
heading: 'Error information'
|
92
|
-
},
|
97
|
+
}, _react.default.createElement(_extensionUtils.APIErrorDisplay, {
|
93
98
|
error: error,
|
94
99
|
showDoc: true
|
95
|
-
})),
|
100
|
+
})), _react.default.createElement(ResponseHeaders, {
|
96
101
|
response: response
|
97
102
|
})));
|
98
103
|
};
|
104
|
+
exports.ResponseExplorer = ResponseExplorer;
|
99
105
|
//# sourceMappingURL=ResponseExplorer.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ResponseExplorer/ResponseExplorer.tsx"],"names":["React","useState","Table","TableBody","TableRow","TableDataCell","Span","TableHead","TableHeaderCell","IconButton","styled","Warning","APIErrorDialog","APIErrorDisplay","ShowResponse","CollapserCard","DarkSpan","RunItHeading","getHeaders","response","headers","result","Object","entries","forEach","key","val","push","getBodySize","size","body","Blob","toString","length","NoWrap","ResponseHeaders","rows","map","value","ResponseExplorer","verb","path","isOpen","setIsOpen","error","statusCode","contentType","JSON","parse","undefined","timed","responseCompleted","requestStarted","diff","toFixed","statusMessage"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { FC } from 'react'\nimport React, { useState } from 'react'\nimport {\n Table,\n TableBody,\n TableRow,\n TableDataCell,\n Span,\n TableHead,\n TableHeaderCell,\n IconButton,\n} from '@looker/components'\nimport styled from 'styled-components'\nimport type { IRawResponse, LookerSDKError } from '@looker/sdk-rtl'\nimport { Warning } from '@styled-icons/material/Warning'\nimport { APIErrorDialog, APIErrorDisplay } from '@looker/extension-utils'\nimport { ShowResponse } from '../ShowResponse'\nimport { CollapserCard } from '../Collapser'\nimport { DarkSpan, RunItHeading } from '../common'\n\ntype HeaderTable = string[][]\nexport type ResponseContent = IRawResponse | undefined\n\nconst getHeaders = (response: ResponseContent): HeaderTable => {\n if (!response?.headers) return []\n const result: HeaderTable = []\n Object.entries(response.headers).forEach(([key, val]) =>\n result.push([key, val])\n )\n return result\n}\n\nconst getBodySize = (response: ResponseContent): string => {\n const size =\n !response || !response.body\n ? 0\n : response?.body instanceof Blob\n ? response?.body.size\n : response?.body.toString().length\n\n return `${size} bytes`\n}\n\nconst NoWrap = styled(Span)`\n display: inline-block;\n direction: rtl;\n white-space: nowrap;\n overflow: hidden;\n`\n\ninterface ShowHeadersProps {\n response: ResponseContent\n}\n\n/**\n * Display response headers in a table\n * @param response to display\n * @constructor\n */\nexport const ResponseHeaders: FC<ShowHeadersProps> = ({ response }) => {\n const rows = getHeaders(response)\n if (rows.length === 0) return <></>\n return (\n <CollapserCard\n key=\"headers\"\n heading={`Headers (${rows.length})`}\n id=\"headers\"\n defaultOpen={false}\n divider={false}\n >\n <>\n <Table>\n <TableHead>\n <TableRow>\n <TableHeaderCell p=\"xsmall\">Name</TableHeaderCell>\n <TableHeaderCell p=\"xsmall\">Value</TableHeaderCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {rows.map(([key, value]) => (\n <TableRow key={key}>\n <TableDataCell p=\"xsmall\">\n <NoWrap>\n <strong>{key}</strong>\n </NoWrap>\n </TableDataCell>\n <TableDataCell p=\"xsmall\">\n <Span>{value}</Span>\n </TableDataCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </>\n </CollapserCard>\n )\n}\n\ninterface ResponseExplorerProps {\n response: ResponseContent\n verb: string\n path: string\n}\n\n/**\n * Explore the raw response from an HTTP request\n * @param response IRawResponse values\n * @param verb HTTP method\n * @param path Path of request\n * @constructor\n */\nexport const ResponseExplorer: FC<ResponseExplorerProps> = ({\n response,\n verb,\n path,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const error: LookerSDKError =\n response &&\n response.statusCode >= 400 &&\n response.contentType === 'application/json'\n ? JSON.parse(response.body)\n : undefined\n\n const timed = (response: IRawResponse) => {\n if (!(response.responseCompleted || response.requestStarted)) return ''\n const diff = (response.responseCompleted - response.requestStarted) / 1000\n return `Seconds: ${diff.toFixed(3)}`\n }\n\n return (\n <>\n {!response && <DarkSpan>No response was received</DarkSpan>}\n {response && (\n <>\n <RunItHeading as=\"h4\">\n {error && (\n <>\n <APIErrorDialog\n error={error}\n isOpen={isOpen}\n setOpen={setIsOpen}\n />\n <IconButton\n size=\"small\"\n onClick={() => setIsOpen(true)}\n icon={<Warning />}\n aria-label=\"API error\"\n label=\"API Error\"\n />\n </>\n )}\n {`${verb || ''} ${path || ''} (${response.statusCode}: ${\n response.statusMessage\n }) ${timed(response)}`}\n </RunItHeading>\n <CollapserCard\n divider={false}\n heading={`Body (${getBodySize(response)})`}\n id=\"body\"\n >\n <ShowResponse response={response} />\n </CollapserCard>\n {error && (\n <CollapserCard divider={false} heading={'Error information'}>\n <APIErrorDisplay error={error} showDoc={true} />\n </CollapserCard>\n )}\n <ResponseHeaders response={response} />\n </>\n )}\n </>\n )\n}\n"],"file":"ResponseExplorer.js"}
|
1
|
+
{"version":3,"file":"ResponseExplorer.js","names":["getHeaders","response","headers","result","Object","entries","forEach","key","val","push","getBodySize","size","body","Blob","toString","length","NoWrap","styled","Span","ResponseHeaders","rows","map","value","ResponseExplorer","verb","path","isOpen","setIsOpen","useState","error","statusCode","contentType","JSON","parse","undefined","timed","responseCompleted","requestStarted","diff","toFixed","statusMessage"],"sources":["../../../../src/components/ResponseExplorer/ResponseExplorer.tsx"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { FC } from 'react'\nimport React, { useState } from 'react'\nimport {\n Table,\n TableBody,\n TableRow,\n TableDataCell,\n Span,\n TableHead,\n TableHeaderCell,\n IconButton,\n} from '@looker/components'\nimport styled from 'styled-components'\nimport type { IRawResponse, LookerSDKError } from '@looker/sdk-rtl'\nimport { Warning } from '@styled-icons/material/Warning'\nimport { APIErrorDialog, APIErrorDisplay } from '@looker/extension-utils'\nimport { ShowResponse } from '../ShowResponse'\nimport { CollapserCard } from '../Collapser'\nimport { DarkSpan, RunItHeading } from '../common'\n\ntype HeaderTable = string[][]\nexport type ResponseContent = IRawResponse | undefined\n\nconst getHeaders = (response: ResponseContent): HeaderTable => {\n if (!response?.headers) return []\n const result: HeaderTable = []\n Object.entries(response.headers).forEach(([key, val]) =>\n result.push([key, val])\n )\n return result\n}\n\nconst getBodySize = (response: ResponseContent): string => {\n const size =\n !response || !response.body\n ? 0\n : response?.body instanceof Blob\n ? response?.body.size\n : response?.body.toString().length\n\n return `${size} bytes`\n}\n\nconst NoWrap = styled(Span)`\n display: inline-block;\n direction: rtl;\n white-space: nowrap;\n overflow: hidden;\n`\n\ninterface ShowHeadersProps {\n response: ResponseContent\n}\n\n/**\n * Display response headers in a table\n * @param response to display\n * @constructor\n */\nexport const ResponseHeaders: FC<ShowHeadersProps> = ({ response }) => {\n const rows = getHeaders(response)\n if (rows.length === 0) return <></>\n return (\n <CollapserCard\n key=\"headers\"\n heading={`Headers (${rows.length})`}\n id=\"headers\"\n defaultOpen={false}\n divider={false}\n >\n <>\n <Table>\n <TableHead>\n <TableRow>\n <TableHeaderCell p=\"xsmall\">Name</TableHeaderCell>\n <TableHeaderCell p=\"xsmall\">Value</TableHeaderCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {rows.map(([key, value]) => (\n <TableRow key={key}>\n <TableDataCell p=\"xsmall\">\n <NoWrap>\n <strong>{key}</strong>\n </NoWrap>\n </TableDataCell>\n <TableDataCell p=\"xsmall\">\n <Span>{value}</Span>\n </TableDataCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </>\n </CollapserCard>\n )\n}\n\ninterface ResponseExplorerProps {\n response: ResponseContent\n verb: string\n path: string\n}\n\n/**\n * Explore the raw response from an HTTP request\n * @param response IRawResponse values\n * @param verb HTTP method\n * @param path Path of request\n * @constructor\n */\nexport const ResponseExplorer: FC<ResponseExplorerProps> = ({\n response,\n verb,\n path,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const error: LookerSDKError =\n response &&\n response.statusCode >= 400 &&\n response.contentType === 'application/json'\n ? JSON.parse(response.body)\n : undefined\n\n const timed = (response: IRawResponse) => {\n if (!(response.responseCompleted || response.requestStarted)) return ''\n const diff = (response.responseCompleted - response.requestStarted) / 1000\n return `Seconds: ${diff.toFixed(3)}`\n }\n\n return (\n <>\n {!response && <DarkSpan>No response was received</DarkSpan>}\n {response && (\n <>\n <RunItHeading as=\"h4\">\n {error && (\n <>\n <APIErrorDialog\n error={error}\n isOpen={isOpen}\n setOpen={setIsOpen}\n />\n <IconButton\n size=\"small\"\n onClick={() => setIsOpen(true)}\n icon={<Warning />}\n aria-label=\"API error\"\n label=\"API Error\"\n />\n </>\n )}\n {`${verb || ''} ${path || ''} (${response.statusCode}: ${\n response.statusMessage\n }) ${timed(response)}`}\n </RunItHeading>\n <CollapserCard\n divider={false}\n heading={`Body (${getBodySize(response)})`}\n id=\"body\"\n >\n <ShowResponse response={response} />\n </CollapserCard>\n {error && (\n <CollapserCard divider={false} heading={'Error information'}>\n <APIErrorDisplay error={error} showDoc={true} />\n </CollapserCard>\n )}\n <ResponseHeaders response={response} />\n </>\n )}\n </>\n )\n}\n"],"mappings":"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"}
|
@@ -1,2 +1,17 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _ResponseExplorer = require("./ResponseExplorer");
|
7
|
+
Object.keys(_ResponseExplorer).forEach(function (key) {
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
9
|
+
if (key in exports && exports[key] === _ResponseExplorer[key]) return;
|
10
|
+
Object.defineProperty(exports, key, {
|
11
|
+
enumerable: true,
|
12
|
+
get: function get() {
|
13
|
+
return _ResponseExplorer[key];
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
2
17
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ResponseExplorer/index.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\nexport * from './ResponseExplorer'\n"],"mappings":";;;;;AAyBA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
@@ -1,17 +1,23 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.ShowResponse = void 0;
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
8
|
+
var _responseUtils = require("./responseUtils");
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10
|
+
var ShowResponse = _ref => {
|
4
11
|
var {
|
5
12
|
response
|
6
13
|
} = _ref;
|
7
14
|
var renderedResponse;
|
8
|
-
|
9
15
|
try {
|
10
|
-
renderedResponse = pickResponseHandler(response).component(response);
|
16
|
+
renderedResponse = (0, _responseUtils.pickResponseHandler)(response).component(response);
|
11
17
|
} catch (err) {
|
12
|
-
renderedResponse = fallbackResponseHandler().component(response);
|
18
|
+
renderedResponse = (0, _responseUtils.fallbackResponseHandler)().component(response);
|
13
19
|
}
|
14
|
-
|
15
|
-
return React.createElement(React.Fragment, null, renderedResponse);
|
20
|
+
return _react.default.createElement(_react.default.Fragment, null, renderedResponse);
|
16
21
|
};
|
22
|
+
exports.ShowResponse = ShowResponse;
|
17
23
|
//# sourceMappingURL=ShowResponse.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"file":"ShowResponse.js","names":["ShowResponse","response","renderedResponse","pickResponseHandler","component","err","fallbackResponseHandler"],"sources":["../../../../src/components/ShowResponse/ShowResponse.tsx"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { FC } from 'react'\nimport React from 'react'\nimport type { IRawResponse } from '@looker/sdk-rtl'\n\nimport { pickResponseHandler, fallbackResponseHandler } from './responseUtils'\n\ninterface ShowResponseProps {\n /** A basic HTTP response for \"raw\" HTTP requests */\n response: IRawResponse\n}\n\n/**\n * Given an HTTP response it picks a response handler based on the content type and renders the body\n */\nexport const ShowResponse: FC<ShowResponseProps> = ({ response }) => {\n // Bullet proof the rendered response. If for some reason we get a bad response or bad data in the\n // response, render something\n let renderedResponse\n try {\n renderedResponse = pickResponseHandler(response).component(response)\n } catch (err) {\n renderedResponse = fallbackResponseHandler().component(response)\n }\n\n return <>{renderedResponse}</>\n}\n"],"mappings":";;;;;;AA2BA;AAGA;AAA8E;AAUvE,IAAMA,YAAmC,GAAG,QAAkB;EAAA,IAAjB;IAAEC;EAAS,CAAC;EAG9D,IAAIC,gBAAgB;EACpB,IAAI;IACFA,gBAAgB,GAAG,IAAAC,kCAAmB,EAACF,QAAQ,CAAC,CAACG,SAAS,CAACH,QAAQ,CAAC;EACtE,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZH,gBAAgB,GAAG,IAAAI,sCAAuB,GAAE,CAACF,SAAS,CAACH,QAAQ,CAAC;EAClE;EAEA,OAAO,4DAAGC,gBAAgB,CAAI;AAChC,CAAC;AAAA"}
|
@@ -1,2 +1,13 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "ShowResponse", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function get() {
|
9
|
+
return _ShowResponse.ShowResponse;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
var _ShowResponse = require("./ShowResponse");
|
2
13
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ShowResponse/index.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\nexport { ShowResponse } from './ShowResponse'\n"],"mappings":";;;;;;;;;;;AAyBA"}
|
@@ -1,71 +1,68 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.responseHandlers = exports.pickResponseHandler = exports.isColumnar = exports.fallbackResponseHandler = exports.canTabulate = exports.allSimple = void 0;
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
8
|
+
var _sdkRtl = require("@looker/sdk-rtl");
|
9
|
+
var _components = require("@looker/components");
|
10
|
+
var _codeEditor = require("@looker/code-editor");
|
11
|
+
var _DataGrid = require("../DataGrid");
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
14
|
+
var allSimple = data => {
|
9
15
|
if (!Array.isArray(data)) return false;
|
10
|
-
|
11
16
|
for (var i = 0; i < data.length; i++) {
|
12
17
|
var col = data[i];
|
13
|
-
|
14
18
|
if (col) {
|
15
19
|
if (/\[object Object]/gi.test(col)) return false;
|
16
20
|
if (Array.isArray(col)) return false;
|
17
21
|
if (col instanceof Object && !(col instanceof Date)) return false;
|
18
22
|
}
|
19
23
|
}
|
20
|
-
|
21
24
|
return true;
|
22
25
|
};
|
23
|
-
|
26
|
+
exports.allSimple = allSimple;
|
24
27
|
var copyRaw = function copyRaw(code) {
|
25
28
|
var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'unknown';
|
26
|
-
return
|
29
|
+
return _react.default.createElement(_codeEditor.CodeCopy, {
|
27
30
|
language: language,
|
28
31
|
code: code,
|
29
32
|
lineNumbers: false,
|
30
33
|
transparent: true
|
31
34
|
});
|
32
35
|
};
|
33
|
-
|
34
|
-
export var isColumnar = data => {
|
36
|
+
var isColumnar = data => {
|
35
37
|
if (data.length === 0) return false;
|
36
38
|
if (data.length === 1 && data[0].length === 0) return false;
|
37
39
|
var complex = Object.values(data).find(row => !allSimple(row));
|
38
40
|
return !complex;
|
39
41
|
};
|
42
|
+
exports.isColumnar = isColumnar;
|
40
43
|
var ItemType;
|
41
|
-
|
42
44
|
(function (ItemType) {
|
43
45
|
ItemType["Array"] = "a";
|
44
46
|
ItemType["Object"] = "o";
|
45
47
|
ItemType["Simple"] = "s";
|
46
48
|
ItemType["Undefined"] = "u";
|
47
49
|
})(ItemType || (ItemType = {}));
|
48
|
-
|
49
50
|
var itemType = value => {
|
50
51
|
if (!value) return ItemType.Undefined;
|
51
52
|
if (Array.isArray(value)) return ItemType.Array;
|
52
53
|
if (value instanceof Object) return ItemType.Object;
|
53
54
|
return ItemType.Simple;
|
54
55
|
};
|
55
|
-
|
56
56
|
var getTypes = json => {
|
57
57
|
var types = [new Set(), new Set()];
|
58
|
-
|
59
58
|
if (!json) {
|
60
59
|
types[0].add(ItemType.Undefined);
|
61
60
|
return types;
|
62
61
|
}
|
63
|
-
|
64
|
-
var _loop = function _loop(key) {
|
62
|
+
var _loop = function _loop() {
|
65
63
|
var value = json[key];
|
66
64
|
var type = itemType(value);
|
67
65
|
types[0].add(type);
|
68
|
-
|
69
66
|
switch (type) {
|
70
67
|
case ItemType.Array:
|
71
68
|
case ItemType.Object:
|
@@ -76,102 +73,86 @@ var getTypes = json => {
|
|
76
73
|
break;
|
77
74
|
}
|
78
75
|
};
|
79
|
-
|
80
76
|
for (var key of Object.keys(json)) {
|
81
|
-
_loop(
|
77
|
+
_loop();
|
82
78
|
}
|
83
|
-
|
84
79
|
return types;
|
85
80
|
};
|
86
|
-
|
87
|
-
export var canTabulate = json => {
|
81
|
+
var canTabulate = json => {
|
88
82
|
var types = getTypes(json);
|
89
83
|
return types[0].size === 1 && (types[0].has(ItemType.Array) || types[0].has(ItemType.Object)) && types[1].size <= 1;
|
90
84
|
};
|
91
|
-
|
85
|
+
exports.canTabulate = canTabulate;
|
92
86
|
var ShowJSON = response => {
|
93
87
|
var content = response.body.toString();
|
94
88
|
var parsed = JSON.parse(response.body);
|
95
|
-
var data = canTabulate(parsed) ? json2Csv(content) : undefined;
|
89
|
+
var data = canTabulate(parsed) ? (0, _DataGrid.json2Csv)(content) : undefined;
|
96
90
|
var showGrid = data && isColumnar(data.data);
|
97
91
|
var json = JSON.stringify(parsed, null, 2);
|
98
92
|
var raw = copyRaw(json, 'json');
|
99
|
-
if (showGrid) return
|
93
|
+
if (showGrid) return _react.default.createElement(_DataGrid.DataGrid, {
|
100
94
|
data: data.data,
|
101
95
|
raw: raw
|
102
96
|
});
|
103
97
|
return raw;
|
104
98
|
};
|
105
|
-
|
106
|
-
var ShowText = response => React.createElement(React.Fragment, null, response.statusMessage !== 'OK' && response.statusMessage, copyRaw(response.body.toString()));
|
107
|
-
|
99
|
+
var ShowText = response => _react.default.createElement(_react.default.Fragment, null, response.statusMessage !== 'OK' && response.statusMessage, copyRaw(response.body.toString()));
|
108
100
|
var ShowCSV = response => {
|
109
101
|
var raw = copyRaw(response.body.toString());
|
110
|
-
var data = parseCsv(response.body.toString());
|
111
|
-
return
|
102
|
+
var data = (0, _DataGrid.parseCsv)(response.body.toString());
|
103
|
+
return _react.default.createElement(_DataGrid.DataGrid, {
|
112
104
|
data: data.data,
|
113
105
|
raw: raw
|
114
106
|
});
|
115
107
|
};
|
116
|
-
|
117
108
|
var ShowMD = response => {
|
118
|
-
var tabs = useTabs();
|
109
|
+
var tabs = (0, _components.useTabs)();
|
119
110
|
var raw = copyRaw(response.body.toString(), 'markup');
|
120
111
|
var data = response.body.toString();
|
121
|
-
return
|
112
|
+
return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_components.TabList, tabs, _react.default.createElement(_components.Tab, {
|
122
113
|
key: "md"
|
123
|
-
}, "Markdown"),
|
114
|
+
}, "Markdown"), _react.default.createElement(_components.Tab, {
|
124
115
|
key: "raw"
|
125
|
-
}, "Raw")),
|
116
|
+
}, "Raw")), _react.default.createElement(_components.TabPanels, _extends({}, tabs, {
|
126
117
|
pt: "0"
|
127
|
-
}),
|
118
|
+
}), _react.default.createElement(_components.TabPanel, {
|
128
119
|
key: "doc"
|
129
|
-
},
|
120
|
+
}, _react.default.createElement(_codeEditor.Markdown, {
|
130
121
|
source: data
|
131
|
-
})),
|
122
|
+
})), _react.default.createElement(_components.TabPanel, {
|
132
123
|
key: "text"
|
133
124
|
}, raw)));
|
134
125
|
};
|
135
|
-
|
136
126
|
var ShowImage = response => {
|
137
127
|
var content;
|
138
|
-
|
139
128
|
if (response.body instanceof Blob) {
|
140
129
|
content = URL.createObjectURL(response.body).toString();
|
141
130
|
} else {
|
142
131
|
content = "data:".concat(response.contentType, ";base64,").concat(btoa(response.body));
|
143
132
|
}
|
144
|
-
|
145
|
-
return React.createElement("img", {
|
133
|
+
return _react.default.createElement("img", {
|
146
134
|
src: content,
|
147
135
|
alt: "".concat(response.url, " returned ").concat(response.contentType)
|
148
136
|
});
|
149
137
|
};
|
150
|
-
|
151
138
|
var ShowHTML = response => copyRaw(response.body.toString(), 'html');
|
152
|
-
|
153
139
|
var ShowSQL = response => copyRaw(response.body.toString(), 'sql');
|
154
|
-
|
155
140
|
var ShowUnknown = response => {
|
156
141
|
var body = response.body || '';
|
157
142
|
var message = "Received ".concat(body instanceof Blob ? body.size : body.toString().length, " bytes of ").concat(response.contentType, " data.");
|
158
|
-
return
|
143
|
+
return _react.default.createElement(_components.Paragraph, null, message);
|
159
144
|
};
|
160
|
-
|
161
145
|
var ShowPDF = response => {
|
162
146
|
return ShowUnknown(response);
|
163
147
|
};
|
164
|
-
|
165
148
|
var ShowRaw = response => {
|
166
149
|
var _response$body;
|
167
|
-
|
168
|
-
return React.createElement(React.Fragment, null, ShowUnknown(response), React.createElement(MessageBar, {
|
150
|
+
return _react.default.createElement(_react.default.Fragment, null, ShowUnknown(response), _react.default.createElement(_components.MessageBar, {
|
169
151
|
intent: "warn",
|
170
152
|
noActions: true
|
171
153
|
}, "The response body could not be parsed. Displaying raw data."), copyRaw((response === null || response === void 0 ? void 0 : (_response$body = response.body) === null || _response$body === void 0 ? void 0 : _response$body.toString()) || ''));
|
172
154
|
};
|
173
|
-
|
174
|
-
export var responseHandlers = [{
|
155
|
+
var responseHandlers = [{
|
175
156
|
label: 'json',
|
176
157
|
isRecognized: contentType => /application\/json/g.test(contentType),
|
177
158
|
component: response => ShowJSON(response)
|
@@ -201,28 +182,29 @@ export var responseHandlers = [{
|
|
201
182
|
component: response => ShowSQL(response)
|
202
183
|
}, {
|
203
184
|
label: 'text',
|
204
|
-
isRecognized: contentType => responseMode(contentType) === ResponseMode.string || contentType === 'text',
|
185
|
+
isRecognized: contentType => (0, _sdkRtl.responseMode)(contentType) === _sdkRtl.ResponseMode.string || contentType === 'text',
|
205
186
|
component: response => ShowText(response)
|
206
187
|
}, {
|
207
188
|
label: 'unknown',
|
208
189
|
isRecognized: contentType => !!contentType,
|
209
190
|
component: response => ShowUnknown(response)
|
210
191
|
}];
|
211
|
-
|
192
|
+
exports.responseHandlers = responseHandlers;
|
193
|
+
var pickResponseHandler = response => {
|
212
194
|
var result = responseHandlers[responseHandlers.length - 1];
|
213
|
-
|
214
195
|
for (var handler of responseHandlers) {
|
215
196
|
if (handler.isRecognized(response.contentType)) {
|
216
197
|
result = handler;
|
217
198
|
break;
|
218
199
|
}
|
219
200
|
}
|
220
|
-
|
221
201
|
return result;
|
222
202
|
};
|
223
|
-
|
203
|
+
exports.pickResponseHandler = pickResponseHandler;
|
204
|
+
var fallbackResponseHandler = () => ({
|
224
205
|
label: 'unknown',
|
225
206
|
isRecognized: contentType => !!contentType,
|
226
207
|
component: response => ShowRaw(response)
|
227
208
|
});
|
209
|
+
exports.fallbackResponseHandler = fallbackResponseHandler;
|
228
210
|
//# sourceMappingURL=responseUtils.js.map
|