Skip to content

Commit 7e6fb26

Browse files
authored
feat: migrate to esm-only (#144)
Moves the project to esm-only.
1 parent e96d723 commit 7e6fb26

File tree

51 files changed

+862
-2854
lines changed

Some content is hidden

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

51 files changed

+862
-2854
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
strategy:
1212
matrix:
13-
node-version: [16.x, 18.x, 20.x]
13+
node-version: [18.x, 20.x, 22.x]
1414
fail-fast: false
1515
steps:
1616
- name: Checkout
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
declare module 'is-valid-element-name' {
2-
function isValidElementName(name: string): boolean;
3-
export = isValidElementName;
2+
export default function isValidElementName(name: string): boolean;
43
}

package-lock.json

Lines changed: 735 additions & 2742 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@
33
"version": "0.0.0-dev",
44
"description": "ESLint plugin for Web Components",
55
"main": "lib/index.js",
6+
"type": "module",
67
"files": [
78
"lib/",
89
"!lib/test",
910
"docs/"
1011
],
1112
"scripts": {
12-
"clean": "rimraf ./lib",
13+
"clean": "premove ./lib",
1314
"lint": "eslint \"src/**/*.ts\"",
1415
"prebuild": "npm run clean",
1516
"build": "tsc",
1617
"start": "nodemon --watch src --ext ts --exec \"npm run dev\"",
1718
"dev": "npm run lint && npm run build && npm run test",
18-
"test": "nyc --reporter=html --reporter=text-summary --reporter=lcov mocha \"lib/test/**/*_test.js\"",
19+
"test": "c8 --reporter=html --reporter=text-summary --reporter=lcov mocha \"lib/test/**/*_test.js\"",
1920
"format": "prettier --write \"src/**/*.ts\"",
2021
"prepare": "npm run build",
2122
"prepublishOnly": "npm run lint && npm run test"
@@ -38,7 +39,7 @@
3839
"homepage": "https://github.com/43081j/eslint-plugin-wc#readme",
3940
"dependencies": {
4041
"is-valid-element-name": "^1.0.0",
41-
"js-levenshtein-esm": "^1.2.0"
42+
"js-levenshtein-esm": "^2.0.0"
4243
},
4344
"peerDependencies": {
4445
"eslint": ">=8.40.0"
@@ -48,19 +49,19 @@
4849
"@types/eslint": "^8.44.2",
4950
"@types/estree": "^1.0.1",
5051
"@types/mocha": "^10.0.1",
51-
"@types/node": "^20.5.2",
52+
"@types/node": "^22.13.10",
5253
"@typescript-eslint/eslint-plugin": "^6.4.1",
5354
"@typescript-eslint/parser": "^6.4.1",
55+
"c8": "^10.1.3",
5456
"chai": "^4.3.4",
5557
"coveralls": "^3.1.0",
5658
"eslint": "^8.47.0",
5759
"eslint-config-google": "^0.14.0",
5860
"espree": "^9.4.1",
59-
"mocha": "^10.2.0",
61+
"mocha": "^11.1.0",
6062
"nodemon": "^3.0.1",
61-
"nyc": "^15.1.0",
63+
"premove": "^4.0.0",
6264
"prettier": "^3.0.2",
63-
"rimraf": "^5.0.1",
6465
"typescript": "^5.1.6"
6566
}
6667
}

src/index.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
import type {ESLint} from 'eslint';
2-
import attachShadowConstructor from './rules/attach-shadow-constructor';
3-
import defineTagAfterClassDef from './rules/define-tag-after-class-definition';
4-
import exposeClassOnGlobal from './rules/expose-class-on-global';
5-
import filenameMatches from './rules/file-name-matches-element';
6-
import guardDefine from './rules/guard-define-call';
7-
import guardSuperCall from './rules/guard-super-call';
8-
import maxElementsPerFile from './rules/max-elements-per-file';
9-
import noChildInAttrChange from './rules/no-child-traversal-in-attributechangedcallback';
10-
import noChildInConnected from './rules/no-child-traversal-in-connectedcallback';
11-
import noClosedShadowRoot from './rules/no-closed-shadow-root';
12-
import noConstructor from './rules/no-constructor';
13-
import noConstructorAttrs from './rules/no-constructor-attributes';
14-
import noConstructorParams from './rules/no-constructor-params';
15-
import noCustomizedBuiltInElements from './rules/no-customized-built-in-elements';
16-
import noExports from './rules/no-exports-with-element';
17-
import noInvalidElementName from './rules/no-invalid-element-name';
18-
import noInvalidExtends from './rules/no-invalid-extends';
19-
import noOnPrefix from './rules/no-method-prefixed-with-on';
20-
import noSelfClass from './rules/no-self-class';
21-
import noTypos from './rules/no-typos';
22-
import {configFactory as configRecommended} from './configs/recommended';
23-
import {configFactory as configBestPractice} from './configs/best-practice';
24-
import {config as configLegacyRecommended} from './configs/legacy-recommended';
25-
import {config as configLegacyBestPractice} from './configs/legacy-best-practice';
26-
import requireListenerTeardown from './rules/require-listener-teardown';
27-
import tagMatchesClass from './rules/tag-name-matches-class';
2+
import attachShadowConstructor from './rules/attach-shadow-constructor.js';
3+
import defineTagAfterClassDef from './rules/define-tag-after-class-definition.js';
4+
import exposeClassOnGlobal from './rules/expose-class-on-global.js';
5+
import filenameMatches from './rules/file-name-matches-element.js';
6+
import guardDefine from './rules/guard-define-call.js';
7+
import guardSuperCall from './rules/guard-super-call.js';
8+
import maxElementsPerFile from './rules/max-elements-per-file.js';
9+
import noChildInAttrChange from './rules/no-child-traversal-in-attributechangedcallback.js';
10+
import noChildInConnected from './rules/no-child-traversal-in-connectedcallback.js';
11+
import noClosedShadowRoot from './rules/no-closed-shadow-root.js';
12+
import noConstructor from './rules/no-constructor.js';
13+
import noConstructorAttrs from './rules/no-constructor-attributes.js';
14+
import noConstructorParams from './rules/no-constructor-params.js';
15+
import noCustomizedBuiltInElements from './rules/no-customized-built-in-elements.js';
16+
import noExports from './rules/no-exports-with-element.js';
17+
import noInvalidElementName from './rules/no-invalid-element-name.js';
18+
import noInvalidExtends from './rules/no-invalid-extends.js';
19+
import noOnPrefix from './rules/no-method-prefixed-with-on.js';
20+
import noSelfClass from './rules/no-self-class.js';
21+
import noTypos from './rules/no-typos.js';
22+
import {configFactory as configRecommended} from './configs/recommended.js';
23+
import {configFactory as configBestPractice} from './configs/best-practice.js';
24+
import {config as configLegacyRecommended} from './configs/legacy-recommended.js';
25+
import {config as configLegacyBestPractice} from './configs/legacy-best-practice.js';
26+
import requireListenerTeardown from './rules/require-listener-teardown.js';
27+
import tagMatchesClass from './rules/tag-name-matches-class.js';
2828

2929
export const rules = {
3030
'attach-shadow-constructor': attachShadowConstructor,

src/rules/attach-shadow-constructor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import {Rule} from 'eslint';
77
import * as ESTree from 'estree';
8-
import {isCustomElement} from '../util';
8+
import {isCustomElement} from '../util.js';
99

1010
//------------------------------------------------------------------------------
1111
// Rule Definition

src/rules/define-tag-after-class-definition.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
import {Rule} from 'eslint';
99
import * as ESTree from 'estree';
10-
import {isCustomElement} from '../util';
11-
import {isDefineCall} from '../util/customElements';
12-
import {resolveReference} from '../util/ast';
10+
import {isCustomElement} from '../util.js';
11+
import {isDefineCall} from '../util/customElements.js';
12+
import {resolveReference} from '../util/ast.js';
1313

1414
//------------------------------------------------------------------------------
1515
// Rule Definition

src/rules/expose-class-on-global.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
import {Rule} from 'eslint';
88
import * as ESTree from 'estree';
9-
import {isCustomElement} from '../util';
10-
import {resolveReference} from '../util/ast';
9+
import {isCustomElement} from '../util.js';
10+
import {resolveReference} from '../util/ast.js';
1111

1212
//------------------------------------------------------------------------------
1313
// Rule Definition

src/rules/file-name-matches-element.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
import {Rule} from 'eslint';
99
import * as ESTree from 'estree';
10-
import {isCustomElement, coerceArray} from '../util';
10+
import {isCustomElement, coerceArray} from '../util.js';
1111
import * as path from 'path';
12-
import {toCaseByType} from '../util/text';
12+
import {toCaseByType} from '../util/text.js';
1313

1414
/**
1515
* Computes a set of prefixed/suffixed names for a given name

src/rules/guard-define-call.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import {Rule} from 'eslint';
88
import * as ESTree from 'estree';
9-
import {isDefineCall, isGetCall} from '../util/customElements';
9+
import {isDefineCall, isGetCall} from '../util/customElements.js';
1010

1111
//------------------------------------------------------------------------------
1212
// Rule Definition

0 commit comments

Comments
 (0)