Skip to content

Commit c83abc0

Browse files
committed
maintain backwards compatibility
1 parent 635887e commit c83abc0

File tree

4 files changed

+49
-5
lines changed

4 files changed

+49
-5
lines changed

src/create-zero.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { MaybeRefOrGetter, ShallowRef } from 'vue'
33
import type { QueryResult, UseQueryOptions } from './query'
44
import { Zero } from '@rocicorp/zero'
55
import { shallowRef, toValue, watch } from 'vue'
6-
import { useQuery } from './query'
6+
import { useQueryWithZero } from './query'
77

88
const zeroCleanups = new Set()
99

@@ -23,18 +23,18 @@ export function createZero<S extends Schema = Schema, MD extends CustomMutatorDe
2323
z.value = 'zero' in opts ? opts.zero : new Zero(opts)
2424
}, { deep: true })
2525

26-
function useQueryWrap<
26+
function useQuery<
2727
TTable extends keyof S['tables'] & string,
2828
TReturn,
2929
>(
3030
query: MaybeRefOrGetter<Query<S, TTable, TReturn>>,
3131
options?: MaybeRefOrGetter<UseQueryOptions>,
3232
): QueryResult<TReturn> {
33-
return useQuery(z, query, options)
33+
return useQueryWithZero(query, options, z)
3434
}
3535

3636
return {
3737
useZero: () => z,
38-
useQuery: useQueryWrap,
38+
useQuery,
3939
}
4040
}

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export { createZero } from './create-zero'
22
export type { QueryResult, UseQueryOptions } from './query'
3+
export { useQuery } from './query'

src/query.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { createBuilder, createSchema, number, string, syncedQuery, table } from
44
import { describe, expect, it, vi } from 'vitest'
55
import { ref, watchEffect } from 'vue'
66
import { createZero } from './create-zero'
7+
import { useQuery } from './query'
78
import { VueView, vueViewFactory } from './view'
89

910
async function setupTestEnvironment() {
@@ -317,4 +318,25 @@ describe('useQuery', () => {
317318

318319
z.value.close()
319320
})
321+
322+
it('can still be used without createZero', async () => {
323+
const { z, tableQuery } = await setupTestEnvironment()
324+
325+
const { data: rows, status } = useQuery(() => tableQuery)
326+
expect(rows.value).toMatchInlineSnapshot(`[
327+
{
328+
"a": 1,
329+
"b": "a",
330+
Symbol(rc): 1,
331+
},
332+
{
333+
"a": 2,
334+
"b": "b",
335+
Symbol(rc): 1,
336+
},
337+
]`)
338+
expect(status.value).toEqual('unknown')
339+
340+
z.value.close()
341+
})
320342
})

src/query.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,36 @@ export interface QueryResult<TReturn> {
2525
status: ComputedRef<ResultType>
2626
}
2727

28+
/**
29+
* @deprecated
30+
*
31+
* Use `useQuery` returned from `createZero` instead. This function doesn't
32+
* support Synced Queries, and will be removed in a future version.
33+
*
34+
* @param query The query to execute.
35+
* @param options Options for the query.
36+
* @returns The result of the query.
37+
*/
2838
export function useQuery<
2939
TSchema extends Schema,
3040
TTable extends keyof TSchema['tables'] & string,
3141
TReturn,
42+
>(
43+
query: MaybeRefOrGetter<Query<TSchema, TTable, TReturn>>,
44+
options?: MaybeRefOrGetter<UseQueryOptions>,
45+
): QueryResult<TReturn> {
46+
return useQueryWithZero(query, options)
47+
}
48+
49+
export function useQueryWithZero<
50+
TSchema extends Schema,
51+
TTable extends keyof TSchema['tables'] & string,
52+
TReturn,
3253
MD extends CustomMutatorDefs | undefined = undefined,
3354
>(
34-
z: MaybeRefOrGetter<Zero<TSchema, MD>>,
3555
query: MaybeRefOrGetter<Query<TSchema, TTable, TReturn>>,
3656
options?: MaybeRefOrGetter<UseQueryOptions>,
57+
z?: MaybeRefOrGetter<Zero<TSchema, MD>>,
3758
): QueryResult<TReturn> {
3859
const ttl = computed(() => {
3960
return toValue(options)?.ttl ?? DEFAULT_TTL_MS

0 commit comments

Comments
 (0)