mirror of
https://github.com/giancarloerra/socraticode.git
synced 2026-07-03 14:05:21 +02:00
4c2bd0cc53
Svelte and Vue files were included in the graph as leaf nodes (targets of import edges) but their own imports were never extracted because no ast-grep grammar exists for these languages. This adds support by parsing .svelte/.vue files as HTML (built-in grammar), extracting <script> block content, and re-parsing it as TypeScript to extract imports using the existing JS/TS logic. Changes: - code-graph.ts: register .svelte and .vue in getAstGrepLang() - graph-imports.ts: add Svelte/Vue script extraction handler; refactor JS/TS import extraction into shared extractJsTsImportsFromNode() helper to avoid duplication - graph-resolution.ts: add "svelte" and "vue" cases to resolveImport(), with .svelte/.vue as first-priority extension resolution - graph-imports.test.ts: add tests for Svelte (static, dynamic, module, no-script, JS-only) and Vue import extraction Zero new dependencies — uses the built-in Lang.Html and Lang.TypeScript grammars from @ast-grep/napi. Known limitation: path aliases ($lib/, @/) are not resolved and will be treated as external packages (same as current JS/TS behavior).