Skip to content

Commit f7cc489

Browse files
committed
fix: always wrap items out of find methods
1 parent bc7d1fa commit f7cc489

File tree

4 files changed

+15
-1
lines changed

4 files changed

+15
-1
lines changed

packages/core/src/query/findFirst.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ async function _findFirst<
141141
})
142142
}
143143
}
144+
145+
result = store.$cache.wrapItem({ model, item: result })
144146
}
145147
}
146148

packages/core/src/query/findMany.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { CustomHookMeta, FindManyOptions, FindOptions, Model, ModelDefaults, QueryResult, ResolvedModel, StoreCore, StoreSchema, WrappedItem, WriteItem } from '@rstore/shared'
1+
import type { CustomHookMeta, FindManyOptions, FindOptions, Model, ModelDefaults, QueryResult, ResolvedModel, ResolvedModelItemBase, StoreCore, StoreSchema, WrappedItem, WriteItem } from '@rstore/shared'
22
import { dedupePromise } from '@rstore/shared'
33
import { defaultMarker, getMarker } from '../cache'
44
import { shouldFetchDataFromFetchPolicy, shouldReadCacheFromFetchPolicy } from '../fetchPolicy'
@@ -155,6 +155,10 @@ async function _findMany<
155155
})
156156
}
157157

158+
if (result?.length) {
159+
result = result.map((item: ResolvedModelItemBase<TModel, TModelDefaults, TSchema>) => store.$cache.wrapItem({ model, item }))
160+
}
161+
158162
return {
159163
result,
160164
marker,

packages/shared/src/types/cache.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,9 @@ export interface Cache<
9898
clearModel: (params: {
9999
model: ResolvedModel<Model, ModelDefaults, StoreSchema>
100100
}) => void
101+
102+
wrapItem: <TModel extends Model = Model>(params: {
103+
model: ResolvedModel<TModel, TModelDefaults, TSchema>
104+
item: ResolvedModelItemBase<TModel, TModelDefaults, TSchema>
105+
}) => WrappedItem<TModel, TModelDefaults, TSchema>
101106
}

packages/vue/src/cache.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ export function createCache<
4949
}
5050

5151
return {
52+
wrapItem({ model, item }) {
53+
return getWrappedItem(model, item)!
54+
},
5255
readItem({ model, key }) {
5356
return getWrappedItem(model, state.value[model.name]?.[key])
5457
},

0 commit comments

Comments
 (0)