@ts-ast-parser/core
Version:
Reflects a simplified version of the TypeScript AST for generating documentation
27 lines • 1.19 kB
JavaScript
import { isDefaultImport, isNamedImport, isNamespaceImport, isSideEffectImport } from '../utils/import.js';
import { SideEffectImportNode } from '../nodes/side-effect-import-node.js';
import { NamespaceImportNode } from '../nodes/namespace-import-node.js';
import { DefaultImportNode } from '../nodes/default-import-node.js';
import { NamedImportNode } from '../nodes/named-import-node.js';
import ts from 'typescript';
export const importFactory = {
isNode: (node) => ts.isImportDeclaration(node),
create: (node, context) => {
const result = [];
if (isDefaultImport(node)) {
result.push(new DefaultImportNode(node, context));
}
if (isSideEffectImport(node)) {
result.push(new SideEffectImportNode(node, context));
}
if (isNamedImport(node)) {
const elements = (node.importClause?.namedBindings).elements ?? [];
elements.forEach(el => result.push(new NamedImportNode(node, el, context)));
}
if (isNamespaceImport(node)) {
result.push(new NamespaceImportNode(node, context));
}
return result;
},
};
//# sourceMappingURL=create-import.js.map