UNPKG

@node-rs/deno-lint

Version:

Deno lint binding for Node.js

150 lines (110 loc) 3.6 kB
# `@node-rs/deno-lint` ![](https://github.com/napi-rs/node-rs/workflows/CI/badge.svg) ![](https://img.shields.io/npm/dm/@node-rs/deno-lint.svg?sanitize=true) > deno_lint Node.js binding ## Support matrix | | node12 | node14 | node16 | node18 | | ---------------- | ------ | ------ | ------ | ------ | | Windows x64 | ✓ | ✓ | ✓ | ✓ | | Windows x32 | ✓ | ✓ | ✓ | ✓ | | Windows arm64 | ✓ | ✓ | ✓ | ✓ | | macOS x64 | ✓ | ✓ | ✓ | ✓ | | macOS arm64 | ✓ | ✓ | ✓ | ✓ | | Linux x64 gnu | ✓ | ✓ | ✓ | ✓ | | Linux x64 musl | ✓ | ✓ | ✓ | ✓ | | Linux arm gnu | ✓ | ✓ | ✓ | ✓ | | Linux arm64 gnu | ✓ | ✓ | ✓ | ✓ | | Linux arm64 musl | ✓ | ✓ | ✓ | ✓ | | Android arm64 | ✓ | ✓ | ✓ | ✓ | | Android armv7 | ✓ | ✓ | ✓ | ✓ | | FreeBSD x64 | ✓ | ✓ | ✓ | ✓ | ## Performance ### Hardware info ``` Model Name: MacBook Pro Model Identifier: MacBookPro15,1 Processor Name: 6-Core Intel Core i9 Processor Speed: 2.9 GHz Number of Processors: 1 Total Number of Cores: 6 L2 Cache (per Core): 256 KB L3 Cache: 12 MB Hyper-Threading Technology: Enabled Memory: 32 GB ``` ### Benchmark ``` @node-rs/deno-lint x 885 ops/sec ±1.26% (92 runs sampled) eslint x 118 ops/sec ±4.97% (78 runs sampled) Lint benchmark bench suite: Fastest is @node-rs/deno-lint ``` ## Usage Pass a boolean `enableAllRules` to use the recommended (`true`, default) or all rules (`false`): ```ts import { lint } from '@node-rs/deno-lint' lint(filepath, source, enableAllRules) ``` Pass the config file content (as string), to be able to specify what rules should be included or excluded: ```ts import { readFile } from 'fs/promises' import { lint } from '@node-rs/deno-lint' const config = await readFile('.denolint.json', 'utf8') lint(filepath, source, config) ``` ## webpack-loader ```js // webpack.config.js module.exports = { module: { rules: [ { enforce: 'pre', test: /\.(t|j)s?$/, loader: '@node-rs/deno-lint/webpack-loader', exclude: [/node_modules/], }, ], }, } ``` ### Options You can pass denolint options using standard webpack loader options. #### `enableAllRules` - Type: `Boolean | String` - Default: `false` Whether to enable all rules. If false, `denolint` will enable all recommend rules. Instead of the boolean, a string with the content of `.denolint.json` can be passed as a value. #### `failOnError` - Type: `Boolean` - Default: `false` Will cause the module build to fail if there are any errors, if option is set to `true`. #### `quiet` - Type: `Boolean` - Default: `false` Emit nothing even if there were errors happened. ## `denolint` cli ### usage `npx denolint` ### `--config`, `-c` Config path relative to the lint path. Config file must be a JSON file: Example: ```json { "rules": { "tags": ["recommended"], "exclude": [ "no-explicit-any", "ban-unknown-rule-code", "no-window-prefix", "no-empty-interface", "ban-types", "ban-untagged-todo", "no-unused-vars", "ban-ts-comment", "no-case-declarations", "no-this-alias" ] } } ``` Checkout [deno_lint rules](https://github.com/denoland/deno_lint/tree/main/docs/rules) for all rules.