docusaurus-plugin-typedoc-api
Version:
Docusaurus plugin that provides source code API documentation powered by TypeDoc.
50 lines (46 loc) • 1.41 kB
JavaScript
;
const path = require('node:path');
const TypeDoc = require('typedoc');
const _interopDefault = e => e && e.__esModule ? e : {
default: e
};
const path__default = /*#__PURE__*/_interopDefault(path);
function joinUrl(...paths) {
return path__default.default.join(...paths).replace(/\\/g, '/');
}
function getKindSlug(decl) {
switch (decl.kind) {
case TypeDoc.ReflectionKind.Module:
return 'package';
case TypeDoc.ReflectionKind.Namespace:
return 'namespace';
case TypeDoc.ReflectionKind.Enum:
return 'enum';
case TypeDoc.ReflectionKind.Function:
return 'function';
case TypeDoc.ReflectionKind.Class:
return 'class';
case TypeDoc.ReflectionKind.Interface:
return 'interface';
default:
return '';
}
}
function getPackageSlug(pkgConfig, importPath, isSinglePackage) {
// Monorepo with 1 package has special handling
if (isSinglePackage && pkgConfig.packageSlug !== '.') {
return '.';
}
// packages/foo -> foo
const slug = pkgConfig.packageSlug ?? path__default.default.basename(pkgConfig.packagePath);
// bar/baz -> bar-baz
const importName = importPath.replace(/\\/g, '-');
if (importName === 'index') {
return slug;
}
return `${slug}-${importName}`;
}
exports.getKindSlug = getKindSlug;
exports.getPackageSlug = getPackageSlug;
exports.joinUrl = joinUrl;
//# sourceMappingURL=url.js.map