Skip to content

Node.js Plugin

Rules for code that runs in Node.js and other server runtimes that include Node.js-like APIs.
This plugin is provided in a standalone @flint.fyi/plugin-node npm package.

Terminal window
npm install @flint.fyi/plugin-node

Flint’s Node.js plugin provides the following presets:

PresetRecommendedDescription
logical✅ AlwaysCommon rules for finding bugs and enforcing good logical practices in Markdown files.
stylistic✅ AlwaysCommon rules for consistent styling and best stylistic practices in Markdown files.
stylisticStrict☑️ When ReadyAdditional rules for consistent styling and best stylistic practices in Markdown files.

If you are just getting started with linting, Flint recommends using the logical and stylistic presets:

flint.config.ts
import {
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
} from "@flint.fyi/node";
import {
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
,
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
} from "flint";
export default
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
({
ConfigDefinition.use: ConfigUseDefinition[]

Specifies the files to be linted alongside the rules and settings to lint with.

@seehttps://flint.fyi/configuration#use flint.fyi/configuration#use

use
: [
{
ConfigUseDefinition.files: AnyLevelDeep<FilesValue>

A list of glob patterns describing which file(s) to lint.

@seehttps://flint.fyi/configuration#files flint.fyi/configuration#files

files
:
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
.
Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{ readonly description: "Reports getter and setter accessors for the same property that are not adjacent."; readonly id: "accessorPairGroups"; readonly presets: [...]; } & { ...; }, object, object, "notGrouped", AnyOptionalSchema>, ... 291 more ..., Rule<...>]>.files: Record<"all" | "javascript" | "typescript", FilesValue>

Selectors of files this plugin suggests applying its rules to.

@seehttps://flint.fyi/glossary#files flint.fyi/glossary#files

files
.
all: FilesValue
all
,
ConfigUseDefinition.rules: AnyLevelDeep<ConfigRuleDefinition>

Any number of rules and/or presets of rules to enable for those files.

@seehttps://flint.fyi/configuration#rules flint.fyi/configuration#rules

rules
: [
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
.
Plugin<RuleAbout, string | undefined, [Rule<{ readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior."; readonly id: "assertStrict"; readonly presets: [...]; } & { ...; }, object, object, "preferStrictAssert", AnyOptionalSchema>, ... 9 more ..., Rule<...>]>.presets: PluginPresets<RuleAbout, "logical" | "logicalStrict" | "stylistic" | "stylisticStrict">

Preset lists of rules to enable on files.

@seehttps://flint.fyi/glossary#preset flint.fyi/glossary#preset

presets
.
logical: Rule<RuleAbout, object, object, string, AnyOptionalSchema | undefined>[]
logical
,
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
.
Plugin<RuleAbout, string | undefined, [Rule<{ readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior."; readonly id: "assertStrict"; readonly presets: [...]; } & { ...; }, object, object, "preferStrictAssert", AnyOptionalSchema>, ... 9 more ..., Rule<...>]>.presets: PluginPresets<RuleAbout, "logical" | "logicalStrict" | "stylistic" | "stylisticStrict">

Preset lists of rules to enable on files.

@seehttps://flint.fyi/glossary#preset flint.fyi/glossary#preset

presets
.
stylistic: Rule<RuleAbout, object, object, string, AnyOptionalSchema | undefined>[]
stylistic
],
},
],
});

If you are experienced with both Markdown and linting, Flint recommends additionally using the stylisticStrict preset:

flint.config.ts
import {
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
} from "@flint.fyi/node";
import {
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
,
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
} from "flint";
export default
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
({
ConfigDefinition.use: ConfigUseDefinition[]

Specifies the files to be linted alongside the rules and settings to lint with.

@seehttps://flint.fyi/configuration#use flint.fyi/configuration#use

use
: [
{
ConfigUseDefinition.files: AnyLevelDeep<FilesValue>

A list of glob patterns describing which file(s) to lint.

@seehttps://flint.fyi/configuration#files flint.fyi/configuration#files

files
:
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
.
Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{ readonly description: "Reports getter and setter accessors for the same property that are not adjacent."; readonly id: "accessorPairGroups"; readonly presets: [...]; } & { ...; }, object, object, "notGrouped", AnyOptionalSchema>, ... 291 more ..., Rule<...>]>.files: Record<"all" | "javascript" | "typescript", FilesValue>

Selectors of files this plugin suggests applying its rules to.

@seehttps://flint.fyi/glossary#files flint.fyi/glossary#files

files
.
all: FilesValue
all
,
ConfigUseDefinition.rules: AnyLevelDeep<ConfigRuleDefinition>

Any number of rules and/or presets of rules to enable for those files.

@seehttps://flint.fyi/configuration#rules flint.fyi/configuration#rules

rules
: [
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
.
Plugin<RuleAbout, string | undefined, [Rule<{ readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior."; readonly id: "assertStrict"; readonly presets: [...]; } & { ...; }, object, object, "preferStrictAssert", AnyOptionalSchema>, ... 9 more ..., Rule<...>]>.presets: PluginPresets<RuleAbout, "logical" | "logicalStrict" | "stylistic" | "stylisticStrict">

Preset lists of rules to enable on files.

@seehttps://flint.fyi/glossary#preset flint.fyi/glossary#preset

presets
.
logical: Rule<RuleAbout, object, object, string, AnyOptionalSchema | undefined>[]
logical
,
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
.
Plugin<RuleAbout, string | undefined, [Rule<{ readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior."; readonly id: "assertStrict"; readonly presets: [...]; } & { ...; }, object, object, "preferStrictAssert", AnyOptionalSchema>, ... 9 more ..., Rule<...>]>.presets: PluginPresets<RuleAbout, "logical" | "logicalStrict" | "stylistic" | "stylisticStrict">

Preset lists of rules to enable on files.

@seehttps://flint.fyi/glossary#preset flint.fyi/glossary#preset

presets
.
stylisticStrict: Rule<RuleAbout, object, object, string, AnyOptionalSchema | undefined>[]
stylisticStrict
],
},
],
});

Rules that find bugs and enforce good Node.js and general server-side best practices for most-to-all JavaScript and TypeScript files.

flint.config.ts
import {
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
,
import node
node
} from "flint";
export default
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
({
ConfigDefinition.use: ConfigUseDefinition[]

Specifies the files to be linted alongside the rules and settings to lint with.

@seehttps://flint.fyi/configuration#use flint.fyi/configuration#use

use
: [
{
ConfigUseDefinition.files: AnyLevelDeep<FilesValue>

A list of glob patterns describing which file(s) to lint.

@seehttps://flint.fyi/configuration#files flint.fyi/configuration#files

files
:
import node
node
.
any
files
.
any
all
,
ConfigUseDefinition.rules: AnyLevelDeep<ConfigRuleDefinition>

Any number of rules and/or presets of rules to enable for those files.

@seehttps://flint.fyi/configuration#rules flint.fyi/configuration#rules

rules
:
import node
node
.
any
presets
.
any
logical
,
},
],
});

Rules that enforce consistent styling and best stylistic practices for most-to-all JavaScript and TypeScript files dealing with Node.js APIs.

flint.config.ts
import {
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
} from "@flint.fyi/node";
import {
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
,
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
} from "flint";
export default
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
({
ConfigDefinition.use: ConfigUseDefinition[]

Specifies the files to be linted alongside the rules and settings to lint with.

@seehttps://flint.fyi/configuration#use flint.fyi/configuration#use

use
: [
{
ConfigUseDefinition.files: AnyLevelDeep<FilesValue>

A list of glob patterns describing which file(s) to lint.

@seehttps://flint.fyi/configuration#files flint.fyi/configuration#files

files
:
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
.
Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{ readonly description: "Reports getter and setter accessors for the same property that are not adjacent."; readonly id: "accessorPairGroups"; readonly presets: [...]; } & { ...; }, object, object, "notGrouped", AnyOptionalSchema>, ... 291 more ..., Rule<...>]>.files: Record<"all" | "javascript" | "typescript", FilesValue>

Selectors of files this plugin suggests applying its rules to.

@seehttps://flint.fyi/glossary#files flint.fyi/glossary#files

files
.
all: FilesValue
all
,
ConfigUseDefinition.rules: AnyLevelDeep<ConfigRuleDefinition>

Any number of rules and/or presets of rules to enable for those files.

@seehttps://flint.fyi/configuration#rules flint.fyi/configuration#rules

rules
:
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
.
Plugin<RuleAbout, string | undefined, [Rule<{ readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior."; readonly id: "assertStrict"; readonly presets: [...]; } & { ...; }, object, object, "preferStrictAssert", AnyOptionalSchema>, ... 9 more ..., Rule<...>]>.presets: PluginPresets<RuleAbout, "logical" | "logicalStrict" | "stylistic" | "stylisticStrict">

Preset lists of rules to enable on files.

@seehttps://flint.fyi/glossary#preset flint.fyi/glossary#preset

presets
.
stylistic: Rule<RuleAbout, object, object, string, AnyOptionalSchema | undefined>[]
stylistic
,
},
],
});

Additional stylistic rules that enforce best practices which are not always straightforward to implement. These rules are recommended for projects where a majority of developers are experienced with both Node.js and using a linter.

flint.config.ts
import {
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
} from "@flint.fyi/node";
import {
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
,
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
} from "flint";
export default
function defineConfig(definition: ConfigDefinition): Config

Defines a new linter configuration for a Flint config file.

@seehttps://flint.fyi/configuration flint.fyi/configuration

defineConfig
({
ConfigDefinition.use: ConfigUseDefinition[]

Specifies the files to be linted alongside the rules and settings to lint with.

@seehttps://flint.fyi/configuration#use flint.fyi/configuration#use

use
: [
{
ConfigUseDefinition.files: AnyLevelDeep<FilesValue>

A list of glob patterns describing which file(s) to lint.

@seehttps://flint.fyi/configuration#files flint.fyi/configuration#files

files
:
const ts: Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{
readonly description: "Reports getter and setter accessors for the same property that are not adjacent.";
readonly id: "accessorPairGroups";
readonly presets: ["stylistic", "stylisticStrict"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "notGrouped", AnyOptionalSchema>, Rule<{
readonly description: "Reports mismatched types between getter and setter accessor pairs.";
readonly id: "accessorPairTypes";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict" | "untyped")[];
url: string;
}, object, object, "mismatchedTypes", AnyOptionalSchema>, ... 290 more ..., Rule<...>]>
ts
.
Plugin<RuleAbout, "all" | "javascript" | "typescript", [Rule<{ readonly description: "Reports getter and setter accessors for the same property that are not adjacent."; readonly id: "accessorPairGroups"; readonly presets: [...]; } & { ...; }, object, object, "notGrouped", AnyOptionalSchema>, ... 291 more ..., Rule<...>]>.files: Record<"all" | "javascript" | "typescript", FilesValue>

Selectors of files this plugin suggests applying its rules to.

@seehttps://flint.fyi/glossary#files flint.fyi/glossary#files

files
.
all: FilesValue
all
,
ConfigUseDefinition.rules: AnyLevelDeep<ConfigRuleDefinition>

Any number of rules and/or presets of rules to enable for those files.

@seehttps://flint.fyi/configuration#rules flint.fyi/configuration#rules

rules
:
const node: Plugin<RuleAbout, string | undefined, [Rule<{
readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior.";
readonly id: "assertStrict";
readonly presets: ["logical"];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferStrictAssert", AnyOptionalSchema>, Rule<{
readonly description: "Prefer `assert.ok()` over `assert()` for explicit intent and better readability.";
readonly id: "assertStyles";
readonly presets: [...];
} & {
presets?: ("logical" | "logicalStrict" | "stylistic" | "stylisticStrict")[];
url: string;
}, object, object, "preferAssertOk", AnyOptionalSchema>, ... 8 more ..., Rule<...>]>
node
.
Plugin<RuleAbout, string | undefined, [Rule<{ readonly description: "Prefer strict assertion mode from Node.js for better error messages and behavior."; readonly id: "assertStrict"; readonly presets: [...]; } & { ...; }, object, object, "preferStrictAssert", AnyOptionalSchema>, ... 9 more ..., Rule<...>]>.presets: PluginPresets<RuleAbout, "logical" | "logicalStrict" | "stylistic" | "stylisticStrict">

Preset lists of rules to enable on files.

@seehttps://flint.fyi/glossary#preset flint.fyi/glossary#preset

presets
.
stylisticStrict: Rule<RuleAbout, object, object, string, AnyOptionalSchema | undefined>[]
stylisticStrict
,
},
],
});

This preset’s rules are a superset of those in stylistic.

Implemented: 11 of 16 (68.7%)
Flint RulePreset
assertStrictPrefer strict assertion mode from Node.js for better error messages and behavior.logical
bufferAllocatorsPrefer modern Buffer allocation methods over the deprecated Buffer constructor.logical
exportsAssignmentsPrevent assignment to the exports variable in CommonJS modules.logical
hashbangslogical
nodeProtocolsPrefer the node: protocol prefix for Node.js built-in modules for clarity and consistency.logical
processExitsPrevent direct use of process.exit() for better error handling and testing.logical
unpublishedBinslogical
unpublishedImportslogical
unsupportedNodeAPIslogical
eventClassesPrefer EventTarget over EventEmitter for cross-platform compatibility.logical (strict)
assertStylesPrefer assert.ok() over assert() for explicit intent and better readability.stylistic
blobReadingMethodsPrefer direct Blob reading methods over wrapping in Response for simpler code.stylistic
consoleSpacesDisallow leading or trailing spaces in console method string arguments.stylistic (strict)
filePathsFromImportMetaPrefer import.meta.dirname and import.meta.filename over legacy file path techniques.stylistic (strict)
fileReadJSONBuffersPrefer reading JSON files as buffers when using JSON.parse for better performance.stylistic (strict)
importFileExtensions(none)
Made with ❤️‍🔥 around the world by the Flint team and contributors.