Skip to content

Commit fc476cf

Browse files
authored
Merge branch 'main' into postcss-style-parsing-parser-services
2 parents 9d280d2 + 2437a81 commit fc476cf

13 files changed

+84
-68
lines changed

.github/workflows/NodeCI.yml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
runs-on: ubuntu-latest
2424
strategy:
2525
matrix:
26-
node-version: [14.x, 16.x, 17.x, 18.x, 19.x]
26+
node-version: [16.x, 17.x, 18.x, 19.x, 20.x]
2727
steps:
2828
- uses: actions/checkout@v3
2929
- uses: pnpm/action-setup@v2
@@ -35,6 +35,26 @@ jobs:
3535
run: pnpm install
3636
- name: Test
3737
run: pnpm run test
38+
test-for-svelte-v3:
39+
runs-on: ubuntu-latest
40+
strategy:
41+
matrix:
42+
node-version: [14.x]
43+
steps:
44+
- uses: actions/checkout@v3
45+
- uses: pnpm/action-setup@v2
46+
- name: Use Node.js ${{ matrix.node-version }}
47+
uses: actions/setup-node@v3
48+
with:
49+
node-version: ${{ matrix.node-version }}
50+
- name: Install Svelte v3
51+
run: |+
52+
pnpm install -D svelte@3
53+
rm -rf node_modules
54+
- name: Install Packages
55+
run: pnpm install
56+
- name: Test
57+
run: pnpm run test
3858
test-for-ts-eslint-v4:
3959
runs-on: ubuntu-latest
4060
strategy:
@@ -49,7 +69,7 @@ jobs:
4969
node-version: ${{ matrix.node-version }}
5070
- name: Install @typescript-eslint v4
5171
run: |+
52-
pnpm install -D @typescript-eslint/parser@4 @typescript-eslint/eslint-plugin@4 eslint@7
72+
pnpm install -D @typescript-eslint/parser@4 @typescript-eslint/eslint-plugin@4 eslint@7 svelte@3
5373
rm -rf node_modules
5474
- name: Install Packages
5575
run: pnpm install
@@ -69,7 +89,7 @@ jobs:
6989
node-version: ${{ matrix.node-version }}
7090
- name: Install eslint v7
7191
run: |+
72-
pnpm install -D eslint@7
92+
pnpm install -D eslint@7 svelte@3
7393
rm -rf node_modules
7494
- name: Install Packages
7595
run: pnpm install

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# svelte-eslint-parser
22

