Skip to content

Latest commit

 

History

History

deno-lint

@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.