mirror of
https://github.com/sveltejs/ai-tools.git
synced 2026-07-06 12:50:53 +08:00
Compare commits
4 Commits
@sveltejs/
...
@sveltejs/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e01a050017 | ||
|
|
5920f7482f | ||
|
|
fa90a2be8d | ||
|
|
73bf0c3782 |
@@ -28,6 +28,7 @@
|
|||||||
"svelte": "^5.39.2",
|
"svelte": "^5.39.2",
|
||||||
"svelte-eslint-parser": "^1.3.2",
|
"svelte-eslint-parser": "^1.3.2",
|
||||||
"tmcp": "^1.13.0",
|
"tmcp": "^1.13.0",
|
||||||
|
"ts-blank-space": "^0.6.2",
|
||||||
"typescript-eslint": "^8.44.0",
|
"typescript-eslint": "^8.44.0",
|
||||||
"valibot": "^1.1.0",
|
"valibot": "^1.1.0",
|
||||||
"vitest": "^3.2.4",
|
"vitest": "^3.2.4",
|
||||||
@@ -35,10 +36,10 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@anthropic-ai/sdk": "^0.65.0",
|
"@anthropic-ai/sdk": "^0.65.0",
|
||||||
"dotenv": "^17.2.3",
|
|
||||||
"@sveltejs/kit": "^2.42.2",
|
"@sveltejs/kit": "^2.42.2",
|
||||||
"@types/eslint-scope": "^8.3.2",
|
"@types/eslint-scope": "^8.3.2",
|
||||||
"@types/estree": "^1.0.8",
|
"@types/estree": "^1.0.8",
|
||||||
"@typescript-eslint/types": "^8.44.0"
|
"@typescript-eslint/types": "^8.44.0",
|
||||||
|
"dotenv": "^17.2.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import { compile } from 'svelte/compiler';
|
import { compile as compile_component, compileModule } from 'svelte/compiler';
|
||||||
|
import { extname } from 'path';
|
||||||
|
import ts from 'ts-blank-space';
|
||||||
|
|
||||||
export function add_compile_issues(
|
export function add_compile_issues(
|
||||||
content: { issues: string[]; suggestions: string[] },
|
content: { issues: string[]; suggestions: string[] },
|
||||||
@@ -6,6 +8,21 @@ export function add_compile_issues(
|
|||||||
desired_svelte_version: number,
|
desired_svelte_version: number,
|
||||||
filename = 'Component.svelte',
|
filename = 'Component.svelte',
|
||||||
) {
|
) {
|
||||||
|
let compile = compile_component;
|
||||||
|
const extension = extname(filename);
|
||||||
|
if (extension !== '.svelte') {
|
||||||
|
compile = compileModule;
|
||||||
|
// compile module doesn't accept .ts files so we need to transpile them first with ts-blank-space
|
||||||
|
// a fast and lightweight typescript transpiler that can strips types replacing them with white spaces
|
||||||
|
// so the code positions are not affected
|
||||||
|
if (extension === '.ts') {
|
||||||
|
code = ts(code, (node) => {
|
||||||
|
content.issues.push(
|
||||||
|
`The provided file is a module but it contains invalid TypeScript code: ${node.getText()} at ${node.getStart()}`,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
const compilation_result = compile(code, {
|
const compilation_result = compile(code, {
|
||||||
filename: filename || 'Component.svelte',
|
filename: filename || 'Component.svelte',
|
||||||
generate: false,
|
generate: false,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ function base_config(svelte_config: Config): ESLint.Options['baseConfig'] {
|
|||||||
return [
|
return [
|
||||||
...svelte.configs.recommended,
|
...svelte.configs.recommended,
|
||||||
{
|
{
|
||||||
files: ['*.svelte'],
|
files: ['*.svelte', '*.svelte.ts', '*.svelte.js'],
|
||||||
rules: {
|
rules: {
|
||||||
'no-self-assign': 'warn',
|
'no-self-assign': 'warn',
|
||||||
'svelte/infinite-reactive-loop': 'warn',
|
'svelte/infinite-reactive-loop': 'warn',
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# @sveltejs/mcp
|
# @sveltejs/mcp
|
||||||
|
|
||||||
|
## 0.0.4
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- fix: allow TS `.svelte.ts` modules ([#49](https://github.com/sveltejs/mcp/pull/49))
|
||||||
|
|
||||||
## 0.0.3
|
## 0.0.3
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@sveltejs/mcp",
|
"name": "@sveltejs/mcp",
|
||||||
"version": "0.0.3",
|
"version": "0.0.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"homepage": "https://github.com/sveltejs/mcp#readme",
|
"homepage": "https://github.com/sveltejs/mcp#readme",
|
||||||
|
|||||||
11
pnpm-lock.yaml
generated
11
pnpm-lock.yaml
generated
@@ -177,6 +177,9 @@ importers:
|
|||||||
tmcp:
|
tmcp:
|
||||||
specifier: ^1.13.0
|
specifier: ^1.13.0
|
||||||
version: 1.14.0(typescript@5.9.2)
|
version: 1.14.0(typescript@5.9.2)
|
||||||
|
ts-blank-space:
|
||||||
|
specifier: ^0.6.2
|
||||||
|
version: 0.6.2
|
||||||
typescript-eslint:
|
typescript-eslint:
|
||||||
specifier: ^8.44.0
|
specifier: ^8.44.0
|
||||||
version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)
|
version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)
|
||||||
@@ -3719,6 +3722,10 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4'
|
typescript: '>=4.8.4'
|
||||||
|
|
||||||
|
ts-blank-space@0.6.2:
|
||||||
|
resolution: {integrity: sha512-hZjcHdHrveEKI67v8OzI90a1bizgoDkY7ekE4fH89qJhZgxvmjfBOv98aibCU7OpKbvV3R9p/qd3DrzZqT1cFQ==}
|
||||||
|
engines: {node: '>=18.0.0'}
|
||||||
|
|
||||||
ts-node@10.9.2:
|
ts-node@10.9.2:
|
||||||
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
|
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -7586,6 +7593,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.9.2
|
typescript: 5.9.2
|
||||||
|
|
||||||
|
ts-blank-space@0.6.2:
|
||||||
|
dependencies:
|
||||||
|
typescript: 5.9.2
|
||||||
|
|
||||||
ts-node@10.9.2(@types/node@24.5.2)(typescript@5.9.2):
|
ts-node@10.9.2(@types/node@24.5.2)(typescript@5.9.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@cspotcode/source-map-support': 0.8.1
|
'@cspotcode/source-map-support': 0.8.1
|
||||||
|
|||||||
Reference in New Issue
Block a user