Skip to content

Commit 38d720d

Browse files
committed
fix(vue): clear model cache on removeModel
1 parent 90e840a commit 38d720d

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

packages/shared/src/types/cache.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,8 @@ export interface Cache<
8686
setState: (state: CustomCacheState) => void
8787

8888
clear: () => void
89+
90+
clearModel: (params: {
91+
model: ResolvedModel<Model, ModelDefaults, ModelList>
92+
}) => void
8993
}

packages/vue/src/cache.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,14 @@ export function createCache<
200200
meta: {},
201201
})
202202
},
203+
clearModel({ model }) {
204+
const itemsForType = state.value[model.name]
205+
if (itemsForType) {
206+
for (const key in itemsForType) {
207+
this.deleteItem({ model, key })
208+
}
209+
}
210+
},
203211
_private: {
204212
state,
205213
wrappedItems,

packages/vue/src/store.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ export function removeModel(store: VueStore, modelName: string) {
146146
throw new Error(`Model ${modelName} not found`)
147147
}
148148

149+
const model = store.$models[index]
150+
store.$cache.clearModel({ model })
151+
149152
store.$models.splice(index, 1)
150153
privateStore.$_modelNames.delete(modelName)
151154
}

0 commit comments

Comments
 (0)