Skip to content

Node.js Plugin

Flint’s Node.js plugin includes rules targeted to code that runs in Node.js and Node.js-like environments.

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

Flint’s Markdown 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 { node } from "@flint.fyi/node";
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: [node.presets.logical, node.presets.stylistic],
},
],
});

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

flint.config.ts
import { node } from "@flint.fyi/node";
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: [node.presets.logical, node.presets.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 { defineConfig, node } from "flint";
export default defineConfig({
use: [
{
files: node.files.all,
rules: node.presets.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 { node } from "@flint.fyi/node";
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: node.presets.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 { node } from "@flint.fyi/node";
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: node.presets.stylisticStrict,
},
],
});

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

Implemented: 0 of 16 (0%)
Flint NamePresetBiome Rule(s)Deno Lint Rule(s)ESLint Rule(s)Oxlint Rule(s)
bufferAllocatorsLogicalunicorn/no-new-bufferunicorn/no-new-buffer
exportsAssignmentsLogicaln/no-exports-assignnode/no-exports-assign
hashbangsLogicaln/hashbang
nodeProtocolsLogicaluseNodejsImportProtocolimport/enforce-node-protocol-usagen/prefer-node-protocolunicorn/prefer-node-protocolunicorn/prefer-node-protocol
processExistsLogicaln/no-process-exitunicorn/no-process-exitunicorn/no-process-exit
unpublishedBinsLogicaln/no-unpublished-bin
unpublishedImportsLogicaln/no-unpublished-import
unsupportedGlobalsLogicaln/no-unsupported-features/es-builtins
unsupportedNodeAPIsLogicaln/no-unsupported-features/node-builtins
unsupportedSyntaxLogicaln/no-unsupported-features/es-syntax
importFileExtensionsNoneuseImportExtensionsno-sloppy-importsn/file-extension-in-importimport/extensions
assertStylesStylisticunicorn/consistent-assertunicorn/consistent-assert
blobReadingMethodsStylisticunicorn/prefer-blob-reading-methodsunicorn/prefer-blob-reading-methods
consoleSpacesStylistic (Strict)unicorn/no-console-spacesunicorn/no-console-spaces
filePathsFromImportMetaStylistic (Strict)unicorn/prefer-import-meta-properties
fileReadJSONBuffersStylistic (Strict)unicorn/prefer-json-parse-buffer
Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.