Skip to content

Commit 519272b

Browse files
committed
Revert "Add Svelte TypeScript support (#1866)"
This reverts commit c01b56e.
1 parent 683155c commit 519272b

24 files changed

+782
-2482
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88

99
strategy:
1010
matrix:
11-
adapter: ['react', 'vue2', 'vue3', 'svelte']
11+
adapter: ['react', 'vue2', 'vue3']
1212

1313
steps:
1414
- name: Checkout

package-lock.json

Lines changed: 433 additions & 1902 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/svelte/.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
dist
2-
types
32
node_modules
43
package-lock.json
54
yarn.lock
6-
.svelte-kit

packages/svelte/package.json

Lines changed: 8 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
"description": "The Svelte adapter for Inertia.js",
66
"contributors": [
77
"Jonathan Reinink <jonathan@reinink.ca>",
8-
"Pedro Borges <oi@pedroborg.es>",
9-
"Dmytro Morozov <puny.flash@gmail.com>"
8+
"Pedro Borges <oi@pedroborg.es>"
109
],
1110
"homepage": "https://inertiajs.com/",
1211
"repository": {
@@ -20,54 +19,17 @@
2019
"keywords": [
2120
"svelte"
2221
],
23-
"scripts": {
24-
"build": "svelte-kit sync && svelte-package && publint",
25-
"prepublishOnly": "npm run build",
26-
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
27-
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
22+
"exports": {
23+
".": "./src/index.js",
24+
"./server": "./src/server.js"
2825
},
29-
"files": [
30-
"dist",
31-
"!dist/**/*.test.*",
32-
"!dist/**/*.spec.*"
33-
],
26+
"main": "src/index.js",
3427
"peerDependencies": {
3528
"svelte": "^3.20.0 || ^4.0.0"
3629
},
37-
"devDependencies": {
38-
"@sveltejs/adapter-auto": "^3.2.0",
39-
"@sveltejs/kit": "^2.5.5",
40-
"@sveltejs/package": "^2.3.0",
41-
"@sveltejs/vite-plugin-svelte": "^3.0.2",
42-
"publint": "^0.2.7",
43-
"svelte": "^4.2.12",
44-
"svelte-check": "^3.6.8",
45-
"tslib": "^2.6.2",
46-
"typescript": "^5.4.3",
47-
"vite": "^5.2.7"
48-
},
49-
"exports": {
50-
".": {
51-
"types": "./dist/index.d.ts",
52-
"svelte": "./dist/index.js"
53-
},
54-
"./server": {
55-
"types": "./dist/server.d.ts",
56-
"svelte": "./dist/server.js"
57-
}
58-
},
59-
"import": "./dist/index.js",
60-
"types": "./dist/index.d.ts",
61-
"type": "module",
62-
"typesVersions": {
63-
">4.0": {
64-
".": [
65-
"./dist/index.d.ts"
66-
]
67-
}
68-
},
6930
"dependencies": {
70-
"@inertiajs/core": "^1.1.0",
71-
"lodash": "^4.5.0"
31+
"@inertiajs/core": "1.1.0",
32+
"lodash.clonedeep": "^4.5.0",
33+
"lodash.isequal": "^4.5.0"
7234
}
7335
}

packages/svelte/src/lib/components/App.svelte renamed to packages/svelte/src/App.svelte

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
<script lang="ts">
1+
<script>
22
import Render, { h } from './Render.svelte'
3-
import store from '../store'
3+
import store from './store'
44
5-
$$props
6-
7-
$: child = $store.component && h($store.component.default, $store.page?.props)
5+
$: child = $store.component && h($store.component.default, $store.page.props)
86
$: layout = $store.component && $store.component.layout
97
$: components = layout
108
? Array.isArray(layout)
119
? layout
1210
.concat(child)
1311
.reverse()
14-
.reduce((child, layout) => h(layout, $store.page?.props, [child]))
15-
: h(layout, $store.page?.props, [child])
12+
.reduce((child, layout) => h(layout, $store.page.props, [child]))
13+
: h(layout, $store.page.props, [child])
1614
: child
1715
</script>
1816

packages/svelte/src/lib/components/Link.svelte renamed to packages/svelte/src/Link.svelte

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
<script lang="ts">
2-
import type { Method, PreserveStateOption, RequestPayload } from '@inertiajs/core'
1+
<script>
32
import { beforeUpdate } from 'svelte'
4-
import { inertia } from '../index'
3+
import { default as inertia } from './link'
54
6-
export let href: string
7-
export let as: keyof HTMLElementTagNameMap = 'a'
8-
export let data: RequestPayload = {}
9-
export let method: Method = 'get'
10-
export let replace: boolean = false
11-
export let preserveScroll: PreserveStateOption = false
12-
export let preserveState: PreserveStateOption | null = null
13-
export let only: string[] = []
14-
export let except: string[] = []
15-
export let headers: Record<string, string> = {}
16-
export let queryStringArrayFormat: 'brackets' | 'indices' = 'brackets'
5+
export let href
6+
export let as = 'a'
7+
export let data = {}
8+
export let method = 'get'
9+
export let replace = false
10+
export let preserveScroll = false
11+
export let preserveState = null
12+
export let only = []
13+
export let except = []
14+
export let headers = {}
15+
export let queryStringArrayFormat = 'brackets'
1716
1817
beforeUpdate(() => {
1918
if (as === 'a' && method.toLowerCase() !== 'get') {

packages/svelte/src/Render.svelte

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<script context="module">
2+
export const h = (component, props, children) => {
3+
return {
4+
component,
5+
...(props ? { props } : {}),
6+
...(children ? { children } : {}),
7+
}
8+
}
9+
</script>
10+
11+
<script>
12+
import store from './store'
13+
14+
export let component
15+
export let props = {}
16+
export let children = []
17+
18+
let prevComponent
19+
let key
20+
$: {
21+
if (prevComponent !== component) {
22+
key = Date.now()
23+
prevComponent = component
24+
}
25+
}
26+
</script>
27+
28+
{#if $store.component}
29+
{#key key}
30+
<svelte:component this={component} {...props}>
31+
{#each children as child, index (component && component.length === index ? $store.key : null)}
32+
<svelte:self {...child} />
33+
{/each}
34+
</svelte:component>
35+
{/key}
36+
{/if}

packages/svelte/src/lib/components/SSR.svelte renamed to packages/svelte/src/SSR.svelte

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
<script lang="ts">
2-
import type { Page } from '@inertiajs/core'
1+
<script>
32
import App from './App.svelte'
4-
5-
export let id: string
6-
export let initialPage: Page
3+
export let id, initialPage
74
</script>
85

96
<div data-server-rendered="true" {id} data-page={JSON.stringify(initialPage)}>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { router, setupProgress } from '@inertiajs/core'
2+
import App from './App.svelte'
3+
import SSR from './SSR.svelte'
4+
import store from './store'
5+
6+
export default async function createInertiaApp({ id = 'app', resolve, setup, progress = {}, page }) {
7+
const isServer = typeof window === 'undefined'
8+
const el = isServer ? null : document.getElementById(id)
9+
const initialPage = page || JSON.parse(el.dataset.page)
10+
const resolveComponent = (name) => Promise.resolve(resolve(name))
11+
12+
await resolveComponent(initialPage.component).then((initialComponent) => {
13+
store.set({
14+
component: initialComponent,
15+
page: initialPage,
16+
})
17+
})
18+
19+
if (!isServer) {
20+
router.init({
21+
initialPage,
22+
resolveComponent,
23+
swapComponent: async ({ component, page, preserveState }) => {
24+
store.update((current) => ({
25+
component,
26+
page,
27+
key: preserveState ? current.key : Date.now(),
28+
}))
29+
},
30+
})
31+
32+
if (progress) {
33+
setupProgress(progress)
34+
}
35+
36+
return setup({
37+
el,
38+
App,
39+
props: {
40+
initialPage,
41+
resolveComponent,
42+
},
43+
})
44+
}
45+
46+
if (isServer) {
47+
const { html, head } = SSR.render({ id, initialPage })
48+
49+
return {
50+
body: html,
51+
head: [head],
52+
}
53+
}
54+
}

packages/svelte/src/lib/index.ts renamed to packages/svelte/src/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export { router } from '@inertiajs/core'
2-
export { default as Link } from './components/Link.svelte'
2+
export { default as Link } from './Link.svelte'
33
export { default as createInertiaApp } from './createInertiaApp'
44
export { default as inertia } from './link'
55
export { default as page } from './page'

packages/svelte/src/lib/components/Render.svelte

Lines changed: 0 additions & 48 deletions
This file was deleted.

packages/svelte/src/lib/createInertiaApp.ts

Lines changed: 0 additions & 90 deletions
This file was deleted.

0 commit comments

Comments
 (0)