@scalar/api-reference
Version:
Generate beautiful API references from OpenAPI documents
62 lines (61 loc) • 2.52 kB
JavaScript
import { defineComponent, computed, createElementBlock, createCommentVNode, openBlock, createElementVNode, createBlock, unref, Fragment, createTextVNode, toDisplayString } from "vue";
import { ScalarWrappingText } from "@scalar/components";
import { isArraySchema } from "@scalar/workspace-store/schemas/v3.1/strict/type-guards";
import { isTypeObject } from "./helpers/is-type-object.js";
const _hoisted_1 = {
key: 0,
class: "schema-type"
};
const _hoisted_2 = ["title"];
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "SchemaHeading",
props: {
value: {},
name: {}
},
setup(__props) {
const failsafeType = computed(() => {
if ("type" in __props.value) {
return __props.value.type;
}
if (__props.value.enum) {
return "enum";
}
if (isArraySchema(__props.value) && __props.value.items) {
return "array";
}
if (isTypeObject(__props.value) && (__props.value.properties || __props.value.additionalProperties)) {
return "object";
}
return "unknown";
});
return (_ctx, _cache) => {
return typeof __props.value === "object" ? (openBlock(), createElementBlock("span", _hoisted_1, [
createElementVNode("span", {
class: "schema-type-icon",
title: "type" in __props.value && typeof __props.value.type === "string" ? __props.value.type : "type" in __props.value && Array.isArray(__props.value.type) ? __props.value.type.join(" | ") : "unknown type"
}, [
unref(isTypeObject)(__props.value) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createTextVNode(" {} ")
], 64)) : createCommentVNode("", true),
unref(isArraySchema)(__props.value) ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
createTextVNode(" [] ")
], 64)) : createCommentVNode("", true),
__props.value.enum ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
createTextVNode(" enum ")
], 64)) : createCommentVNode("", true)
], 8, _hoisted_2),
__props.name ? (openBlock(), createBlock(unref(ScalarWrappingText), {
key: 0,
text: __props.name,
preset: "property"
}, null, 8, ["text"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
createTextVNode(toDisplayString(failsafeType.value), 1)
], 64))
])) : createCommentVNode("", true);
};
}
});
export {
_sfc_main as default
};