-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreateParamsDetails.ts
More file actions
88 lines (78 loc) · 2.3 KB
/
createParamsDetails.ts
File metadata and controls
88 lines (78 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/* ============================================================================
* Copyright (c) Palo Alto Networks
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* ========================================================================== */
import { create } from "./utils";
import { ApiItem } from "../types";
// import { createDetails } from "./createDetails";
// import { createDetailsSummary } from "./createDetailsSummary";
interface Props {
parameters: ApiItem["parameters"];
type: "path" | "query" | "header" | "cookie";
}
export function createParamsDetails({ parameters, type }: Props) {
// if (parameters === undefined) {
// return undefined;
// }
// const params = parameters.filter((param) => param?.in === type);
// if (params.length === 0) {
// return undefined;
// }
// return createDetails({
// "data-collapsed": false,
// open: true,
// style: { marginBottom: "1rem" },
// children: [
// createDetailsSummary({
// children: [
// create("strong", {
// children: `${
// type.charAt(0).toUpperCase() + type.slice(1)
// } Parameters`,
// }),
// ],
// }),
// create("div", {
// children: [
// create("ul", {
// children: params.map((param) =>
// create("ParamsItem", {
// className: "paramsItem",
// param: param,
// })
// ),
// }),
// ],
// }),
// ],
// });
if (parameters === undefined) {
return undefined;
}
const params = parameters.filter((param) => param?.in === type);
if (params.length === 0) {
return undefined;
}
// uppercase first letter
const paramType = type.charAt(0).toUpperCase() + type.slice(1);
const normalizedParams = params.map((param) => {
const { description, name, required, schema } = param;
let type = null;
if (schema?.type) {
// uppercase first letter
type = schema.type.charAt(0).toUpperCase() + schema.type.slice(1);
}
return {
field: name,
required,
description,
type,
};
});
return create("ParamDetails", {
paramType,
params: normalizedParams,
});
}