Skip to content

Commit 2110860

Browse files
committed
feat!: partial/experimental support for vue3/vite
Most notably this is lacking ssr support with vue3 pending vuejs/core#3070 see #148 for latest progress & status
1 parent c693a5b commit 2110860

File tree

6 files changed

+56
-33
lines changed

6 files changed

+56
-33
lines changed

package.json

+8-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@
6161
},
6262
"dependencies": {
6363
"minify-groq": "^1.0.0",
64-
"sanity-typed-queries": "^0.7.5"
64+
"sanity-typed-queries": "^0.7.5",
65+
"vue-demi": "^0.7.1"
6566
},
6667
"devDependencies": {
6768
"@babel/core": "^7.13.8",
@@ -104,6 +105,11 @@
104105
},
105106
"peerDependencies": {
106107
"@vue/composition-api": "1.0.0-rc.3",
107-
"vue": "^2"
108+
"vue": "^2.0.0 || >=3.0.0-rc.0"
109+
},
110+
"peerDependenciesMeta": {
111+
"@vue/composition-api": {
112+
"optional": true
113+
}
108114
}
109115
}

src/cache.ts

+24-20
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import { VueConstructor } from 'vue'
1+
import type { VueConstructor } from 'vue'
22
import {
33
computed,
44
getCurrentInstance,
55
isRef,
6-
onServerPrefetch,
76
reactive,
87
Ref,
98
set,
109
unref,
1110
watch,
12-
} from '@vue/composition-api'
11+
Vue2,
12+
} from 'vue-demi'
1313

1414
/**
1515
* Cached data, status of fetch, timestamp of last fetch, error
@@ -178,24 +178,28 @@ export function useCache<T, K = null>(
178178
}
179179
}
180180

181-
onServerPrefetch(async () => {
182-
const k = unref(key)
183-
try {
184-
await fetch(k, verifyKey(k))
185-
// eslint-disable-next-line
186-
} catch {}
187-
if (
188-
ctx &&
189-
cache[k] &&
190-
!['loading', 'initialised'].includes(cache[k]?.[1])
191-
) {
192-
if (ctx.nuxt) {
193-
ctx.nuxt.vsanity[k] = cache[k].slice(0, 3)
194-
} else {
195-
ctx.vsanity[k] = cache[k].slice(0, 3)
181+
if (Vue2) {
182+
const { onServerPrefetch } = require('vue-demi')
183+
184+
onServerPrefetch(async () => {
185+
const k = unref(key)
186+
try {
187+
await fetch(k, verifyKey(k))
188+
// eslint-disable-next-line
189+
} catch {}
190+
if (
191+
ctx &&
192+
cache[k] &&
193+
!['loading', 'initialised'].includes(cache[k]?.[1])
194+
) {
195+
if (ctx.nuxt) {
196+
ctx.nuxt.vsanity[k] = cache[k].slice(0, 3)
197+
} else {
198+
ctx.vsanity[k] = cache[k].slice(0, 3)
199+
}
196200
}
197-
}
198-
})
201+
})
202+
}
199203
}
200204

201205
const data = computed(() => {

src/image.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Ref, inject, computed, InjectionKey } from '@vue/composition-api'
1+
import { Ref, inject, computed, InjectionKey } from 'vue-demi'
22

33
import {
44
FitMode,

src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { provide, inject } from '@vue/composition-api'
1+
import { provide, inject } from 'vue-demi'
22

33
import { ClientConfig } from '@sanity/client'
44

src/query.ts

+1-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
import {
2-
computed,
3-
inject,
4-
watch,
5-
InjectionKey,
6-
Ref,
7-
isRef,
8-
} from '@vue/composition-api'
1+
import { computed, inject, watch, InjectionKey, Ref, isRef } from 'vue-demi'
92
import minifier from 'minify-groq'
103
import type { SanityClient } from '@sanity/client'
114
import type { QueryBuilder } from 'sanity-typed-queries'

yarn.lock

+21-1
Original file line numberDiff line numberDiff line change
@@ -10734,6 +10734,22 @@ __metadata:
1073410734
languageName: node
1073510735
linkType: hard
1073610736

10737+
"vue-demi@npm:^0.7.1":
10738+
version: 0.7.1
10739+
resolution: "vue-demi@npm:0.7.1"
10740+
peerDependencies:
10741+
"@vue/composition-api": ^1.0.0-beta.1
10742+
vue: ^2.6.0 || >=3.0.0-rc.1
10743+
peerDependenciesMeta:
10744+
"@vue/composition-api":
10745+
optional: true
10746+
bin:
10747+
vue-demi-fix: bin/vue-demi-fix.js
10748+
vue-demi-switch: bin/vue-demi-switch.js
10749+
checksum: 95e3a6a17dbad438daca358d9184a0e662a289603e6e5dfa6b7f8fc3d4e1eda2005317fc6b58f37ebf62842d506ee59c6fc5a7d41d1ed5b49a15a6169acbb695
10750+
languageName: node
10751+
linkType: hard
10752+
1073710753
"vue-sanity@workspace:.":
1073810754
version: 0.0.0-use.local
1073910755
resolution: "vue-sanity@workspace:."
@@ -10775,11 +10791,15 @@ __metadata:
1077510791
siroc: ^0.7.0
1077610792
typescript: ^4.2.3
1077710793
vue: 2.6.12
10794+
vue-demi: ^0.7.1
1077810795
vue-server-renderer: ^2.6.12
1077910796
vue-template-compiler: ^2.6.12
1078010797
peerDependencies:
1078110798
"@vue/composition-api": 1.0.0-rc.3
10782-
vue: ^2
10799+
vue: ^2.0.0 || >=3.0.0-rc.0
10800+
peerDependenciesMeta:
10801+
"@vue/composition-api":
10802+
optional: true
1078310803
languageName: unknown
1078410804
linkType: soft
1078510805

0 commit comments

Comments
 (0)