CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-eslint-config-node

tessl install tessl/npm-eslint-config-node@3.0.0

Pluggable ESLint configuration for Node.js that extends ESNext with Node.js-specific safety checks and best practices

Agent Success

Agent success rate when using this tile

73%

Improvement

Agent success rate improvement when using this tile compared to baseline

1.12x

Baseline

Agent success rate without this tile

65%

task.mdevals/scenario-3/

ESLint Import Extension Validator

Configure ESLint to validate import statement file extensions according to project-specific rules.

Overview

You need to configure ESLint with rules that enforce consistent usage of file extensions in import statements. Some projects require explicit extensions, while others omit them - your configuration should enforce the chosen convention.

Requirements

Extension Rule Configuration

Create an ESLint configuration file (.eslintrc.json) that:

  • Enforces explicit .js extensions for all relative imports
  • Enforces explicit .json extensions for JSON file imports
  • Never requires extensions for npm package imports
  • Reports violations as errors

Validation Logic

The configuration must validate:

  • ES6 import statements: import foo from './bar'
  • CommonJS require statements: const foo = require('./bar')
  • Both relative paths (./ and ../) and package imports

Test Files

Create a test file (test.js) that demonstrates:

  • A valid import with proper .js extension: import helper from './helper.js'
  • A valid package import without extension: import lodash from 'lodash'
  • An invalid import missing .js extension (should be caught by linting)

Test Cases

The following test cases verify the configuration works correctly:

  • Running ESLint on a file with import './module' (missing .js) reports an error @test
  • Running ESLint on a file with import './module.js' reports no errors @test
  • Running ESLint on a file with import 'lodash' (package import) reports no errors @test
  • Running ESLint on a file with require('./config') (missing .json for JSON file) reports an error @test

Implementation

@generates

API

{
  "extends": ["..."],
  "rules": {
    "import/extensions": ["error", "always", {
      "ignorePackages": true
    }]
  }
}

Dependencies { .dependencies }

eslint-plugin-import { .dependency }

Provides the import/extensions rule for validating import statement file extensions

@satisfied-by

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/eslint-config-node@3.0.x
tile.json