diff --git a/examples/vue-client/src/App.vue b/examples/vue-client/src/App.vue
index c7658c5..818150d 100644
--- a/examples/vue-client/src/App.vue
+++ b/examples/vue-client/src/App.vue
@@ -3,6 +3,8 @@
+
+
List Original
@@ -36,17 +38,23 @@
const todoState = useTodoState()
const todoDubplicateState = useTodoState()
const counter = ref(1)
+ const find = () => todoState.find()
+ const findMars = () =>
+ todoState.find({ filter: { title: { contains: 'Mars' } } })
onMounted(async () => {
const isReplicating = await todoModel.startReplication()
console.log({ isReplicating })
todoState.find()
})
- const addTodo = async (arg?: { standalone?: boolean }) => {
+ const addTodo = async (arg?: {
+ standalone?: boolean
+ title?: string
+ }) => {
const todo: CreateTodoInput = {
_version: 1,
_lastUpdatedAt: Date.now().toString(),
- title: `New todo ${counter.value}`,
+ title: `${arg?.title ?? 'New todo'} ${counter.value}`,
}
counter.value++
if (arg?.standalone) {
@@ -59,7 +67,7 @@
})
}
}
- const addTodoModel = () => addTodo({ standalone: true })
+ const addTodoModel = () => addTodo({ standalone: true, title: 'Mars' })
const removeTodo = async (todo: Todo) => {
await todoState.remove({
input: {
@@ -72,6 +80,8 @@
addTodo,
addTodoModel,
removeTodo,
+ find,
+ findMars,
todoList: todoState.list,
todoDuplicateList: todoDubplicateState.list,
}
diff --git a/packages/cactus-sync-client/lib/src/abstract/ApolloRunner.ts b/packages/cactus-sync-client/lib/src/abstract/ApolloRunner.ts
index 02ed6d5..40c556e 100644
--- a/packages/cactus-sync-client/lib/src/abstract/ApolloRunner.ts
+++ b/packages/cactus-sync-client/lib/src/abstract/ApolloRunner.ts
@@ -1,6 +1,7 @@
import {
ApolloClient,
ApolloClientOptions,
+ FetchPolicy,
FetchResult,
ObservableSubscription,
Observer,
@@ -33,11 +34,13 @@ interface ApolloRunnerSubscribes extends ModelNameReplicationI {
interface ApolloRunnerI {
apollo: ApolloClient
schema: GraphQLSchema
+ defaultFetchPolicy?: Maybe
}
interface ApolloRunnerInitI {
db: Dexie
options: ApolloClientOptions
schema: GraphQLSchema
+ defaultFetchPolicy?: Maybe
}
export type ApolloSubscription = {
@@ -62,9 +65,15 @@ export type ApolloSubscription = {
export class ApolloRunner {
schema: GraphQLSchema
apollo: ApolloClient
- constructor({ schema, apollo }: ApolloRunnerI) {
+ defaultFetchPolicy: FetchPolicy
+ constructor({
+ schema,
+ apollo,
+ defaultFetchPolicy,
+ }: ApolloRunnerI) {
this.apollo = apollo
this.schema = schema
+ this.defaultFetchPolicy = defaultFetchPolicy ?? 'network-only'
}
static init({
options,
@@ -93,6 +102,7 @@ export class ApolloRunner {
return await this.apollo.query({
query: parse(query),
variables: variableValues,
+ fetchPolicy: this.defaultFetchPolicy,
})
}
}
diff --git a/packages/cactus-sync-client/lib/src/abstract/CactusSync.ts b/packages/cactus-sync-client/lib/src/abstract/CactusSync.ts
index 2f16fe9..f1cf01e 100644
--- a/packages/cactus-sync-client/lib/src/abstract/CactusSync.ts
+++ b/packages/cactus-sync-client/lib/src/abstract/CactusSync.ts
@@ -1,6 +1,7 @@
import {
ApolloClientOptions,
ApolloQueryResult,
+ FetchPolicy,
FetchResult,
OperationVariables,
} from '@apollo/client/core'
@@ -25,6 +26,7 @@ interface CactusSyncI {
interface CactusSyncInitI extends CactusSyncI {
schema: GraphQLSchema
apolloOptions: ApolloClientOptions
+ defaultFetchPolicy?: Maybe
}
/**
* Function type to run after CactusSync(Dexie) change
@@ -79,6 +81,7 @@ export class CactusSync extends Dexie {
dbVersion,
apolloOptions,
schema,
+ defaultFetchPolicy,
}: CactusSyncInitI) {
super(dbName ?? 'cactusSyncDb', dexieOptions ?? undefined)
const db = this
@@ -89,6 +92,7 @@ export class CactusSync extends Dexie {
db: db,
options: apolloOptions,
schema,
+ defaultFetchPolicy,
})
}
/**