# @acdvs/eslint-plugin-amd

> ESLint plugin for AMD module syntax

Latest version **1.0.0** (published 2026-05-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install @acdvs/eslint-plugin-amd
pnpm add @acdvs/eslint-plugin-amd
yarn add @acdvs/eslint-plugin-amd
bun add @acdvs/eslint-plugin-amd
```

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2026-05-26 |
| First published | 2026-05-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | ^20.19.0 \|\| ^22.13.0 \|\| >=24 |
| Dependencies | 1 |
| Unpacked size | 67.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Adam Davies <adam@acdvs.dev> (https://acdvs.dev) |
| Maintainers | acdvs |
| Keywords | eslint, plugin, amd, define, require, modules |

## Links

- npm: https://www.npmjs.com/package/@acdvs/eslint-plugin-amd
- Repository: https://github.com/acdvs/eslint-plugin-amd
- Issues: https://github.com/acdvs/eslint-plugin-amd/issues
- npm.io page: https://npm.io/package/@acdvs/eslint-plugin-amd

## Dependencies (1)

- [globals](https://npm.io/package/globals.md) ^17.6.0

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@pandacss/eslint-plugin](https://npm.io/package/@pandacss/eslint-plugin.md) — 18.7K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2026-05-26

## README

# eslint-plugin-amd

ESLint plugin for JavaScript AMD module syntax.

[![npm](https://img.shields.io/npm/v/@acdvs/eslint-plugin-amd)](https://www.npmjs.com/package/@acdvs/eslint-plugin-amd)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Features

- Lints all AMD `define()` call shapes
- Detects dynamic `require()` calls
- Checks for mismatched dependency literals ↔ factory parameters
- Enforces path conventions (no extensions, sorted dependencies)
- Exports utility functions for use by other ESLint plugins

## Installation

```sh
npm i -D eslint @acdvs/eslint-plugin-amd
```

Requires ESLint 9+ flat config format.

## Configuration (ESLint 9+ flat config)

```js
// eslint.config.js
import amd from '@acdvs/eslint-plugin-amd';

export default [
  // Recommended rules
  ...amd.configs.recommended,

  // Or configure rules individually
  {
    plugins: { amd },
    rules: {
      'amd/no-extra-deps': 'error',
      'amd/no-extra-params': 'error',
      'amd/no-invalid-define': 'error',
      'amd/no-module-extensions': 'warn',
      'amd/no-name': 'warn',
      'amd/sorted-deps': ['warn', { order: 'asc' }],
    },
  },
];
```

## Rules

| Rule | Description | Recommended |
|:--|:--|:--:|
| [`amd/define-indicator`](docs/rules/define-indicator.md) | Enforce the presence of the AMD module `define()` indicator. | ❌ |
| [`amd/no-dynamic-require`](docs/rules/no-dynamic-require.md) | Disallow dynamic (non-literal) expressions in `require()` calls. | ❌ |
| [`amd/no-extra-deps`](docs/rules/no-extra-deps.md) | Disallow more dependency literals than factory parameters. | ✅ |
| [`amd/no-extra-params`](docs/rules/no-extra-params.md) | Disallow more factory parameters than dependency literals. | ✅ |
| [`amd/no-invalid-define`](docs/rules/no-invalid-define.md) | Disallow `define()` calls that do not match a valid AMD module signature. | ✅ |
| [`amd/no-module-extensions`](docs/rules/no-module-extensions.md) | Disallow file extensions in AMD dependency paths. | ✅ |
| [`amd/no-name`](docs/rules/no-name.md) | Disallow named AMD modules. | ✅ |
| [`amd/sorted-deps`](docs/rules/sorted-deps.md) | Enforce alphabetical ordering of `define()` dependency literals. | ❌ |

## Using utility functions in your own plugin

```js
import amdUtils from '@acdvs/eslint-plugin-amd/utils';

create(context) {
  return {
    CallExpression(node) {
      const defineCall = amdUtils.getDefineCall(node);

      if (!defineCall) return;

      // ...
    },
  };
}
```

## License

[MIT](LICENSE)

---
_Source: https://npm.io/package/@acdvs/eslint-plugin-amd · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
