Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@node-rs/deno-lint

napi-rs2.4kMIT1.20.4TypeScript support: included

Deno lint binding for Node.js

Deno, Lint, ESLint, node-rs, napi, N-API, Rust, napi-rs

readme

@node-rs/deno-lint

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):

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:

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

// 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:

{
  "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 for all rules.