Skip to content

Commit

Permalink
Merge #130: migrate to svelte 5 and update dependencies
Browse files Browse the repository at this point in the history
3f22176 remove story:build from workflows (Graeme Byrne)
76d7665 fix readingTime error (Graeme Byrne)
eb96c60 fix linting errors (Graeme Byrne)
7b33824 migrate to svelte 5 and update dependencies (Graeme Byrne)

Pull request description:

  * Migrate from Svelte 4 to Svelte 5 as mentioned in this [issue](#106).
  * Update dependencies in `package.json` such as Vite which were preventing the successful migration to Svelte 5.
  * Upgrade ESLint to v9 as v8 has recently reached end of life and is no longer maintained, as mentioned [here](https://eslint.org/docs/latest/use/migrate-to-9.0.0).
  * Upgrade Sass as current syntax is deprecated as mentioned [here](https://sass-lang.com/documentation/breaking-changes/legacy-js-api/)
  * Remove `/contributors` route as it is redundant since we now display GitHub contributors on home page and on Community page. Existing individual contributor pages have been retained and are accessible by clicking on the author's name in the blog post.
  * Remove Histoire as it doesn't support Vite at the minute. There is currently a [PR](histoire-dev/histoire#770) open to fix this, so Histoire can be added back later if needed.
  * When navigating to a new page, the site wouldn't scroll up to the top as would be expected. As found [here](sveltejs/kit#8723), this seems to be a Svelte issue. Solve this by adding the below code to the script block of routes/+layout.svelte and bind to page content:

  ```
  import { onNavigate } from '$app/navigation';
  let contentDiv: HTMLElement | null = null;

  onNavigate((navigation) => {
      return new Promise((resolve) => {
  const transition = document.startViewTransition(async () => {
  if (contentDiv) {
  // Fix scroll
  contentDiv.scrollTop = 0;
  }
  resolve();
  await navigation.complete;
  });
      });
  });

  ...

  <div id="app-container">
      <Header />
      <div bind:this={contentDiv} class="content">
  {@render children?.()}
  <Footer />
      </div>
  </div>
  ```

ACKs for top commit:
  josecelano:
    ACK 3f22176

Tree-SHA512: 09e1042539a441e581eb8cfd759454ac675971acfbf2a0c3fa9eb74693270add836ac2e4864077e09cf29d4cb3be4d232c0dab607685e3f813e2548504ba9cef
  • Loading branch information
josecelano committed Dec 13, 2024
2 parents fb53ec8 + 3f22176 commit d5b55a4
Show file tree
Hide file tree
Showing 113 changed files with 7,982 additions and 5,947 deletions.
13 changes: 0 additions & 13 deletions .eslintignore

This file was deleted.

30 changes: 0 additions & 30 deletions .eslintrc.cjs

This file was deleted.

3 changes: 0 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,3 @@ jobs:

- name: Build
run: npm run build

- name: Story build
run: npm run story:build
82 changes: 82 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import jsConfigs from '@eslint/js';
import typescriptParser from '@typescript-eslint/parser';
import svelteParser from 'svelte-eslint-parser';
import eslintPluginPrettier from 'eslint-plugin-prettier';
import eslintConfigPrettier from 'eslint-config-prettier';
import typescriptEslintPlugin from '@typescript-eslint/eslint-plugin';

export default [
jsConfigs.configs.recommended,

{
languageOptions: {
parser: typescriptParser,
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module',
extraFileExtensions: ['.svelte']
},
globals: {
browser: true,
es2017: true,
node: true,
console: 'readonly'
}
},
ignores: [
'node_modules/',
'build/',
'.svelte-kit/',
'.svelte-kit/output/',
'.env',
'package-lock.json'
],
rules: {
'prettier/prettier': 'error',
'no-sparse-arrays': 'off',
'no-undef': 'off',
'no-useless-escape': 'off',
'no-empty': 'off',
'no-constant-binary-expression': 'off',
'no-unused-vars': 'off',
'no-constant-condition': 'off',
'no-cond-assign': 'off',
'@typescript-eslint/require-await': 'off',
'no-control-regex': 'off',
'no-case-declarations': 'off',
'no-self-assign': 'off',
'no-async-promise-executor': 'off',
'no-fallthrough': 'off',
'no-prototype-builtins': 'off',
'no-redeclare': 'off',
'no-extra-boolean-cast': 'off'
},
plugins: {
prettier: eslintPluginPrettier,
'@typescript-eslint': typescriptEslintPlugin
}
},

{
files: ['*.svelte'],
languageOptions: {
parser: svelteParser,
parserOptions: {
parser: typescriptParser
}
}
},

{
files: ['.svelte-kit/**'],
rules: {
'no-unused-vars': 'off',
'no-control-regex': 'off',
'no-fallthrough': 'off',
'@typescript-eslint/require-await': 'off',
'no-unused-labels': 'off'
}
},

eslintConfigPrettier
];
18 changes: 0 additions & 18 deletions histoire.config.js

This file was deleted.

Loading

0 comments on commit d5b55a4

Please sign in to comment.