• Vihang Mehta's avatar
    Speed up arcanist eslint invocation · 9c6196ce
    Vihang Mehta authored
    Summary:
    arcanist runs eslint once per file which causes us to incur the cost
    of bringing up the js runtime over and over again. Instead hook into willLint
    and didLint to run eslint once with all the paths passed in and then parse
    the combined output. This should significantly speed up `arc lint` on js files.
    
    Test Plan:
    Run `arc lint` on js files.
    
    Before:
    ```
    time arc lint src/ui/src/components/auth/auth-box.tsx src/ui/src/components/auth/auth-error.tsx src/ui/src/components/auth/google-button.tsx src/ui/src/components/auth/message.tsx src/ui/src/components/auth/pixienaut-balloon.tsx src/ui/src/components/auth/pixienaut-box.tsx src/ui/src/components/auth/pixienaut-octopus.tsx src/ui/src/components/auth/pixienaut-toilet.tsx src/ui/src/components/auth/signup-marcom.tsx src/ui/src/components/auth/username-password-button.tsx
     OKAY  No lint messages.
     arc lint src/ui/src/components/auth/auth-box.tsx           117.52s user 4.33s system 704% cpu 17.285 total
    ```
    
    After:
    ```
    time arc lint src/ui/src/components/auth/auth-box.tsx src/ui/src/components/auth/auth-error.tsx src/ui/src/components/auth/google-button.tsx src/ui/src/components/auth/message.tsx src/ui/src/components/auth/pixienaut-balloon.tsx src/ui/src/components/auth/pixienaut-box.tsx src/ui/src/components/auth/pixienaut-octopus.tsx src/ui/src/components/auth/pixienaut-toilet.tsx src/ui/src/components/auth/signup-marcom.tsx src/ui/src/components/auth/username-password-button.tsx
     OKAY  No lint messages.
     arc lint src/ui/src/components/auth/auth-box.tsx           16.31s user 0.93s system 158% cpu 10.884 total
     ```
    
    Reviewers: michelle, zasgar, nlanam
    
    Reviewed By: nlanam
    
    Differential Revision: https://phab.corp.pixielabs.ai/D9057
    
    GitOrigin-RevId: 6f9151c50f7cc1853dfe5fb55dd48923eb7620fc
    9c6196ce