docusaurus-plugin-typedoc-api
Version:
Docusaurus plugin that provides source code API documentation powered by TypeDoc.
176 lines (172 loc) • 7.04 kB
JavaScript
'use strict';
const useMinimalLayout = require('../hooks/useMinimalLayout.js');
const Comment = require('./Comment.js');
const Flags = require('./Flags.js');
const Icon = require('./Icon.js');
const MemberSignatureBody = require('./MemberSignatureBody.js');
const MemberSignatures = require('./MemberSignatures.js');
const MemberSignatureTitle = require('./MemberSignatureTitle.js');
const Type = require('./Type.js');
const jsxRuntime = require('react/jsx-runtime');
/* eslint-disable @typescript-eslint/no-use-before-define */
// https://github.com/TypeStrong/typedoc-default-themes/blob/master/src/default/partials/Parameter.hbs
function ParameterChild({
param
}) {
if (!param) {
return null;
}
if (param.signatures && param.signatures.length > 0) {
return /*#__PURE__*/jsxRuntime.jsxs("li", {
className: "tsd-parameter",
children: [/*#__PURE__*/jsxRuntime.jsxs("h5", {
children: [param.flags?.isRest && /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "..."
}), param.name, /*#__PURE__*/jsxRuntime.jsxs("span", {
className: "tsd-signature-symbol",
children: [param.flags?.isOptional && '?', ": "]
}), "function"]
}), /*#__PURE__*/jsxRuntime.jsx(MemberSignatures.MemberSignatures, {
sigs: param.signatures
})]
});
}
if (param.type) {
return /*#__PURE__*/jsxRuntime.jsxs("li", {
className: "tsd-parameter",
children: [/*#__PURE__*/jsxRuntime.jsxs("h5", {
children: [/*#__PURE__*/jsxRuntime.jsx(Flags.Flags, {
flags: param.flags
}), param.flags?.isRest && /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "..."
}), param.name, /*#__PURE__*/jsxRuntime.jsxs("span", {
className: "tsd-signature-symbol",
children: [param.flags?.isOptional && '?', ": "]
}), /*#__PURE__*/jsxRuntime.jsx(Type.Type, {
type: param.type
})]
}), /*#__PURE__*/jsxRuntime.jsx(Comment.Comment, {
comment: param.comment
}), param.children?.map(child => /*#__PURE__*/jsxRuntime.jsx(Parameter, {
param: child
}, child.id)), /*#__PURE__*/jsxRuntime.jsx(Parameter, {
param: Type.extractDeclarationFromType(param.type)
})]
});
}
const getter = param.getSignature;
const setter = param.setSignature;
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
children: [getter && /*#__PURE__*/jsxRuntime.jsxs("li", {
className: "tsd-parameter",
children: [/*#__PURE__*/jsxRuntime.jsxs("h5", {
children: [/*#__PURE__*/jsxRuntime.jsx(Flags.Flags, {
flags: getter.flags
}), /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "get "
}), getter.name, /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "(): "
}), /*#__PURE__*/jsxRuntime.jsx(Type.Type, {
type: getter.type
})]
}), /*#__PURE__*/jsxRuntime.jsx(Comment.Comment, {
comment: getter.comment
})]
}), setter && /*#__PURE__*/jsxRuntime.jsxs("li", {
className: "tsd-parameter",
children: [/*#__PURE__*/jsxRuntime.jsxs("h5", {
children: [/*#__PURE__*/jsxRuntime.jsx(Flags.Flags, {
flags: setter.flags
}), /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "set "
}), setter.name, /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "("
}), setter.parameters?.map((p, i) => /*#__PURE__*/jsxRuntime.jsxs("span", {
children: [i > 0 && ', ', p.name, /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: ": "
}), p.type ? /*#__PURE__*/jsxRuntime.jsx(Type.Type, {
type: p.type
}) : 'any']
}, p.id)), /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "): "
}), /*#__PURE__*/jsxRuntime.jsx(Type.Type, {
type: setter.type
})]
}), /*#__PURE__*/jsxRuntime.jsx(Comment.Comment, {
comment: setter.comment
})]
})]
});
}
function Parameter({
param
}) {
const minimal = useMinimalLayout.useMinimalLayout();
if (!param || minimal) {
return null;
}
const hasSomeBody = param.signatures?.some(sig => MemberSignatureBody.hasSigBody(sig, minimal, true));
return /*#__PURE__*/jsxRuntime.jsxs("ul", {
className: "tsd-parameters",
children: [param.signatures && param.signatures.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("li", {
className: "tsd-parameter-signature",
children: [/*#__PURE__*/jsxRuntime.jsx("ul", {
className: "tsd-signatures",
children: param.signatures.map(sig => /*#__PURE__*/jsxRuntime.jsxs("li", {
className: "tsd-signature tsd-kind-icon",
children: [/*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
reflection: sig
}), /*#__PURE__*/jsxRuntime.jsx(MemberSignatureTitle.MemberSignatureTitle, {
hideName: true,
sig: sig
})]
}, sig.id))
}), hasSomeBody && /*#__PURE__*/jsxRuntime.jsx("ul", {
className: "tsd-descriptions",
children: param.signatures.map(sig => /*#__PURE__*/jsxRuntime.jsx("li", {
className: "tsd-description",
children: /*#__PURE__*/jsxRuntime.jsx(MemberSignatureBody.MemberSignatureBody, {
hideSources: true,
sig: sig
})
}, sig.id))
})]
}), param.indexSignature && /*#__PURE__*/jsxRuntime.jsxs("li", {
className: "tsd-parameter-index-signature",
children: [/*#__PURE__*/jsxRuntime.jsxs("h5", {
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "["
}), param.indexSignature.parameters?.map(p => /*#__PURE__*/jsxRuntime.jsxs("span", {
children: [p.flags?.isRest && /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "..."
}), p.name, " ", /*#__PURE__*/jsxRuntime.jsx(Type.Type, {
type: p.type
})]
}, p.id)), /*#__PURE__*/jsxRuntime.jsx("span", {
className: "tsd-signature-symbol",
children: "]: "
}), /*#__PURE__*/jsxRuntime.jsx(Type.Type, {
type: param.indexSignature.type
})]
}), /*#__PURE__*/jsxRuntime.jsx(Comment.Comment, {
comment: param.indexSignature.comment
}), /*#__PURE__*/jsxRuntime.jsx(Parameter, {
param: Type.extractDeclarationFromType(param.indexSignature)
})]
}), param.children?.map(child => /*#__PURE__*/jsxRuntime.jsx(ParameterChild, {
param: child
}, child.id))]
});
}
exports.Parameter = Parameter;
//# sourceMappingURL=Parameter.js.map