Well if you cache the responses I believe it won't be a big deal. I would 
suggest caching to disk, and invalidating them in a week or so (cause the 
back end logic might change). And also a NO_CACHE environment variable 
would be nice.

Another solution would be a proxy server which caches the responses to disk 
and also keeps them in memory. But I believe that most people wouldn't 
wan't to use a rule which requires a server to lint.

And lastly I'm thinking about HTTP caching, but I have no idea if it works 
natively or what npm module would support it.

All of these methods I believe would yield a performant linting timing.

On Wednesday, April 4, 2018 at 5:29:12 AM UTC+3, davi...@vt.edu wrote:
>
> Hi all,
>
> I'm a PhD student at Virginia Tech. I'm working on a research project to 
> detect vulnerable regexes.
>
> I've developed a tool that queries an ensemble of catastrophic 
> backtracking detectors (repo here 
> <https://github.com/davisjam/vuln-regex-detector/>).
>
> Because the tool is expensive to run, I set up a server that maintains a 
> database of previous queries and results.
> I created an npm module that asynchronously queries this server over HTTP 
> (module here <https://www.npmjs.com/package/vuln-regex-detector>).
>
> I would like to create an eslint plugin to make it easy for developers to 
> adopt it.
> The plugin I envision is similar to this one 
> <https://www.npmjs.com/package/eslint-plugin-security#detect-unsafe-regex> 
> that uses safe-regex <https://github.com/substack/safe-regex> (which, 
> alas, has high rates of false positives and false negatives, and is 
> incorrectly 
> implemented <https://github.com/substack/safe-regex/pull/9> to boot).
> However, it looks from the eslint docs that eslint rules must be 
> synchronous <https://eslint.org/docs/developer-guide/architecture#rules>.
> I couldn't find this discussed explicitly in the eslint issues or this 
> mailing list; please forgive me if I missed a discussion about this 
> somewhere.
>
> I am interested in thoughts on:
>
>    - Whether there's any point in making *synchronous* HTTP requests? (I 
>    suspect this would lead to terrible linter performance)
>    - Whether there's a way to make an asynchronous eslint rule?
>    - If eslint is not a good way to do this, can anyone recommend an 
>    alternative approach?
>    
> Thank you,
>
> Jamie
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ESLint" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to eslint+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to