22 * This file is copied from `eslint/lib/util/node-event-generator.js`
33 */
44import EventEmitter from "events"
5- import esquery , { Selector } from "esquery"
5+ import esquery , { ESQueryOptions , Selector } from "esquery"
66import union from "lodash/union"
77import intersection from "lodash/intersection"
88import memoize from "lodash/memoize"
@@ -187,6 +187,7 @@ const parseSelector = memoize<(rawSelector: string) => NodeSelector>(rawSelector
187187 */
188188export default class NodeEventGenerator {
189189 emitter : EventEmitter
190+ esqueryOptions : ESQueryOptions
190191
191192 private currentAncestry : Node [ ]
192193 private enterSelectorsByNodeType : Map < string , NodeSelector [ ] >
@@ -198,8 +199,9 @@ export default class NodeEventGenerator {
198199 * @param emitter - An event emitter which is the destination of events. This emitter must already
199200 * have registered listeners for all of the events that it needs to listen for.
200201 */
201- constructor ( emitter : EventEmitter ) {
202+ constructor ( emitter : EventEmitter , esqueryOptions : ESQueryOptions ) {
202203 this . emitter = emitter
204+ this . esqueryOptions = esqueryOptions
203205 this . currentAncestry = [ ]
204206 this . enterSelectorsByNodeType = new Map ( )
205207 this . exitSelectorsByNodeType = new Map ( )
@@ -260,7 +262,7 @@ export default class NodeEventGenerator {
260262 * @param selector An AST selector descriptor
261263 */
262264 private applySelector ( node : Node , selector : NodeSelector ) : void {
263- if ( esquery . matches ( node , selector . parsedSelector , this . currentAncestry ) ) {
265+ if ( esquery . matches ( node , selector . parsedSelector , this . currentAncestry , this . esqueryOptions ) ) {
264266 this . emitter . emit ( selector . rawSelector , node )
265267 }
266268 }
0 commit comments