Skip to content

Commit 9cd5af8

Browse files
43081jbmish
andauthored
feat!: move to ESM only (#516)
* feat: move to ESM only * chore: move to c8 for esm support * chore: revert some mistaken replaces * fix: add no-meta-replaced-by to index * mocha timeout from 2000 to 3000 for slow no-property-in-node test * git ignore coverage/ * Revert "mocha timeout from 2000 to 3000 for slow no-property-in-node test" This reverts commit 8a8fb60. * chore: remove duplicate gitignore * chore: revert comment change --------- Co-authored-by: Bryan Mishkin <[email protected]>
1 parent c316040 commit 9cd5af8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+845
-825
lines changed

.eslint-doc-generatorrc.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
'use strict';
2-
3-
const prettier = require('prettier');
1+
import prettier from 'prettier';
42

53
/** @type {import('eslint-doc-generator').GenerateOptions} */
6-
module.exports = {
4+
const config = {
75
ignoreConfig: [
86
'all',
97
'all-type-checked',
@@ -29,3 +27,5 @@ module.exports = {
2927
urlConfigs:
3028
'https://github.com/eslint-community/eslint-plugin-eslint-plugin#presets',
3129
};
30+
31+
export default config;

.prettierrc.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
'use strict';
2-
3-
module.exports = {
1+
export default {
42
singleQuote: true,
53
};

commitlint.config.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
'use strict';
2-
3-
module.exports = { extends: ['@commitlint/config-conventional'] };
1+
export default { extends: ['@commitlint/config-conventional'] };

configs/all-type-checked.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
* @author 唯然<[email protected]>
44
*/
55

6-
'use strict';
6+
import plugin from '../lib/index.js';
77

8-
const plugin = require('../lib/index.js');
8+
const config = plugin.configs['flat/all-type-checked'];
99

10-
module.exports = plugin.configs['flat/all-type-checked'];
10+
export default config;

configs/all.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
* @author 唯然<[email protected]>
55
*/
66

7-
'use strict';
7+
import plugin from '../lib/index.js';
88

9-
const plugin = require('../lib/index.js');
9+
const config = plugin.configs['flat/all'];
1010

11-
module.exports = plugin.configs['flat/all'];
11+
export default config;

configs/recommended.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
* @author 唯然<[email protected]>
55
*/
66

7-
'use strict';
7+
import plugin from '../lib/index.js';
88

9-
const plugin = require('../lib/index.js');
9+
const config = plugin.configs['flat/recommended'];
1010

11-
module.exports = plugin.configs['flat/recommended'];
11+
export default config;

configs/rules-recommended.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
* @author 唯然<[email protected]>
55
*/
66

7-
'use strict';
7+
import plugin from '../lib/index.js';
88

9-
const plugin = require('../lib/index.js');
9+
const config = plugin.configs['flat/rules-recommended'];
1010

11-
module.exports = plugin.configs['flat/rules-recommended'];
11+
export default config;

configs/rules.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
* @author 唯然<[email protected]>
55
*/
66

7-
'use strict';
7+
import plugin from '../lib/index.js';
88

9-
const plugin = require('../lib/index.js');
9+
const config = plugin.configs['flat/rules'];
1010

11-
module.exports = plugin.configs['flat/rules'];
11+
export default config;

configs/tests-recommended.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
* @author 唯然<[email protected]>
55
*/
66

7-
'use strict';
7+
import plugin from '../lib/index.js';
88

9-
const plugin = require('../lib/index.js');
9+
const config = plugin.configs['flat/tests-recommended'];
1010

11-
module.exports = plugin.configs['flat/tests-recommended'];
11+
export default config;

configs/tests.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
* @author 唯然<[email protected]>
55
*/
66

7-
'use strict';
7+
import plugin from '../lib/index.js';
88

9-
const plugin = require('../lib/index.js');
9+
const config = plugin.configs['flat/tests'];
1010

11-
module.exports = plugin.configs['flat/tests'];
11+
export default config;

eslint.config.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
'use strict';
2-
3-
const js = require('@eslint/js');
4-
const { FlatCompat } = require('@eslint/eslintrc');
5-
const markdown = require('eslint-plugin-markdown');
6-
const pluginN = require('eslint-plugin-n');
7-
const eslintPluginConfig = require('eslint-plugin-eslint-plugin/configs/all');
1+
import path from 'node:path';
2+
import { fileURLToPath } from 'node:url';
3+
import js from '@eslint/js';
4+
import { FlatCompat } from '@eslint/eslintrc';
5+
import markdown from 'eslint-plugin-markdown';
6+
import pluginN from 'eslint-plugin-n';
7+
import eslintPluginConfig from 'eslint-plugin-eslint-plugin/configs/all';
88

9+
const dirname = path.dirname(fileURLToPath(import.meta.url));
910
const compat = new FlatCompat({
10-
baseDirectory: __dirname,
11+
baseDirectory: dirname,
1112
recommendedConfig: js.configs.recommended,
1213
});
1314

14-
module.exports = [
15+
export default [
1516
...compat.extends(
1617
'not-an-aardvark/node',
1718
'plugin:@eslint-community/eslint-comments/recommended',

lib/index.js

Lines changed: 69 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,44 @@
33
* @author Teddy Katz
44
*/
55

6-
'use strict';
7-
86
// ------------------------------------------------------------------------------
97
// Requirements
108
// ------------------------------------------------------------------------------
119

12-
const fs = require('fs');
13-
const path = require('path');
14-
const packageMetadata = require('../package');
10+
import packageMetadata from '../package.json' with { type: 'json' };
11+
import consistentOutput from './rules/consistent-output.js';
12+
import fixerReturn from './rules/fixer-return.js';
13+
import metaPropertyOrdering from './rules/meta-property-ordering.js';
14+
import noDeprecatedContextMethods from './rules/no-deprecated-context-methods.js';
15+
import noDeprecatedReportApi from './rules/no-deprecated-report-api.js';
16+
import noIdenticalTests from './rules/no-identical-tests.js';
17+
import noMetaReplacedBy from './rules/no-meta-replaced-by.js';
18+
import noMetaSchemaDefault from './rules/no-meta-schema-default.js';
19+
import noMissingMessageIds from './rules/no-missing-message-ids.js';
20+
import noMissingPlaceholders from './rules/no-missing-placeholders.js';
21+
import noOnlyTests from './rules/no-only-tests.js';
22+
import noPropertyInNode from './rules/no-property-in-node.js';
23+
import noUnusedMessageIds from './rules/no-unused-message-ids.js';
24+
import noUnusedPlaceholders from './rules/no-unused-placeholders.js';
25+
import noUselessTokenRange from './rules/no-useless-token-range.js';
26+
import preferMessageIds from './rules/prefer-message-ids.js';
27+
import preferObjectRule from './rules/prefer-object-rule.js';
28+
import preferOutputNull from './rules/prefer-output-null.js';
29+
import preferPlaceholders from './rules/prefer-placeholders.js';
30+
import preferReplaceText from './rules/prefer-replace-text.js';
31+
import reportMessageFormat from './rules/report-message-format.js';
32+
import requireMetaDefaultOptions from './rules/require-meta-default-options.js';
33+
import requireMetaDocsDescription from './rules/require-meta-docs-description.js';
34+
import requireMetaDocsRecommended from './rules/require-meta-docs-recommended.js';
35+
import requireMetaDocsUrl from './rules/require-meta-docs-url.js';
36+
import requireMetaFixable from './rules/require-meta-fixable.js';
37+
import requireMetaHasSuggestions from './rules/require-meta-has-suggestions.js';
38+
import requireMetaSchemaDescription from './rules/require-meta-schema-description.js';
39+
import requireMetaSchema from './rules/require-meta-schema.js';
40+
import requireMetaType from './rules/require-meta-type.js';
41+
import testCasePropertyOrdering from './rules/test-case-property-ordering.js';
42+
import testCaseShorthandStrings from './rules/test-case-shorthand-strings.js';
43+
1544
const PLUGIN_NAME = packageMetadata.name.replace(/^eslint-plugin-/, '');
1645

1746
const configFilters = {
@@ -31,16 +60,40 @@ const configFilters = {
3160
// ------------------------------------------------------------------------------
3261

3362
// import all rules in lib/rules
34-
const allRules = Object.fromEntries(
35-
fs
36-
.readdirSync(`${__dirname}/rules`)
37-
.filter((fileName) => fileName.endsWith('.js') && /^[^._]/.test(fileName))
38-
.map((fileName) => fileName.replace(/\.js$/, ''))
39-
.map((ruleName) => [
40-
ruleName,
41-
require(path.join(__dirname, 'rules', ruleName)),
42-
]),
43-
);
63+
const allRules = {
64+
'consistent-output': consistentOutput,
65+
'fixer-return': fixerReturn,
66+
'meta-property-ordering': metaPropertyOrdering,
67+
'no-deprecated-context-methods': noDeprecatedContextMethods,
68+
'no-deprecated-report-api': noDeprecatedReportApi,
69+
'no-identical-tests': noIdenticalTests,
70+
'no-meta-replaced-by': noMetaReplacedBy,
71+
'no-meta-schema-default': noMetaSchemaDefault,
72+
'no-missing-message-ids': noMissingMessageIds,
73+
'no-missing-placeholders': noMissingPlaceholders,
74+
'no-only-tests': noOnlyTests,
75+
'no-property-in-node': noPropertyInNode,
76+
'no-unused-message-ids': noUnusedMessageIds,
77+
'no-unused-placeholders': noUnusedPlaceholders,
78+
'no-useless-token-range': noUselessTokenRange,
79+
'prefer-message-ids': preferMessageIds,
80+
'prefer-object-rule': preferObjectRule,
81+
'prefer-output-null': preferOutputNull,
82+
'prefer-placeholders': preferPlaceholders,
83+
'prefer-replace-text': preferReplaceText,
84+
'report-message-format': reportMessageFormat,
85+
'require-meta-default-options': requireMetaDefaultOptions,
86+
'require-meta-docs-description': requireMetaDocsDescription,
87+
'require-meta-docs-recommended': requireMetaDocsRecommended,
88+
'require-meta-docs-url': requireMetaDocsUrl,
89+
'require-meta-fixable': requireMetaFixable,
90+
'require-meta-has-suggestions': requireMetaHasSuggestions,
91+
'require-meta-schema-description': requireMetaSchemaDescription,
92+
'require-meta-schema': requireMetaSchema,
93+
'require-meta-type': requireMetaType,
94+
'test-case-property-ordering': testCasePropertyOrdering,
95+
'test-case-shorthand-strings': testCaseShorthandStrings,
96+
};
4497

4598
/** @type {import("eslint").ESLint.Plugin} */
4699
const plugin = {
@@ -87,4 +140,4 @@ Object.assign(
87140
}, {}),
88141
);
89142

90-
module.exports = plugin;
143+
export default plugin;

lib/rules/consistent-output.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@
33
* @author Teddy Katz
44
*/
55

6-
'use strict';
7-
8-
const utils = require('../utils');
6+
import * as utils from '../utils.js';
97

108
// ------------------------------------------------------------------------------
119
// Rule Definition
1210
// ------------------------------------------------------------------------------
1311

1412
/** @type {import('eslint').Rule.RuleModule} */
15-
module.exports = {
13+
const rule = {
1614
meta: {
1715
type: 'suggestion',
1816
docs: {
@@ -71,3 +69,5 @@ module.exports = {
7169
};
7270
},
7371
};
72+
73+
export default rule;

lib/rules/fixer-return.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,19 @@
33
* @author 薛定谔的猫<[email protected]>
44
*/
55

6-
'use strict';
7-
86
// ------------------------------------------------------------------------------
97
// Requirements
108
// ------------------------------------------------------------------------------
119

12-
const utils = require('../utils');
13-
const { getStaticValue } = require('@eslint-community/eslint-utils');
10+
import * as utils from '../utils.js';
11+
import { getStaticValue } from '@eslint-community/eslint-utils';
1412

1513
// ------------------------------------------------------------------------------
1614
// Rule Definition
1715
// ------------------------------------------------------------------------------
1816

1917
/** @type {import('eslint').Rule.RuleModule} */
20-
module.exports = {
18+
const rule = {
2119
meta: {
2220
type: 'problem',
2321
docs: {
@@ -167,3 +165,5 @@ module.exports = {
167165
};
168166
},
169167
};
168+
169+
export default rule;

lib/rules/meta-property-ordering.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
* @fileoverview Enforces the order of meta properties
33
*/
44

5-
'use strict';
5+
import * as utils from '../utils.js';
66

7-
const utils = require('../utils');
87
const { getKeyName, getRuleInfo } = utils;
98

109
const defaultOrder = [
@@ -24,7 +23,7 @@ const defaultOrder = [
2423
// ------------------------------------------------------------------------------
2524

2625
/** @type {import('eslint').Rule.RuleModule} */
27-
module.exports = {
26+
const rule = {
2827
meta: {
2928
type: 'suggestion',
3029
docs: {
@@ -111,3 +110,5 @@ module.exports = {
111110
};
112111
},
113112
};
113+
114+
export default rule;

lib/rules/no-deprecated-context-methods.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
* @author Teddy Katz
44
*/
55

6-
'use strict';
7-
8-
const utils = require('../utils');
6+
import * as utils from '../utils.js';
97

108
const DEPRECATED_PASSTHROUGHS = {
119
getSource: 'getText',
@@ -35,7 +33,7 @@ const DEPRECATED_PASSTHROUGHS = {
3533
// ------------------------------------------------------------------------------
3634

3735
/** @type {import('eslint').Rule.RuleModule} */
38-
module.exports = {
36+
const rule = {
3937
meta: {
4038
type: 'suggestion',
4139
docs: {
@@ -96,3 +94,5 @@ module.exports = {
9694
};
9795
},
9896
};
97+
98+
export default rule;

lib/rules/no-deprecated-report-api.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@
33
* @author Teddy Katz
44
*/
55

6-
'use strict';
7-
8-
const utils = require('../utils');
6+
import * as utils from '../utils.js';
97

108
// ------------------------------------------------------------------------------
119
// Rule Definition
1210
// ------------------------------------------------------------------------------
1311

1412
/** @type {import('eslint').Rule.RuleModule} */
15-
module.exports = {
13+
const rule = {
1614
meta: {
1715
type: 'suggestion',
1816
docs: {
@@ -81,3 +79,5 @@ module.exports = {
8179
};
8280
},
8381
};
82+
83+
export default rule;

0 commit comments

Comments
 (0)