From fe6056896360fde2c40300d4d94e081243871733 Mon Sep 17 00:00:00 2001 From: Simon Emms Date: Thu, 7 Nov 2024 14:11:12 +0000 Subject: [PATCH] feat(js): upgrade to svelte v5 --- js/{{ cookiecutter.project_name }}/.gitignore | 3 +- .../svelte/.eslint.config.js | 33 +++++++++++++++++++ .../svelte/.eslintrc.cjs | 30 ----------------- .../svelte/.github/workflows/deploy.yml | 4 +-- .../svelte/.npmrc | 1 - .../svelte/package.json | 16 ++++----- .../svelte/src/app.d.ts | 3 +- .../svelte/src/app.html | 21 +++++++----- .../svelte/src/routes/+page.svelte | 2 +- .../svelte/tsconfig.json | 8 ++++- 10 files changed, 66 insertions(+), 55 deletions(-) create mode 100644 js/{{ cookiecutter.project_name }}/svelte/.eslint.config.js delete mode 100644 js/{{ cookiecutter.project_name }}/svelte/.eslintrc.cjs diff --git a/js/{{ cookiecutter.project_name }}/.gitignore b/js/{{ cookiecutter.project_name }}/.gitignore index 5b66457..a559457 100644 --- a/js/{{ cookiecutter.project_name }}/.gitignore +++ b/js/{{ cookiecutter.project_name }}/.gitignore @@ -14,9 +14,8 @@ coverage .nyc_output {%- if cookiecutter.type == "svelte" %} -.DS_Store -node_modules /build +.vercel /.svelte-kit /package .env diff --git a/js/{{ cookiecutter.project_name }}/svelte/.eslint.config.js b/js/{{ cookiecutter.project_name }}/svelte/.eslint.config.js new file mode 100644 index 0000000..a526565 --- /dev/null +++ b/js/{{ cookiecutter.project_name }}/svelte/.eslint.config.js @@ -0,0 +1,33 @@ +import prettier from 'eslint-config-prettier'; +import js from '@eslint/js'; +import svelte from 'eslint-plugin-svelte'; +import globals from 'globals'; +import ts from 'typescript-eslint'; + +export default ts.config( + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs['flat/recommended'], + prettier, + ...svelte.configs['flat/prettier'], + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node + } + } + }, + { + files: ['**/*.svelte'], + + languageOptions: { + parserOptions: { + parser: ts.parser + } + } + }, + { + ignores: ['build/', '.svelte-kit/', 'dist/'] + } +); diff --git a/js/{{ cookiecutter.project_name }}/svelte/.eslintrc.cjs b/js/{{ cookiecutter.project_name }}/svelte/.eslintrc.cjs deleted file mode 100644 index ebc1958..0000000 --- a/js/{{ cookiecutter.project_name }}/svelte/.eslintrc.cjs +++ /dev/null @@ -1,30 +0,0 @@ -module.exports = { - root: true, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:svelte/recommended', - 'prettier' - ], - 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/js/{{ cookiecutter.project_name }}/svelte/.github/workflows/deploy.yml b/js/{{ cookiecutter.project_name }}/svelte/.github/workflows/deploy.yml index 2b38207..22e6400 100644 --- a/js/{{ cookiecutter.project_name }}/svelte/.github/workflows/deploy.yml +++ b/js/{{ cookiecutter.project_name }}/svelte/.github/workflows/deploy.yml @@ -74,7 +74,7 @@ jobs: touch build/.nojekyll - name: Upload Artifacts - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v3 with: path: 'build/' @@ -95,4 +95,4 @@ jobs: steps: - name: Deploy id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v4 diff --git a/js/{{ cookiecutter.project_name }}/svelte/.npmrc b/js/{{ cookiecutter.project_name }}/svelte/.npmrc index 0c05da4..b6f27f1 100644 --- a/js/{{ cookiecutter.project_name }}/svelte/.npmrc +++ b/js/{{ cookiecutter.project_name }}/svelte/.npmrc @@ -1,2 +1 @@ engine-strict=true -resolution-mode=highest diff --git a/js/{{ cookiecutter.project_name }}/svelte/package.json b/js/{{ cookiecutter.project_name }}/svelte/package.json index 42fd783..e66bc8a 100644 --- a/js/{{ cookiecutter.project_name }}/svelte/package.json +++ b/js/{{ cookiecutter.project_name }}/svelte/package.json @@ -19,21 +19,21 @@ "devDependencies": { "@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.5.10", - "@sveltejs/vite-plugin-svelte": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^7.10.0", - "@typescript-eslint/parser": "^7.10.0", - "eslint": "^8.57.0", + "@sveltejs/vite-plugin-svelte": "^4.0.0", + "@types/eslint": "^9.6.0", + "eslint": "^9.7.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.39.0", + "globals": "^15.0.0", "prettier": "^3.2.5", "prettier-plugin-organize-imports": "^3.2.4", "prettier-plugin-svelte": "^3.2.3", - "svelte": "^4.2.17", - "svelte-check": "^3.7.1", - "tslib": "^2.6.2", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", "typescript": "^5.4.5", + "typescript-eslint": "^8.0.0", "vite": "^5.2.11", - "vitest": "^1.6.0" + "vitest": "^2.0.0" }, "type": "module" } diff --git a/js/{{ cookiecutter.project_name }}/svelte/src/app.d.ts b/js/{{ cookiecutter.project_name }}/svelte/src/app.d.ts index f59b884..da08e6d 100644 --- a/js/{{ cookiecutter.project_name }}/svelte/src/app.d.ts +++ b/js/{{ cookiecutter.project_name }}/svelte/src/app.d.ts @@ -1,10 +1,11 @@ -// See https://kit.svelte.dev/docs/types#app +// 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 {} } } diff --git a/js/{{ cookiecutter.project_name }}/svelte/src/app.html b/js/{{ cookiecutter.project_name }}/svelte/src/app.html index effe0d0..8ab1224 100644 --- a/js/{{ cookiecutter.project_name }}/svelte/src/app.html +++ b/js/{{ cookiecutter.project_name }}/svelte/src/app.html @@ -1,12 +1,15 @@ - - - - - %sveltekit.head% - - -
%sveltekit.body%
- + + + + + + %sveltekit.head% + + + +
%sveltekit.body%
+ + diff --git a/js/{{ cookiecutter.project_name }}/svelte/src/routes/+page.svelte b/js/{{ cookiecutter.project_name }}/svelte/src/routes/+page.svelte index 5982b0a..cc88df0 100644 --- a/js/{{ cookiecutter.project_name }}/svelte/src/routes/+page.svelte +++ b/js/{{ cookiecutter.project_name }}/svelte/src/routes/+page.svelte @@ -1,2 +1,2 @@

Welcome to SvelteKit

-

Visit kit.svelte.dev to read the documentation

+

Visit svelte.dev/docs/kit to read the documentation

diff --git a/js/{{ cookiecutter.project_name }}/svelte/tsconfig.json b/js/{{ cookiecutter.project_name }}/svelte/tsconfig.json index 5c56cee..f4d0a0e 100644 --- a/js/{{ cookiecutter.project_name }}/svelte/tsconfig.json +++ b/js/{{ cookiecutter.project_name }}/svelte/tsconfig.json @@ -8,6 +8,12 @@ "resolveJsonModule": true, "skipLibCheck": true, "sourceMap": true, - "strict": true + "strict": true, + "moduleResolution": "bundler" } + // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias + // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files + // + // 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 }