Skip to content

Commit

Permalink
feat: add Svelte 4 support (#32)
Browse files Browse the repository at this point in the history
* Migrate to Svelte 4

* Remove pnpm and fix peer deps

* Update to use new svelte package

---------
  • Loading branch information
MattheousDT committed Aug 24, 2023
1 parent 469aa41 commit 25c7fcd
Show file tree
Hide file tree
Showing 12 changed files with 2,960 additions and 4,512 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ node_modules
/build
/.svelte-kit
/package
/dist
.vercel_build_output
7,364 changes: 2,903 additions & 4,461 deletions package-lock.json

Large diffs are not rendered by default.

36 changes: 25 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,33 @@
"url": "https://github.com/portabletext/svelte-portabletext/issues"
},
"homepage": "https://github.com/portabletext/svelte-portabletext#readme",
"files": [
"dist"
],
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/bar.js",
"svelte": "./dist/index.js"
}
},
"scripts": {
"dev": "svelte-kit dev",
"build:site": "svelte-kit build",
"package": "svelte-kit package",
"package": "svelte-kit sync && svelte-package",
"preview": "svelte-kit preview",
"lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .",
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. .",
"prepublish": "npm run package && cd package",
"prepublish": "npm run package && cd dist",
"test": "vitest",
"test:ui": "vitest --ui"
},
"devDependencies": {
"@portabletext/types": "^2.0.1",
"@sveltejs/adapter-auto": "^1.0.0-next.43",
"@sveltejs/kit": "^1.0.0-next.334",
"@sveltejs/vite-plugin-svelte": "^1.0.0-next.44",
"@sveltejs/adapter-auto": "^2.1.0",
"@sveltejs/kit": "^1.20.4",
"@sveltejs/package": "^2.0.2",
"@sveltejs/vite-plugin-svelte": "^2.4.1",
"@testing-library/svelte": "^3.1.1",
"@typescript-eslint/eslint-plugin": "^5.25.0",
"@typescript-eslint/parser": "^5.25.0",
Expand All @@ -37,15 +48,18 @@
"eslint-plugin-svelte3": "^4.0.0",
"jsdom": "^21.1.0",
"prettier": "^2.6.2",
"prettier-plugin-svelte": "^2.7.0",
"svelte": "^3.48.0",
"svelte-preprocess": "^4.10.6",
"svelte2tsx": "^0.5.10",
"typescript": "^4.6.4",
"prettier-plugin-svelte": "^2.10.1",
"svelte": "^4.0.0",
"svelte-preprocess": "^5.0.3",
"svelte2tsx": "^0.6.16",
"typescript": "^5.0.0",
"vitest": "latest"
},
"peerDependencies": {
"svelte": "^3.47.0"
"svelte": ">=3.47.0 <5.0.0"
},
"overrides": {
"svelte": "^4.0.0"
},
"type": "module",
"dependencies": {
Expand Down
24 changes: 12 additions & 12 deletions src/lib/rendererTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import type {
PortableTextListItemType,
PortableTextMarkDefinition
} from '@portabletext/types'
import type {SvelteComponent, SvelteComponentTyped} from 'svelte'
import type {SvelteComponent} from 'svelte'
import type {
InputValue,
NormalizedBlocks,
Expand Down Expand Up @@ -167,7 +167,7 @@ export interface PortableTextSvelteComponents {
* Component to use for rendering "hard breaks", eg `\n` inside of text spans
* Will by default render a `<br />`. Pass `false` to render as-is (`\n`)
*/
hardBreak: SvelteComponentTyped<never> | typeof SvelteComponent | false
hardBreak: SvelteComponent<never> | typeof SvelteComponent<any> | false

/* eslint-disable */
/**
Expand Down Expand Up @@ -205,31 +205,31 @@ export type PortableTextComponents = Partial<PortableTextSvelteComponents>
// Unfortunately Svelte components don't play nicely with Typescript,
// so we need to `| any` all of these types
type BlockComponent =
| SvelteComponentTyped<{
| SvelteComponent<{
portableText: BlockComponentProps
}>
| typeof SvelteComponent
| typeof SvelteComponent<any>

type CustomBlockComponent =
| SvelteComponentTyped<{
| SvelteComponent<{
portableText: CustomBlockComponentProps
}>
| typeof SvelteComponent
| typeof SvelteComponent<any>

type MarkComponent =
| SvelteComponentTyped<{
| SvelteComponent<{
portableText: MarkComponentProps
}>
| typeof SvelteComponent
| typeof SvelteComponent<any>

type ListComponent =
| SvelteComponentTyped<{
| SvelteComponent<{
portableText: ListComponentProps
}>
| typeof SvelteComponent
| typeof SvelteComponent<any>

type ListItemComponent =
| SvelteComponentTyped<{
| SvelteComponent<{
portableText: ListItemComponentProps
}>
| typeof SvelteComponent
| typeof SvelteComponent<any>
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script>
import PortableText from '$lib/PortableText.svelte'
import blocksLists from '../dummyData/basicBlocks'
import blocksLists from '../../dummyData/basicBlocks'
</script>

<PortableText value={blocksLists} />
20 changes: 10 additions & 10 deletions src/routes/custom.svelte → src/routes/custom/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<script>
import PortableText from '$lib/PortableText.svelte'
import Hero from '../customComponents/Hero.svelte'
import Code from '../customComponents/Code.svelte'
import Image from '../customComponents/Image.svelte'
import blocks from '../dummyData/custom'
import Greeter from '../customComponents/Greeter.svelte'
import Abbreviation from '../customComponents/Abbreviation.svelte'
import Fun from '../customComponents/Fun.svelte'
import Link from '../customComponents/Link.svelte'
import Footnote from '../customComponents/Footnote.svelte'
import SingleComponentBlock from '../customComponents/SingleComponentBlock.svelte'
import Hero from '../../customComponents/Hero.svelte'
import Code from '../../customComponents/Code.svelte'
import Image from '../../customComponents/Image.svelte'
import blocks from '../../dummyData/custom'
import Greeter from '../../customComponents/Greeter.svelte'
import Abbreviation from '../../customComponents/Abbreviation.svelte'
import Fun from '../../customComponents/Fun.svelte'
import Link from '../../customComponents/Link.svelte'
import Footnote from '../../customComponents/Footnote.svelte'
import SingleComponentBlock from '../../customComponents/SingleComponentBlock.svelte'
$: footnotes = blocks.reduce((notes, curBlock) => {
if (curBlock._type !== 'block' || !curBlock.markDefs?.length) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<script>
import PortableText from '$lib/PortableText.svelte'
import UnknownMark from '../customComponents/CustomUnknownMark.svelte'
import UnknownType from '../customComponents/CustomUnknownType.svelte'
import UnknownMark from '../../customComponents/CustomUnknownMark.svelte'
import UnknownType from '../../customComponents/CustomUnknownType.svelte'
import fallbacks from '../dummyData/fallbacks'
import fallbacks from '../../dummyData/fallbacks'
</script>

<PortableText
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script>
import PortableText from '$lib/PortableText.svelte'
import CustomHardBreak from '../customComponents/CustomHardBreak.svelte'
import CustomHardBreak from '../../customComponents/CustomHardBreak.svelte'
</script>

<PortableText
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script>
import PortableText from '$lib/PortableText.svelte'
import CustomList from '../customComponents/CustomList.svelte'
import CustomListItem from '../customComponents/CustomListItem.svelte'
import blocks from '../dummyData/listStressTest'
import CustomList from '../../customComponents/CustomList.svelte'
import CustomListItem from '../../customComponents/CustomListItem.svelte'
import blocks from '../../dummyData/listStressTest'
</script>

<PortableText
Expand Down
11 changes: 1 addition & 10 deletions svelte.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,7 @@ const config = {
preprocess: preprocess(),

kit: {
adapter: adapter(),
package: {
// Only include index.ts to the package.json definitions
exports: (filePath) => {
if (filePath.includes('index')) {
return true
}
return false
}
}
adapter: adapter()
}
}

Expand Down

0 comments on commit 25c7fcd

Please sign in to comment.