diff --git a/src/core/components/parameter-extension.jsx b/src/core/components/parameter-extension.jsx new file mode 100644 index 00000000..cf1c116f --- /dev/null +++ b/src/core/components/parameter-extension.jsx @@ -0,0 +1,12 @@ +import React from "react" +import PropTypes from "prop-types" + +export const ParameterExt = ({ xKey, xVal }) => { + return
{ xKey }: { String(xVal) }
+} +ParameterExt.propTypes = { + xKey: PropTypes.string, + xVal: PropTypes.any +} + +export default ParameterExt diff --git a/src/core/components/parameter-row.jsx b/src/core/components/parameter-row.jsx index 71a2765a..a436c527 100644 --- a/src/core/components/parameter-row.jsx +++ b/src/core/components/parameter-row.jsx @@ -2,6 +2,7 @@ import React, { Component } from "react" import { Map } from "immutable" import PropTypes from "prop-types" import win from "core/window" +import { getExtensions } from "core/utils" export default class ParameterRow extends Component { static propTypes = { @@ -91,6 +92,7 @@ export default class ParameterRow extends Component { const ModelExample = getComponent("modelExample") const Markdown = getComponent("Markdown") + const ParameterExt = getComponent("ParameterExt") let schema = param.get("schema") let type = isOAS3 && isOAS3() ? param.getIn(["schema", "type"]) : param.get("type") @@ -100,6 +102,7 @@ export default class ParameterRow extends Component { let itemType = param.getIn(isOAS3 && isOAS3() ? ["schema", "items", "type"] : ["items", "type"]) let parameter = specSelectors.getParameter(pathMethod, param.get("name"), param.get("in")) let value = parameter ? parameter.get("value") : "" + let extensions = getExtensions(param) return ( @@ -113,6 +116,7 @@ export default class ParameterRow extends Component { { isOAS3 && isOAS3() && param.get("deprecated") ? "deprecated": null }
({ param.get("in") })
+ { !extensions.length ? null : extensions.map((v, key) => )} diff --git a/src/core/utils.js b/src/core/utils.js index 6ac9eb29..5f60d8b6 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -678,3 +678,5 @@ export function getAcceptControllingResponse(responses) { export const createDeepLinkPath = (str) => typeof str == "string" || str instanceof String ? str.trim().replace(/\s/g, "_") : "" export const escapeDeepLinkPath = (str) => cssEscape( createDeepLinkPath(str) ) + +export const getExtensions = (defObj) => defObj.filter((v, k) => /^x-/.test(k)) diff --git a/src/style/_table.scss b/src/style/_table.scss index 02dd92ba..3cbcc81f 100644 --- a/src/style/_table.scss +++ b/src/style/_table.scss @@ -131,7 +131,8 @@ table } } -.parameter__in +.parameter__in, +.parameter__extension { font-size: 12px; font-style: italic;