Skip to content

Commit 7baa8e1

Browse files
authored
fix: duplicate initialization of definiteMackData in multi-threads (#133)
1 parent 18e777f commit 7baa8e1

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

vite-plugin-mock-dev-server/src/helper/defineMockData.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,18 @@ export function defineMockData<T = any>(
5858
key: string,
5959
initialData: T,
6060
): MockData<T> {
61-
if (!mockDataCache.has(key))
62-
mockDataCache.set(key, new CacheImpl(initialData))
63-
64-
const cache = mockDataCache.get(key)! as CacheImpl<T>
61+
let cache = mockDataCache.get(key) as CacheImpl<T> | undefined
62+
if (!cache) {
63+
const newCache = new CacheImpl(initialData)
64+
const existing = mockDataCache.get(key)
65+
if (existing) {
66+
cache = existing as CacheImpl<T>
67+
}
68+
else {
69+
mockDataCache.set(key, newCache)
70+
cache = newCache
71+
}
72+
}
6573

6674
cache.hotUpdate(initialData)
6775

0 commit comments

Comments
 (0)