@jsdocs-io/extractor
Version:
The API extractor for npm packages powering jsdocs.io
22 lines (21 loc) • 889 B
JavaScript
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);
}