napi-rs/node-rs

Use denolint as a binary directly without cli.js

prantlf opened this issue · 0 comments

Similarly to esbuild, why not building denolint as a Rust executable and call it directly on the command line? Less complexity, better performance.

The command line executable is usually used alone. If linting is integrated to webpack, rollup or other bundler, the library with the lint export will be used programmatically instead of the executable. For example, the deno_lint package could be split to denolint producing just the executable and libdenolint producing just the library with the Node.js bindings:

├── crates
│   ├── alloc
│   │   ├── Cargo.toml
│   │   └── src
│   │       └── lib.rs
│   └── shared                  # config and diagnostics moved here
│       ├── Cargo.toml
│       └── src
│           ├── config.rs
│           ├── diagnostics.rs
│           └── lib.rs
└── packages
    ├── denolint                # depends on alloc and shared
    │   ├── Cargo.toml
    │   ├── package.json
    │   └── src
    │       └── main.rs
    └── libdenolint             # depends on alloc and shared
        ├── Cargo.toml
        ├── build.rs
        ├── index.d.ts
        ├── index.js
        ├── package.json
        └── src
            └── lib.rs

Would you be interested in such change?