@jsdocs-io/extractor
Version:
The API extractor for npm packages powering jsdocs.io
22 lines (21 loc) • 837 B
JavaScript
import { apparentType } from "./apparent-type.js";
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 extractExpression(containerName, exportName, declaration) {
return {
kind: "variable",
id: id(containerName, "+variable", exportName),
name: exportName,
docs: docs(declaration),
file: sourceFilePath(declaration),
line: declaration.getStartLineNumber(),
signature: await expressionSignature(exportName, declaration),
};
}
async function expressionSignature(name, declaration) {
const kind = "const";
const type = apparentType(declaration);
return await formatSignature("variable", `${kind} ${name}: ${type}`);
}