Skip to content

Commit e5ea6fe

Browse files
authored
feat: add experimental support for Svelte v4 (#494)
1 parent d49674e commit e5ea6fe

File tree

7 files changed

+51
-15
lines changed

7 files changed

+51
-15
lines changed

.changeset/friendly-toys-end.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-svelte": minor
3+
---
4+
5+
feat: add experimental support for Svelte v4

.changeset/grumpy-gorillas-sip.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-svelte": minor
3+
---
4+
5+
fix(deps): update dependency svelte-eslint-parser to ^0.30.0

.eslintrc.js

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ module.exports = {
3333
usePrettierrc: true,
3434
},
3535
],
36+
"node/no-missing-import": "off", // It's a plugin bug. Should be replaced with eslint-plugin-n.
3637
// Repo rule
3738
"no-restricted-imports": [
3839
"error",

.github/workflows/NodeCI.yml

+28-6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ jobs:
1919
run: |+
2020
pnpm run build
2121
pnpm run lint
22+
- name: Type Coverage
23+
run: pnpm run typecov
2224
build:
2325
runs-on: ubuntu-latest
2426
steps:
@@ -38,7 +40,31 @@ jobs:
3840
matrix:
3941
os: [ubuntu-latest]
4042
eslint: [7, 8]
41-
node: [14, 16, 17, 18, 20]
43+
node: [16, 17, 18, 20]
44+
steps:
45+
- name: Checkout
46+
uses: actions/checkout@v3
47+
- uses: pnpm/action-setup@v2
48+
- name: Setup Node.js ${{ matrix.node }}
49+
uses: actions/setup-node@v3
50+
with:
51+
node-version: ${{ matrix.node }}
52+
- name: Install ESLint ${{ matrix.eslint }}
53+
run: |+
54+
pnpm install -D eslint@${{ matrix.eslint }}
55+
rm -rf node_modules
56+
if: matrix.eslint != 8
57+
- name: Install Packages
58+
run: pnpm install
59+
- name: Test
60+
run: pnpm run test
61+
test-for-svelte-v3:
62+
name: Test for Svelte v3
63+
runs-on: ${{ matrix.os }}
64+
strategy:
65+
matrix:
66+
os: [ubuntu-latest]
67+
node: [14]
4268
steps:
4369
- name: Checkout
4470
uses: actions/checkout@v3
@@ -53,16 +79,12 @@ jobs:
5379
rm -rf node_modules
5480
- name: Install ESLint ${{ matrix.eslint }}
5581
run: |+
56-
pnpm install -D eslint@${{ matrix.eslint }}
82+
pnpm install -D svelte@3
5783
rm -rf node_modules
58-
rm -rf pnpm-lock.yaml
59-
if: matrix.eslint != 8
6084
- name: Install Packages
6185
run: pnpm install
6286
- name: Test
6387
run: pnpm run test
64-
- name: Type Coverage
65-
run: pnpm run typecov
6688
update-resources:
6789
runs-on: ubuntu-latest
6890
steps:

docs-svelte-kit/src/lib/header/Header.svelte

+7-5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
<div class="corner">
1717
<div
1818
class="sidebar-button"
19+
role="button"
20+
tabindex="0"
1921
on:click={handleToggleSidebar}
2022
on:keydown={(e) =>
2123
(e.code === "Enter" || e.code === "Space") && handleToggleSidebar()}
@@ -44,20 +46,20 @@
4446
</svg>
4547
<ul>
4648
<li class:active={isActive("/", $page)}>
47-
<a sveltekit:prefetch href="{baseUrl}/">Home</a>
49+
<a href="{baseUrl}/">Home</a>
4850
</li>
4951
<li class:active={isActive("/user-guide/", $page)}>
50-
<a sveltekit:prefetch href="{baseUrl}/user-guide/">User Guide</a>
52+
<a href="{baseUrl}/user-guide/">User Guide</a>
5153
</li>
5254
<li class:active={isActive("/rules/", $page)}>
53-
<a sveltekit:prefetch href="{baseUrl}/rules/">Rules</a>
55+
<a href="{baseUrl}/rules/">Rules</a>
5456
</li>
5557
<li class:active={isActive("/playground/", $page)}>
56-
<a sveltekit:prefetch href="{baseUrl}/playground/">Playground</a>
58+
<a href="{baseUrl}/playground/">Playground</a>
5759
</li>
5860
</ul>
5961
<div class="nav-title">
60-
<a sveltekit:prefetch href="{baseUrl}/">
62+
<a href="{baseUrl}/">
6163
<img src={logo} alt="Logo" />eslint-plugin-svelte</a
6264
>
6365
</div>

docs-svelte-kit/src/routes/+layout.svelte

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
<SideMenu {sidebarOpen} hiddenMenu={frontmatter.hiddenMenu} />
3535

36+
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
3637
<main
3738
class:hidden-menu={frontmatter.hiddenMenu}
3839
on:click={sidebarOpen ? resetSidebarOpen : null}

package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
},
6060
"peerDependencies": {
6161
"eslint": "^7.0.0 || ^8.0.0-0",
62-
"svelte": "^3.37.0"
62+
"svelte": "^3.37.0 || ^4.0.0-0"
6363
},
6464
"peerDependenciesMeta": {
6565
"svelte": {
@@ -75,7 +75,7 @@
7575
"postcss": "^8.4.5",
7676
"postcss-load-config": "^3.1.4",
7777
"postcss-safe-parser": "^6.0.0",
78-
"svelte-eslint-parser": "^0.29.0"
78+
"svelte-eslint-parser": "^0.30.0"
7979
},
8080
"devDependencies": {
8181
"@1stg/browserslist-config": "^1.2.3",
@@ -163,9 +163,9 @@
163163
"stylelint": "^15.0.0",
164164
"stylelint-config-standard": "^33.0.0",
165165
"stylus": "^0.59.0",
166-
"svelte": "^3.59.1",
166+
"svelte": "^4.0.0-0",
167167
"svelte-adapter-ghpages": "0.1.0",
168-
"svelte-i18n": "^3.4.0",
168+
"svelte-i18n": "^3.6.0",
169169
"tslib": "^2.5.0",
170170
"type-coverage": "^2.22.0",
171171
"typescript": "^5.0.0",

0 commit comments

Comments
 (0)