From b1454872a74a955ff2dca7014b4549f153686bea Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 19 Nov 2023 04:40:02 -0800 Subject: feat(svelte): complete sveltekit upgrade --- .eslintrc.cjs | 20 ++++-- .npmrc | 1 + bun.lockb | Bin 164012 -> 122410 bytes package.json | 45 ++++++------- playwright.config.js | 9 --- src/app.html | 25 ++++--- src/routes/+layout.svelte | 27 ++++++++ src/routes/+page.svelte | 93 +++++++++++++++++++++++++ src/routes/__layout.svelte | 27 -------- src/routes/api.svelte | 58 ---------------- src/routes/api/+page.svelte | 58 ++++++++++++++++ src/routes/index.svelte | 93 ------------------------- src/routes/language.svelte | 138 -------------------------------------- src/routes/language/+page.svelte | 138 ++++++++++++++++++++++++++++++++++++++ src/routes/languages.svelte | 67 ------------------ src/routes/languages/+page.svelte | 67 ++++++++++++++++++ svelte.config.js | 11 +-- tests/test.js | 6 -- tsconfig.json | 26 ++++++- vite.config.ts | 6 ++ 20 files changed, 463 insertions(+), 452 deletions(-) delete mode 100644 playwright.config.js create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte delete mode 100644 src/routes/__layout.svelte delete mode 100644 src/routes/api.svelte create mode 100644 src/routes/api/+page.svelte delete mode 100644 src/routes/index.svelte delete mode 100644 src/routes/language.svelte create mode 100644 src/routes/language/+page.svelte delete mode 100644 src/routes/languages.svelte create mode 100644 src/routes/languages/+page.svelte delete mode 100644 tests/test.js create mode 100644 vite.config.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 7078b83..04fd192 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,24 +1,30 @@ module.exports = { root: true, - parser: "@typescript-eslint/parser", extends: [ "eslint:recommended", "plugin:@typescript-eslint/recommended", + "plugin:svelte/recommended", "prettier", ], - plugins: ["svelte3", "@typescript-eslint"], - ignorePatterns: ["*.cjs"], - overrides: [{ files: ["*.svelte"], processor: "svelte3/svelte3" }], - settings: { - "svelte3/typescript": () => require("typescript"), - }, + parser: "@typescript-eslint/parser", + plugins: ["@typescript-eslint"], parserOptions: { sourceType: "module", ecmaVersion: 2020, + extraFileExtensions: [".svelte"], }, env: { browser: true, es2017: true, node: true, }, + overrides: [ + { + files: ["*.svelte"], + parser: "svelte-eslint-parser", + parserOptions: { + parser: "@typescript-eslint/parser", + }, + }, + ], }; diff --git a/.npmrc b/.npmrc index b6f27f1..159e258 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ engine-strict=true +resolution-mode=highest \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index cd286b7..e15cd98 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index a0f465b..b6d1622 100644 --- a/package.json +++ b/package.json @@ -18,41 +18,36 @@ "repository": "https://github.com/senpy-club/frontend-next", "private": true, "scripts": { - "dev": "svelte-kit dev", - "build": "svelte-kit build", - "package": "svelte-kit package", - "preview": "svelte-kit preview", - "prepare": "svelte-kit sync", - "test": "playwright test", - "check": "svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .", - "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ." + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --plugin-search-dir . --check . && eslint .", + "format": "prettier --plugin-search-dir . --write ." }, "dependencies": { - "@sveltejs/adapter-static": "1.0.0-next.29", "normalize.css": "8.0.1", "rst2html": "1.0.4", "sakura.css": "1.3.1" }, "devDependencies": { - "@playwright/test": "1.20.0", - "@sveltejs/adapter-auto": "next", - "@sveltejs/adapter-cloudflare": "1.0.0-next.16", - "@sveltejs/kit": "next", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-cloudflare": "^2.3.3", + "@sveltejs/kit": "^1.20.4", "@types/cookie": "0.4.1", - "@typescript-eslint/eslint-plugin": "5.15.0", - "@typescript-eslint/parser": "5.15.0", - "eslint": "8.11.0", - "eslint-config-prettier": "8.5.0", - "eslint-plugin-svelte3": "3.4.1", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "eslint": "^8.28.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-svelte": "^2.30.0", "prettier": "2.6.0", "prettier-plugin-svelte": "2.6.0", - "svelte": "3.46.4", - "svelte-check": "2.4.6", - "svelte-preprocess": "4.10.4", - "tslib": "2.3.1", - "typescript": "4.6.2" + "svelte": "^4.0.5", + "svelte-check": "^3.4.3", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^4.4.2" }, "type": "module" } diff --git a/playwright.config.js b/playwright.config.js deleted file mode 100644 index 8809fca..0000000 --- a/playwright.config.js +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import('@playwright/test').PlaywrightTestConfig} */ -const config = { - webServer: { - command: "npm run build && npm run preview", - port: 3000, - }, -}; - -export default config; diff --git a/src/app.html b/src/app.html index e70b108..e10dd2f 100644 --- a/src/app.html +++ b/src/app.html @@ -1,13 +1,16 @@ - - - - - - %svelte.head% - - -
%svelte.body%
- - + + + + + + + %sveltekit.head% + + + +
%sveltekit.body%
+ + + \ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..2c0f9ba --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,27 @@ + + + +
+ +
+ +
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..241d54d --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,93 @@ + + + + + Home | The Senpy Club + + +
+ {#if !complete} +

Fetching a random image ...

+ {:else} +
+ + An anime girl holding a programming book + +
+ {/if} + +

Related Projects

+ +
    +
  • + API + — The Senpy Club API +
  • +
  • + + Frontend + — You are here! +
  • +
  • + CLI — + Access The Senpy Club API from your terminal! (and export it to files too!) +
  • +
  • + senpy-rs + — Access The Senpy Club API from + Rust! +
  • +
  • + + senpy-ffi + + — Access The Senpy Club API from any programming language! +
  • +
  • + + GraphQL API + + — GraphQL access to The Senpy Club API! (Playground) +
  • +
+
+ + diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte deleted file mode 100644 index 2c0f9ba..0000000 --- a/src/routes/__layout.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - - -
- -
- -
diff --git a/src/routes/api.svelte b/src/routes/api.svelte deleted file mode 100644 index cf4e571..0000000 --- a/src/routes/api.svelte +++ /dev/null @@ -1,58 +0,0 @@ - - - - - API | The Senpy Club - - -
-

- The Senpy Club API can be accessed through - REST - - and - GraphQL - ( - Playground) -

- - {#if !complete} -

Fetching API README ...

- {:else} - {@html rst2html(rst)} - {/if} -
diff --git a/src/routes/api/+page.svelte b/src/routes/api/+page.svelte new file mode 100644 index 0000000..cf4e571 --- /dev/null +++ b/src/routes/api/+page.svelte @@ -0,0 +1,58 @@ + + + + + API | The Senpy Club + + +
+

+ The Senpy Club API can be accessed through + REST + + and + GraphQL + ( + Playground) +

+ + {#if !complete} +

Fetching API README ...

+ {:else} + {@html rst2html(rst)} + {/if} +
diff --git a/src/routes/index.svelte b/src/routes/index.svelte deleted file mode 100644 index 241d54d..0000000 --- a/src/routes/index.svelte +++ /dev/null @@ -1,93 +0,0 @@ - - - - - Home | The Senpy Club - - -
- {#if !complete} -

Fetching a random image ...

- {:else} -
- - An anime girl holding a programming book - -
- {/if} - -

Related Projects

- -
    -
  • - API - — The Senpy Club API -
  • -
  • - - Frontend - — You are here! -
  • -
  • - CLI — - Access The Senpy Club API from your terminal! (and export it to files too!) -
  • -
  • - senpy-rs - — Access The Senpy Club API from - Rust! -
  • -
  • - - senpy-ffi - - — Access The Senpy Club API from any programming language! -
  • -
  • - - GraphQL API - - — GraphQL access to The Senpy Club API! (Playground) -
  • -
-
- - diff --git a/src/routes/language.svelte b/src/routes/language.svelte deleted file mode 100644 index cb1d4cf..0000000 --- a/src/routes/language.svelte +++ /dev/null @@ -1,138 +0,0 @@ - - - - - {language} | The Senpy Club - - -
-

- {language} -

- - {#if !complete} -

Fetching girls ...

- {:else if images.length === 0} -

No images were found for this language.

- {:else if image} - {#if errorImages.includes(image)} -
-

- This image could not be found. -

- - - A confused anime girl - -
- {:else if image} -
- - An anime girl holding a programming book - -
- {/if} - {:else} -
    - {#each images as image} -
  • - - An anime girl holding a programming book - -
  • - {/each} -
- {/if} -
- - diff --git a/src/routes/language/+page.svelte b/src/routes/language/+page.svelte new file mode 100644 index 0000000..cb1d4cf --- /dev/null +++ b/src/routes/language/+page.svelte @@ -0,0 +1,138 @@ + + + + + {language} | The Senpy Club + + +
+

+ {language} +

+ + {#if !complete} +

Fetching girls ...

+ {:else if images.length === 0} +

No images were found for this language.

+ {:else if image} + {#if errorImages.includes(image)} +
+

+ This image could not be found. +

+ + + A confused anime girl + +
+ {:else if image} +
+ + An anime girl holding a programming book + +
+ {/if} + {:else} +
    + {#each images as image} +
  • + + An anime girl holding a programming book + +
  • + {/each} +
+ {/if} +
+ + diff --git a/src/routes/languages.svelte b/src/routes/languages.svelte deleted file mode 100644 index bcbcbec..0000000 --- a/src/routes/languages.svelte +++ /dev/null @@ -1,67 +0,0 @@ - - - - - Languages | The Senpy Club - - -
- {#if !complete} -

Fetching languages ...

- {:else} - - {/if} -
- - diff --git a/src/routes/languages/+page.svelte b/src/routes/languages/+page.svelte new file mode 100644 index 0000000..bcbcbec --- /dev/null +++ b/src/routes/languages/+page.svelte @@ -0,0 +1,67 @@ + + + + + Languages | The Senpy Club + + +
+ {#if !complete} +

Fetching languages ...

+ {:else} + + {/if} +
+ + diff --git a/svelte.config.js b/svelte.config.js index 0b32148..6322225 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,18 +1,11 @@ import adapter from "@sveltejs/adapter-cloudflare"; -import preprocess from "svelte-preprocess"; +import { vitePreprocess } from "@sveltejs/kit/vite"; /** @type {import('@sveltejs/kit').Config} */ const config = { - // Consult https://github.com/sveltejs/svelte-preprocess - // for more information about preprocessors - preprocess: preprocess(), - + preprocess: vitePreprocess(), kit: { adapter: adapter(), - - prerender: { - enabled: true, - }, }, }; diff --git a/tests/test.js b/tests/test.js deleted file mode 100644 index cb82a82..0000000 --- a/tests/test.js +++ /dev/null @@ -1,6 +0,0 @@ -import { expect, test } from "@playwright/test"; - -test("index page has expected h1", async ({ page }) => { - await page.goto("/"); - expect(await page.textContent("h1")).toBe("home"); -}); diff --git a/tsconfig.json b/tsconfig.json index d1deb76..2047e08 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,25 @@ { - "extends": "./.svelte-kit/tsconfig.json" -} + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + + // https://github.com/sveltejs/svelte/blob/master/packages/svelte/tsconfig.json + "stripInternal": true, + + "noImplicitThis": true, + "noUnusedLocals": true, + "noUnusedParameters": true + } + + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..80864b9 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,6 @@ +import { sveltekit } from "@sveltejs/kit/vite"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [sveltekit()], +}); -- cgit v1.2.3