UNPKG

@jsdocs-io/extractor

Version:

The API extractor for npm packages powering jsdocs.io

22 lines (21 loc) 889 B
import { docs } from "./docs.js"; import { formatSignature } from "./format-signature.js"; import { id } from "./id.js"; import { sourceFilePath } from "./source-file-path.js"; export async function extractNamespace(containerName, exportName, declaration, declarations) { return { kind: "namespace", id: id(containerName, "+namespace", exportName), name: exportName, docs: docs(declaration), file: sourceFilePath(declaration), line: declaration.getStartLineNumber(), signature: await namespaceSignature(exportName), declarations, }; } async function namespaceSignature(exportName) { const containerKeyword = exportName.startsWith('"') || exportName.startsWith("'") ? "module" : "namespace"; const signature = `${containerKeyword} ${exportName} {}`; return await formatSignature("namespace", signature); }