Compare commits

...

2 Commits

Author SHA1 Message Date
Ilia Mashkov
7c94622b95 fix(setup): fix tsconfig to work with bundler module resolution 2025-12-30 19:07:51 +03:00
Ilia Mashkov
f3315be32d chore(setup): migrate from SvelteKit to Svelte 2025-12-30 18:57:58 +03:00
16 changed files with 94 additions and 189 deletions

1
.gitignore vendored
View File

@@ -8,6 +8,7 @@ node_modules
.wrangler .wrangler
/.svelte-kit /.svelte-kit
/build /build
/dist
# OS # OS
.DS_Store .DS_Store

Binary file not shown.

12
index.html Normal file
View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>glyphdiff</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

View File

@@ -4,12 +4,12 @@
"version": "0.0.1", "version": "0.0.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite dev", "dev": "vite",
"build": "vite build", "build": "vite build",
"preview": "vite preview", "preview": "vite preview",
"prepare": "svelte-kit sync || echo ''", "prepare": "svelte-check --tsconfig ./tsconfig.json || echo ''",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check": "svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "oxlint", "lint": "oxlint",
"format": "dprint fmt", "format": "dprint fmt",
"format:check": "dprint check", "format:check": "dprint check",
@@ -19,8 +19,6 @@
"devDependencies": { "devDependencies": {
"@lucide/svelte": "^0.562.0", "@lucide/svelte": "^0.562.0",
"@playwright/test": "^1.57.0", "@playwright/test": "^1.57.0",
"@sveltejs/adapter-auto": "^7.0.0",
"@sveltejs/kit": "^2.49.1",
"@sveltejs/vite-plugin-svelte": "^6.2.1", "@sveltejs/vite-plugin-svelte": "^6.2.1",
"@tailwindcss/vite": "^4.1.18", "@tailwindcss/vite": "^4.1.18",
"clsx": "^2.1.1", "clsx": "^2.1.1",

View File

@@ -1,6 +1,6 @@
import { defineConfig } from '@playwright/test'; import { defineConfig } from '@playwright/test';
export default defineConfig({ export default defineConfig({
webServer: { command: 'npm run build && npm run preview', port: 4173 }, webServer: { command: 'yarn build && yarn preview', port: 4173 },
testDir: 'e2e', testDir: 'e2e',
}); });

17
src/App.svelte Normal file
View File

@@ -0,0 +1,17 @@
<script lang="ts">
import './app.css';
import Page from './routes/Page.svelte';
</script>
<svelte:head> </svelte:head>
<div id="app-root">
<Page />
</div>
<style>
#app-root {
width: 100%;
height: 100vh;
}
</style>

13
src/app.d.ts vendored
View File

@@ -1,13 +0,0 @@
// See https://svelte.dev/docs/kit/types#app.d.ts
// for information about these interfaces
declare global {
namespace App {
// interface Error {}
// interface Locals {}
// interface PageData {}
// interface PageState {}
// interface Platform {}
}
}
export {};

View File

@@ -1,11 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

6
src/main.ts Normal file
View File

@@ -0,0 +1,6 @@
import { mount } from 'svelte';
import App from './App.svelte';
mount(App, {
target: document.getElementById('app')!,
});

View File

@@ -1,11 +0,0 @@
<script lang="ts">
import favicon from '$lib/assets/favicon.svg';
import '../app.css';
let { children } = $props();
</script>
<svelte:head>
<link rel="icon" href={favicon} />
</svelte:head>
{@render children()}

View File

@@ -1,9 +0,0 @@
<script>
import Button from '$lib/components/ui/button/button.svelte';
</script>
<h1>Welcome to SvelteKit</h1>
<p>
Visit <a href="https://svelte.dev/docs/kit">svelte.dev/docs/kit</a> to read the documentation
</p>
<Button>Click me!</Button>

9
src/routes/Page.svelte Normal file
View File

@@ -0,0 +1,9 @@
<script>
import Button from '$lib/components/ui/button/button.svelte';
</script>
<h1>Welcome to Svelte + Vite</h1>
<p>
Visit <a href="https://svelte.dev/docs">svelte.dev/docs</a> to read the documentation
</p>
<Button>Click me!</Button>

View File

@@ -1,7 +1,5 @@
import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
const config = { const config = {
// Consult https://svelte.dev/docs/kit/integrations // Consult https://svelte.dev/docs/kit/integrations
// for more information about preprocessors // for more information about preprocessors
@@ -10,13 +8,6 @@ const config = {
compilerOptions: { compilerOptions: {
runes: true, runes: true,
}, },
kit: {
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
adapter: adapter(),
},
}; };
export default config; export default config;

View File

@@ -1,7 +1,12 @@
{ {
"extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": { "compilerOptions": {
"rewriteRelativeImportExtensions": true, "module": "ESNext",
"moduleResolution": "bundler",
"target": "ESNext",
"lib": ["ESNext", "DOM", "DOM.Iterable"],
/* Strictness & Safety */
"strict": true,
"allowJs": true, "allowJs": true,
"checkJs": true, "checkJs": true,
"esModuleInterop": true, "esModuleInterop": true,
@@ -9,13 +14,24 @@
"resolveJsonModule": true, "resolveJsonModule": true,
"skipLibCheck": true, "skipLibCheck": true,
"sourceMap": true, "sourceMap": true,
"strict": true, "isolatedModules": true,
"moduleResolution": "bundler" "verbatimModuleSyntax": true,
/* Path Aliases */
"baseUrl": ".",
"paths": {
"$lib/*": ["./src/lib/*"]
}
}, },
"exclude": ["./src/lib/components/ui"] "include": [
// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias "src/**/*.ts",
// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files "src/**/*.js",
// "src/**/*.svelte",
// To make changes to top-level options such as include and exclude, we recommend extending "src/**/*.d.ts"
// the generated config; see https://svelte.dev/docs/kit/configuration#typescript ],
"exclude": [
"node_modules",
"dist",
"./src/lib/components/ui"
]
} }

View File

@@ -1,7 +1,15 @@
import { sveltekit } from '@sveltejs/kit/vite'; import { svelte } from '@sveltejs/vite-plugin-svelte';
import tailwindcss from '@tailwindcss/vite'; import tailwindcss from '@tailwindcss/vite';
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
export default defineConfig({ export default defineConfig({
plugins: [sveltekit(), tailwindcss()], plugins: [svelte(), tailwindcss()],
resolve: {
alias: {
$lib: '/src/lib',
},
},
build: {
outDir: 'dist',
},
}); });

125
yarn.lock
View File

@@ -357,13 +357,13 @@ __metadata:
linkType: hard linkType: hard
"@napi-rs/wasm-runtime@npm:^1.1.0": "@napi-rs/wasm-runtime@npm:^1.1.0":
version: 1.1.0 version: 1.1.1
resolution: "@napi-rs/wasm-runtime@npm:1.1.0" resolution: "@napi-rs/wasm-runtime@npm:1.1.1"
dependencies: dependencies:
"@emnapi/core": "npm:^1.7.1" "@emnapi/core": "npm:^1.7.1"
"@emnapi/runtime": "npm:^1.7.1" "@emnapi/runtime": "npm:^1.7.1"
"@tybys/wasm-util": "npm:^0.10.1" "@tybys/wasm-util": "npm:^0.10.1"
checksum: 10c0/ee351052123bfc635c4cef03ac273a686522394ccd513b1e5b7b3823cecd6abb4a31f23a3a962933192b87eb7b7c3eb3def7748bd410edc66f932d90cf44e9ab checksum: 10c0/04d57b67e80736e41fe44674a011878db0a8ad893f4d44abb9d3608debb7c174224cba2796ed5b0c1d367368159f3ca6be45f1c59222f70e32ddc880f803d447
languageName: node languageName: node
linkType: hard linkType: hard
@@ -456,13 +456,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@polka/url@npm:^1.0.0-next.24":
version: 1.0.0-next.29
resolution: "@polka/url@npm:1.0.0-next.29"
checksum: 10c0/0d58e081844095cb029d3c19a659bfefd09d5d51a2f791bc61eba7ea826f13d6ee204a8a448c2f5a855c17df07b37517373ff916dd05801063c0568ae9937684
languageName: node
linkType: hard
"@rollup/rollup-android-arm-eabi@npm:4.54.0": "@rollup/rollup-android-arm-eabi@npm:4.54.0":
version: 4.54.0 version: 4.54.0
resolution: "@rollup/rollup-android-arm-eabi@npm:4.54.0" resolution: "@rollup/rollup-android-arm-eabi@npm:4.54.0"
@@ -617,13 +610,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@standard-schema/spec@npm:^1.0.0":
version: 1.1.0
resolution: "@standard-schema/spec@npm:1.1.0"
checksum: 10c0/d90f55acde4b2deb983529c87e8025fa693de1a5e8b49ecc6eb84d1fd96328add0e03d7d551442156c7432fd78165b2c26ff561b970a9a881f046abb78d6a526
languageName: node
linkType: hard
"@sveltejs/acorn-typescript@npm:^1.0.5": "@sveltejs/acorn-typescript@npm:^1.0.5":
version: 1.0.8 version: 1.0.8
resolution: "@sveltejs/acorn-typescript@npm:1.0.8" resolution: "@sveltejs/acorn-typescript@npm:1.0.8"
@@ -633,46 +619,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@sveltejs/adapter-auto@npm:^7.0.0":
version: 7.0.0
resolution: "@sveltejs/adapter-auto@npm:7.0.0"
peerDependencies:
"@sveltejs/kit": ^2.0.0
checksum: 10c0/928393d4e366a0094bec5e09c70e44c3c7b5f17687f1735f71eb305e1ae640c64cd9f7d8f80d8b31dcaa235ae2b07e0f021a9204b5cec895d5bd8035064c9195
languageName: node
linkType: hard
"@sveltejs/kit@npm:^2.49.1":
version: 2.49.2
resolution: "@sveltejs/kit@npm:2.49.2"
dependencies:
"@standard-schema/spec": "npm:^1.0.0"
"@sveltejs/acorn-typescript": "npm:^1.0.5"
"@types/cookie": "npm:^0.6.0"
acorn: "npm:^8.14.1"
cookie: "npm:^0.6.0"
devalue: "npm:^5.3.2"
esm-env: "npm:^1.2.2"
kleur: "npm:^4.1.5"
magic-string: "npm:^0.30.5"
mrmime: "npm:^2.0.0"
sade: "npm:^1.8.1"
set-cookie-parser: "npm:^2.6.0"
sirv: "npm:^3.0.0"
peerDependencies:
"@opentelemetry/api": ^1.0.0
"@sveltejs/vite-plugin-svelte": ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0
peerDependenciesMeta:
"@opentelemetry/api":
optional: true
bin:
svelte-kit: svelte-kit.js
checksum: 10c0/05bf6d0d9fb87d894d1a5667f0473d8e83a4584f5c80850ed9eef1d1c8982236ea0d703bbd83befdff30c729d102fc67f2839014d900edb15f6b449ee059b9aa
languageName: node
linkType: hard
"@sveltejs/vite-plugin-svelte-inspector@npm:^5.0.0": "@sveltejs/vite-plugin-svelte-inspector@npm:^5.0.0":
version: 5.0.1 version: 5.0.1
resolution: "@sveltejs/vite-plugin-svelte-inspector@npm:5.0.1" resolution: "@sveltejs/vite-plugin-svelte-inspector@npm:5.0.1"
@@ -875,13 +821,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/cookie@npm:^0.6.0":
version: 0.6.0
resolution: "@types/cookie@npm:0.6.0"
checksum: 10c0/5b326bd0188120fb32c0be086b141b1481fec9941b76ad537f9110e10d61ee2636beac145463319c71e4be67a17e85b81ca9e13ceb6e3bb63b93d16824d6c149
languageName: node
linkType: hard
"@types/estree@npm:1.0.8, @types/estree@npm:^1.0.5, @types/estree@npm:^1.0.6": "@types/estree@npm:1.0.8, @types/estree@npm:^1.0.5, @types/estree@npm:^1.0.6":
version: 1.0.8 version: 1.0.8
resolution: "@types/estree@npm:1.0.8" resolution: "@types/estree@npm:1.0.8"
@@ -896,7 +835,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"acorn@npm:^8.12.1, acorn@npm:^8.14.1": "acorn@npm:^8.12.1":
version: 8.15.0 version: 8.15.0
resolution: "acorn@npm:8.15.0" resolution: "acorn@npm:8.15.0"
bin: bin:
@@ -968,13 +907,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cookie@npm:^0.6.0":
version: 0.6.0
resolution: "cookie@npm:0.6.0"
checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686
languageName: node
linkType: hard
"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.4.1": "debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.4.1":
version: 4.4.3 version: 4.4.3
resolution: "debug@npm:4.4.3" resolution: "debug@npm:4.4.3"
@@ -1001,7 +933,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"devalue@npm:^5.3.2, devalue@npm:^5.5.0": "devalue@npm:^5.5.0":
version: 5.6.1 version: 5.6.1
resolution: "devalue@npm:5.6.1" resolution: "devalue@npm:5.6.1"
checksum: 10c0/4dca0e800336003fd1e268c142adfe78f3539cda7384b4f69762a93e0dfc33e223b580251da0a6da4be44962958fcba5eadf122f9720e09f437b28904af9c43e checksum: 10c0/4dca0e800336003fd1e268c142adfe78f3539cda7384b4f69762a93e0dfc33e223b580251da0a6da4be44962958fcba5eadf122f9720e09f437b28904af9c43e
@@ -1168,7 +1100,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"esm-env@npm:^1.2.1, esm-env@npm:^1.2.2": "esm-env@npm:^1.2.1":
version: 1.2.2 version: 1.2.2
resolution: "esm-env@npm:1.2.2" resolution: "esm-env@npm:1.2.2"
checksum: 10c0/3d25c973f2fd69c25ffff29c964399cea573fe10795ecc1d26f6f957ce0483d3254e1cceddb34bf3296a0d7b0f1d53a28992f064ba509dfe6366751e752c4166 checksum: 10c0/3d25c973f2fd69c25ffff29c964399cea573fe10795ecc1d26f6f957ce0483d3254e1cceddb34bf3296a0d7b0f1d53a28992f064ba509dfe6366751e752c4166
@@ -1267,8 +1199,6 @@ __metadata:
dependencies: dependencies:
"@lucide/svelte": "npm:^0.562.0" "@lucide/svelte": "npm:^0.562.0"
"@playwright/test": "npm:^1.57.0" "@playwright/test": "npm:^1.57.0"
"@sveltejs/adapter-auto": "npm:^7.0.0"
"@sveltejs/kit": "npm:^2.49.1"
"@sveltejs/vite-plugin-svelte": "npm:^6.2.1" "@sveltejs/vite-plugin-svelte": "npm:^6.2.1"
"@tailwindcss/vite": "npm:^4.1.18" "@tailwindcss/vite": "npm:^4.1.18"
clsx: "npm:^2.1.1" clsx: "npm:^2.1.1"
@@ -1368,13 +1298,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"kleur@npm:^4.1.5":
version: 4.1.5
resolution: "kleur@npm:4.1.5"
checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a
languageName: node
linkType: hard
"lefthook-darwin-arm64@npm:2.0.13": "lefthook-darwin-arm64@npm:2.0.13":
version: 2.0.13 version: 2.0.13
resolution: "lefthook-darwin-arm64@npm:2.0.13" resolution: "lefthook-darwin-arm64@npm:2.0.13"
@@ -1620,7 +1543,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"magic-string@npm:^0.30.11, magic-string@npm:^0.30.17, magic-string@npm:^0.30.21, magic-string@npm:^0.30.5": "magic-string@npm:^0.30.11, magic-string@npm:^0.30.17, magic-string@npm:^0.30.21":
version: 0.30.21 version: 0.30.21
resolution: "magic-string@npm:0.30.21" resolution: "magic-string@npm:0.30.21"
dependencies: dependencies:
@@ -1740,13 +1663,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"mrmime@npm:^2.0.0":
version: 2.0.1
resolution: "mrmime@npm:2.0.1"
checksum: 10c0/af05afd95af202fdd620422f976ad67dc18e6ee29beb03dd1ce950ea6ef664de378e44197246df4c7cdd73d47f2e7143a6e26e473084b9e4aa2095c0ad1e1761
languageName: node
linkType: hard
"ms@npm:^2.1.3": "ms@npm:^2.1.3":
version: 2.1.3 version: 2.1.3
resolution: "ms@npm:2.1.3" resolution: "ms@npm:2.1.3"
@@ -2020,7 +1936,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"sade@npm:^1.7.4, sade@npm:^1.8.1": "sade@npm:^1.7.4":
version: 1.8.1 version: 1.8.1
resolution: "sade@npm:1.8.1" resolution: "sade@npm:1.8.1"
dependencies: dependencies:
@@ -2045,24 +1961,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"set-cookie-parser@npm:^2.6.0":
version: 2.7.2
resolution: "set-cookie-parser@npm:2.7.2"
checksum: 10c0/4381a9eb7ee951dfe393fe7aacf76b9a3b4e93a684d2162ab35594fa4053cc82a4d7d7582bf397718012c9adcf839b8cd8f57c6c42901ea9effe33c752da4a45
languageName: node
linkType: hard
"sirv@npm:^3.0.0":
version: 3.0.2
resolution: "sirv@npm:3.0.2"
dependencies:
"@polka/url": "npm:^1.0.0-next.24"
mrmime: "npm:^2.0.0"
totalist: "npm:^3.0.0"
checksum: 10c0/5930e4397afdb14fbae13751c3be983af4bda5c9aadec832607dc2af15a7162f7d518c71b30e83ae3644b9a24cea041543cc969e5fe2b80af6ce8ea3174b2d04
languageName: node
linkType: hard
"smart-buffer@npm:^4.2.0": "smart-buffer@npm:^4.2.0":
version: 4.2.0 version: 4.2.0
resolution: "smart-buffer@npm:4.2.0" resolution: "smart-buffer@npm:4.2.0"
@@ -2205,13 +2103,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"totalist@npm:^3.0.0":
version: 3.0.1
resolution: "totalist@npm:3.0.1"
checksum: 10c0/4bb1fadb69c3edbef91c73ebef9d25b33bbf69afe1e37ce544d5f7d13854cda15e47132f3e0dc4cafe300ddb8578c77c50a65004d8b6e97e77934a69aa924863
languageName: node
linkType: hard
"tslib@npm:^2.4.0": "tslib@npm:^2.4.0":
version: 2.8.1 version: 2.8.1
resolution: "tslib@npm:2.8.1" resolution: "tslib@npm:2.8.1"