@irwinproject/storybook-addon-tsdoc
Version:
Generate mdx documentation from your typescript!
28 lines (27 loc) • 1.51 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.traverse = traverse;
const ts_morph_1 = require("ts-morph");
const TS_1 = __importDefault(require("./TS"));
const node_tools_1 = require("./node-tools");
function* traverse(...nodes) {
var _a, _b;
for (const node of nodes) {
if (ts_morph_1.Node.isSourceFile(node))
yield* traverse(...((_b = (_a = node.getChildSyntaxList()) === null || _a === void 0 ? void 0 : _a.getChildren()) !== null && _b !== void 0 ? _b : []));
else if ((ts_morph_1.Node.isTypeAliasDeclaration(node) || ts_morph_1.Node.isClassDeclaration(node) || ts_morph_1.Node.isFunctionDeclaration(node) || ts_morph_1.Node.isInterfaceDeclaration(node))) {
if (!(0, node_tools_1.isPrivate)(node))
yield node;
}
else if (ts_morph_1.Node.isVariableStatement(node)) {
if (!(0, node_tools_1.isPrivate)(node))
yield* node.getDeclarations();
}
else if (node && !ts_morph_1.Node.isExportDeclaration(node) && !ts_morph_1.Node.isImportDeclaration(node) && !ts_morph_1.Node.isCommentStatement(node) && !ts_morph_1.Node.isExportAssignment(node) && !ts_morph_1.Node.isExpressionStatement(node)) {
TS_1.default.err("Lacking support in traverse", node.getKindName(), node.getText());
}
}
}