@@ -22,6 +22,10 @@ interface SetupConfig {
2222 treeSitterPackage : string
2323 /** Test cases running in CI */
2424 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
2529}
2630
2731function test ( setupConfig : SetupConfig ) {
@@ -44,13 +48,15 @@ export function setup(setupConfig: SetupConfig) {
4448function copySrcIfNeeded ( config : SetupConfig ) {
4549 const { dirname, treeSitterPackage } = config
4650 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 )
4853 if ( fs . existsSync ( existing ) ) {
4954 log ( 'src exists, skipping copy' )
5055 return
5156 }
57+
5258 log ( 'copying tree-sitter src' )
53- fs . cpSync ( src , 'src' , { recursive : true } )
59+ fs . cpSync ( source , 'src' , { recursive : true } )
5460}
5561
5662interface NodeBasicInfo {
0 commit comments