enhance-visitors weekly downloads statistics
By jfmengels (4 listings) · npm · ESLint plugins
Enhance your ESLint visitors with shared logic
enhance-visitors has 99,000 recorded weekly downloads on npm, a decrease of 47.9% over the past 30 days.
It ranks #453 of 2,251 tracked npm listings by weekly downloads.
Over 90 days, weekly downloads changed by -58.7%.
PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.
About enhance-visitors
enhance-visitors
Enhance your ESLint visitors with shared logic.
Install
Purpose
The purpose of this tool is to simplify the writing of rules with common logic. Extract the common logic into a separate file, and then write rules to build on top.
Traversal order
For the enhancer, the traversal is done just as usual, one node at a time. The traversal is not done all at once for the enhancer, and then all at once for the rule implementation. Rather, it's done one Node at a time, first for the enhancer (or rather, whatever you put first ) but rather the
API
.mergeVisitors([visitors])
Merges multiple visitor objects, so that all visitors for a node type are ran one after the other, in first-to-last order. For :exit visitors, they are traversed last-to-first.
visitors: object[]
An array of visitor objects, such as {CallExpression: fn1, Identifier: fn2, ...}.
Example
Given the following code: foo(), it should print
Usage example: Detection of a package import
Let's say you have a npm package called unicorn, and that you are writing an ESLint plugin for it, so that users use it as intended and avoid pitfalls. You will write multiple rules for it, and most or all of them will need to know which variable references unicorn.
In order not to have to write the same detection logic in every one of your rules, let's write an enhancer. In this example, we will write it in /rules/core/unicornSeeker.js. We'll keep it simple and only detect an import using the import keyword and not using require, and then only with the ImportDefaultSpecifier syntax.
This visitors object will be traversed along and before your rule implementation. What it does is traverse your AST, find ImportDeclaration nodes, and store relevant information in imports. Then in your rule file (/rules/no-unknown-methods.js, which detects methods that do not exist in the package), we'll have:
It looks pretty much like a normal rule implementation, but there are a few differences. In Noteworthy line 1 & 2, we are merging the unicornSeeker enhancer we wrote earlier with the rule implementation. This will make unicornSeeker traverse the AST and collect information that we can then use like we did in Noteworthy line 3.
.visitIf([predicates])
Returns a function fn that takes a visitor function visitor. When fn is called (usually an AST node), visitor will get called with the same argument only if all predicates, also called with the same argument, return a truthy value.
This essentially allows writing less and/or shorter reusable conditions inside your visitor.
predicates: function[]
An array of predicate functions, that take a AST node as argument and return a boolean.
Example
License
MIT © Jeroen Engels
Description from the npm listing.
- eslint
- plugin
- eslint-plugin
- eslintplugin
- enhance
- visitor
- visitors
- ast
Where enhance-visitors sits in the listing
Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Recent observations
Full history (121)Similar npm ESLint plugins plugins
Data source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/enhance-visitors. First seen Oct 16, 2026; last successful collection Oct 18, 2026. See the methodology.