3+
## 0.30.0
4+
5+
### Minor Changes
6+
7+
- [#343](https://github.com/sveltejs/svelte-eslint-parser/pull/343) [`2c76b13`](https://github.com/sveltejs/svelte-eslint-parser/commit/2c76b1378bad41bf8493d06813eb28283755d570) Thanks [@ota-meshi](https://github.com/ota-meshi)! - feat: add experimental support for Svelte v4
8+
39
## 0.29.0
410

511
### 💥 Breaking Changes

explorer-v2/src/lib/Header.svelte

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,14 @@
1414

1515
<header class="header">
1616
<span class="title">svelte-eslint-parser</span>
17-
<a
18-
class="menu"
19-
class:active={isActive($page.url.pathname, `/`)}
20-
sveltekit:prefetch
21-
href="{baseUrl}/">AST</a
22-
>
17+
<a class="menu" class:active={isActive($page.url.pathname, `/`)} href="{baseUrl}/">AST</a>
2318
<a
2419
class="menu"
2520
class:active={isActive($page.url.pathname, `/playground`)}
26-
sveltekit:prefetch
2721
href="{baseUrl}/playground">Playgroud</a
2822
>
29-
<a
30-
class="menu"
31-
class:active={isActive($page.url.pathname, `/scope`)}
32-
sveltekit:prefetch
33-
href="{baseUrl}/scope">Scope</a
23+
<a class="menu" class:active={isActive($page.url.pathname, `/scope`)} href="{baseUrl}/scope"
24+
>Scope</a
3425
>
3526
<a
3627
class="menu"

package.json

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "svelte-eslint-parser",
3-
"version": "0.29.0",
3+
"version": "0.30.0",
44
"description": "Svelte parser for ESLint",
55
"repository": "git+https://github.com/sveltejs/svelte-eslint-parser.git",
66
"homepage": "https://github.com/sveltejs/svelte-eslint-parser#readme",
@@ -10,7 +10,7 @@
1010
],
1111
"funding": "https://github.com/sponsors/ota-meshi",
1212
"license": "MIT",
13-
"packageManager": "pnpm@7.32.5",
13+
"packageManager": "pnpm@7.33.0",
1414
"engines": {
1515
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1616
},
@@ -45,7 +45,7 @@
4545
"version:ci": "env-cmd -e version-ci pnpm run build:meta && changeset version"
4646
},
4747
"peerDependencies": {
48-
"svelte": "^3.37.0"
48+
"svelte": "^3.37.0 || ^4.0.0-0"
4949
},
5050
"peerDependenciesMeta": {
5151
"svelte": {
@@ -60,55 +60,53 @@
6060
"postcss-scss": "^4.0.6"
6161
},
6262
"devDependencies": {
63-
"@changesets/changelog-github": "^0.4.6",
64-
"@changesets/cli": "^2.24.2",
65-
"@changesets/get-release-plan": "^3.0.0",
66-
"@ota-meshi/eslint-plugin": "^0.13.0",
67-
"@types/benchmark": "^2.1.1",
68-
"@types/chai": "^4.3.0",
69-
"@types/eslint": "^8.0.0",
70-
"@types/eslint-scope": "^3.7.0",
63+
"@changesets/changelog-github": "^0.4.8",
64+
"@changesets/cli": "^2.26.1",
65+
"@changesets/get-release-plan": "^3.0.16",
66+
"@ota-meshi/eslint-plugin": "^0.13.7",
67+
"@types/benchmark": "^2.1.2",
68+
"@types/chai": "^4.3.5",
69+
"@types/eslint": "^8.40.1",
70+
"@types/eslint-scope": "^3.7.4",
7171
"@types/eslint-visitor-keys": "^1.0.0",
72-
"@types/estree": "^1.0.0",
73-
"@types/mocha": "^10.0.0",
74-
"@types/node": "^18.11.0",
75-
"@types/semver": "^7.3.9",
76-
"@typescript-eslint/eslint-plugin": "^5.4.0",
77-
"@typescript-eslint/parser": "~5.59.0",
78-
"@typescript-eslint/types": "^5.59.5",
72+
"@types/estree": "^1.0.1",
73+
"@types/mocha": "^10.0.1",
74+
"@types/node": "^18.16.16",
75+
"@types/semver": "^7.5.0",
76+
"@typescript-eslint/eslint-plugin": "^5.59.9",
77+
"@typescript-eslint/parser": "~5.59.9",
78+
"@typescript-eslint/types": "^5.59.9",
7979
"benchmark": "^2.1.4",
80-
"chai": "^4.3.4",
80+
"chai": "^4.3.7",
8181
"env-cmd": "^10.1.0",
82-
"esbuild": "^0.17.0",
83-
"esbuild-register": "^3.3.3",
84-
"eslint": "^8.2.0",
82+
"esbuild": "^0.17.19",
83+
"esbuild-register": "^3.4.2",
84+
"eslint": "^8.42.0",
8585
"eslint-config-prettier": "^8.8.0",
8686
"eslint-plugin-eslint-comments": "^3.2.0",
87-
"eslint-plugin-json-schema-validator": "^4.0.0",
88-
"eslint-plugin-jsonc": "^2.0.0",
87+
"eslint-plugin-json-schema-validator": "^4.5.0",
88+
"eslint-plugin-jsonc": "^2.8.0",
8989
"eslint-plugin-node": "^11.1.0",
9090
"eslint-plugin-node-dependencies": "^0.11.0",
91-
"eslint-plugin-prettier": "^4.0.0",
92-
"eslint-plugin-regexp": "^1.5.0",
93-
"eslint-plugin-svelte": "^2.28.0",
94-
"eslint-plugin-svelte3": "^4.0.0",
95-
"eslint-plugin-yml": "^1.0.0",
96-
"estree-walker": "^3.0.0",
91+
"eslint-plugin-prettier": "^4.2.1",
92+
"eslint-plugin-regexp": "^1.15.0",
93+
"eslint-plugin-svelte": "^2.30.0",
94+
"eslint-plugin-yml": "^1.7.0",
95+
"estree-walker": "^3.0.3",
9796
"locate-character": "^2.0.5",
9897
"magic-string": "^0.30.0",
99-
"mocha": "^10.0.0",
100-
"mocha-chai-jest-snapshot": "^1.1.3",
98+
"mocha": "^10.2.0",
99+
"mocha-chai-jest-snapshot": "^1.1.4",
101100
"nyc": "^15.1.0",
102-
"prettier": "^2.8.0",
103-
"prettier-plugin-pkg": "^0.17.0",
104-
"prettier-plugin-svelte": "^2.10.0",
105-
"rimraf": "^5.0.0",
106-
"semver": "^7.3.5",
107-
"svelte": "^3.57.0",
108-
"svelte2tsx": "^0.6.11",
109-
"typescript": "~5.0.0",
110-
"typescript-eslint-parser-for-extra-files": "^0.5.0",
111-
"vue-eslint-parser": "^9.0.0"
101+
"prettier": "^2.8.8",
102+
"prettier-plugin-pkg": "^0.17.1",
103+
"prettier-plugin-svelte": "^2.10.1",
104+
"rimraf": "^5.0.1",
105+
"semver": "^7.5.1",
106+
"svelte": "^4.0.0-next.1",
107+
"svelte2tsx": "^0.6.15",
108+
"typescript": "~5.1.3",
109+
"typescript-eslint-parser-for-extra-files": "^0.5.0"
112110
},
113111
"publishConfig": {
114112
"access": "public"

src/meta.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
// This file has been automatically generated,
33
// in order to update its content execute "pnpm run build:meta"
44
export const name = "svelte-eslint-parser" as const;
5-
export const version = "0.29.0" as const;
5+
export const version = "0.30.0" as const;

src/parser/template.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type {} from "svelte"; // FIXME: Workaround to get type information for "svelte/compiler"
12
import { parse } from "svelte/compiler";
23
import type * as SvAST from "./svelte-ast-types";
34
import type { Context } from "../context";
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="typescript">
2-
import Component from 'foo.svelte' // Component: typeof SvelteComponentDev
2+
import Component from 'foo.svelte' // Component: any
33
</script>
44
<button on:click="{e=>{}}"></button> <!-- e: MouseEvent & { currentTarget: EventTarget & HTMLButtonElement; } -->
5-
<Component on:click="{e=>{}}"></Component> <!-- Component: typeof SvelteComponentDev, e: CustomEvent<any> -->
5+
<Component on:click="{e=>{}}"></Component> <!-- Component: any, e: any -->

tests/fixtures/parser/ast/ts-event03-type-output.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script lang="ts">
2-
import {createEventDispatcher} from 'svelte' // createEventDispatcher: <EventMap extends {} = any>() => <EventKey extends Extract<keyof EventMap, string>>(type: EventKey, detail?: EventMap[EventKey] | undefined, options?: DispatchOptions | undefined) => boolean, createEventDispatcher: <EventMap extends {} = any>() => <EventKey extends Extract<keyof EventMap, string>>(type: EventKey, detail?: EventMap[EventKey] | undefined, options?: DispatchOptions | undefined) => boolean
3-
const emit = createEventDispatcher<{ // emit: <EventKey extends "foo" | "bar">(type: EventKey, detail?: { foo: number; bar: string; }[EventKey] | undefined, options?: DispatchOptions | undefined) => boolean, createEventDispatcher<{ foo: number, bar: string }>(): <EventKey extends "foo" | "bar">(type: EventKey, detail?: { foo: number; bar: string; }[EventKey] | undefined, options?: DispatchOptions | undefined) => boolean
2+
import {createEventDispatcher} from 'svelte' // createEventDispatcher: <EventMap extends Record<string, any> = any>() => EventDispatcher<EventMap>, createEventDispatcher: <EventMap extends Record<string, any> = any>() => EventDispatcher<EventMap>
3+
const emit = createEventDispatcher<{ // emit: EventDispatcher<{ foo: number; bar: string; }>, createEventDispatcher<{ foo: number, bar: string }>(): EventDispatcher<{ foo: number; bar: string; }>
44
foo: number,
55
bar: string
66
}>()

tests/fixtures/parser/ast/ts-event05-type-output.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<script lang="ts">
2-
import Component from './ts-event03-input.svelte'; // Component: typeof SvelteComponentDev
2+
import Component from './ts-event03-input.svelte'; // Component: any
33
</script>
44

5-
<Component on:foo="{e=>{ // Component: typeof SvelteComponentDev, e: CustomEvent<any>
5+
<Component on:foo="{e=>{ // Component: any, e: any
66
// e.detail is number
77
// `@typescript-eslint/parser` doesn't get the correct types.
88
// Using `typescript-eslint-parser-for-extra-files` will give we the correct types.

tests/fixtures/parser/ast/ts-reactive02-type-output.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="ts">
2-
import { writable } from 'svelte/store'; // writable: <T>(value?: T | undefined, start?: StartStopNotifier<T> | undefined) => Writable<T>, writable: <T>(value?: T | undefined, start?: StartStopNotifier<T> | undefined) => Writable<T>
2+
import { writable } from 'svelte/store'; // writable: <T_1>(value?: T_1 | undefined, start?: StartStopNotifier<T_1> | undefined) => Writable<T_1>, writable: <T_1>(value?: T_1 | undefined, start?: StartStopNotifier<T_1> | undefined) => Writable<T_1>
33
let x = "hello" // x: string
44
const get = ()=>"hello" // get: () => string
55

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy