Licence
MIT
Version
1.0.0
Deps
1
Size
67 kB
Vulns
0
Weekly
0
eslint-plugin-amd
ESLint plugin for JavaScript AMD module syntax.
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
npm i -D eslint @acdvs/eslint-plugin-amd
Requires ESLint 9+ flat config format.
Configuration (ESLint 9+ flat config)
// 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 |
Enforce the presence of the AMD module define() indicator. |
|
amd/no-dynamic-require |
Disallow dynamic (non-literal) expressions in require() calls. |
|
amd/no-extra-deps |
Disallow more dependency literals than factory parameters. | |
amd/no-extra-params |
Disallow more factory parameters than dependency literals. | |
amd/no-invalid-define |
Disallow define() calls that do not match a valid AMD module signature. |
|
amd/no-module-extensions |
Disallow file extensions in AMD dependency paths. | |
amd/no-name |
Disallow named AMD modules. | |
amd/sorted-deps |
Enforce alphabetical ordering of define() dependency literals. |
Using utility functions in your own plugin
import amdUtils from '@acdvs/eslint-plugin-amd/utils';
create(context) {
return {
CallExpression(node) {
const defineCall = amdUtils.getDefineCall(node);
if (!defineCall) return;
// ...
},
};
}