-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
70 lines (67 loc) · 1.57 KB
/
Copy pathtypes.ts
File metadata and controls
70 lines (67 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import type { ParsedFile } from "../parsed-types";
/**
* Input for a {@link LanguageAdapter}. Paths are absolute / project-relative as noted.
*/
export interface ParseContext {
/**
* Absolute path on disk (for parsers that need a real `filename`).
*/
absPath: string;
/**
* Path relative to project root (stored in DB rows).
*/
relPath: string;
source: string;
}
/**
* Partial parse result merged into {@link ParsedFile} after `fileRow` is built.
* Set `parseError` when extraction fails but the file should still be indexed.
*/
export type ParsedFilePayload = Pick<
ParsedFile,
| "category"
| "symbols"
| "imports"
| "exports"
| "components"
| "markers"
| "suppressions"
| "typeMembers"
| "typeHeritage"
| "calls"
| "importSpecifiers"
| "scopes"
| "references"
| "fileMetrics"
| "functionParams"
| "runtimeMarkers"
| "testSuites"
| "dynamicImports"
| "hasSideEffects"
| "jsxElements"
| "jsxAttributes"
| "asyncCalls"
| "tryCatchRows"
| "decorators"
| "jsdocTags"
| "cssVariables"
| "cssClasses"
| "cssKeyframes"
| "cssImportSources"
| "parseError"
>;
/**
* Pluggable extractor for a set of file extensions.
*
* @remarks
* Built-in adapters live in {@link ./builtin.ts}. Future optional packages can register
* additional adapters (or replace built-ins) once a public registration API exists.
*/
export interface LanguageAdapter {
readonly id: string;
/**
* Extensions with leading dot, e.g. `.ts`, `.tsx`.
*/
readonly extensions: readonly string[];
parse(ctx: ParseContext): ParsedFilePayload;
}