@@ -22,6 +22,10 @@ interface SetupConfig {
22
22
treeSitterPackage : string
23
23
/** Test cases running in CI */
24
24
testRunner : ( parse : ( c : string ) => SgRoot ) => void
25
+ /** Path of the `src` directory inside the `tree-sitter-*` package. Useful for
26
+ * `tree-sitter-php`, `tree-sitter-typescript` and `tree-sitter-yaml`.
27
+ * @default "src" */
28
+ src ?: string
25
29
}
26
30
27
31
function test ( setupConfig : SetupConfig ) {
@@ -44,13 +48,15 @@ export function setup(setupConfig: SetupConfig) {
44
48
function copySrcIfNeeded ( config : SetupConfig ) {
45
49
const { dirname, treeSitterPackage } = config
46
50
const existing = path . join ( dirname , 'src' )
47
- const src = path . join ( dirname , 'node_modules' , treeSitterPackage , 'src' )
51
+ const src = config . src || 'src'
52
+ const source = path . join ( dirname , 'node_modules' , treeSitterPackage , src )
48
53
if ( fs . existsSync ( existing ) ) {
49
54
log ( 'src exists, skipping copy' )
50
55
return
51
56
}
57
+
52
58
log ( 'copying tree-sitter src' )
53
- fs . cpSync ( src , 'src' , { recursive : true } )
59
+ fs . cpSync ( source , 'src' , { recursive : true } )
54
60
}
55
61
56
62
interface NodeBasicInfo {
0 commit comments