]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
feat(compiler-sfc): expose parseCache
authorEvan You <yyx990803@gmail.com>
Mon, 1 May 2023 03:30:58 +0000 (11:30 +0800)
committerEvan You <yyx990803@gmail.com>
Mon, 1 May 2023 03:33:07 +0000 (11:33 +0800)
So that users can adjust cache's max size.
close #8202

packages/compiler-sfc/src/cache.ts
packages/compiler-sfc/src/index.ts
packages/compiler-sfc/src/parse.ts

index eb6bad0f86de8f1bf28da1f81b0414f285026688..36d240810c766204c56656747a526fe20710c1eb 100644 (file)
@@ -1,6 +1,6 @@
 import LRU from 'lru-cache'
 
-export function createCache<T>(size = 500) {
+export function createCache<T>(size = 500): Map<string, T> & { max?: number } {
   if (__GLOBAL__ || __ESM_BROWSER__) {
     return new Map<string, T>()
   }
index 78a89c7b4985853d5cf321a432b47dcfc45531fe..3821c255d5221bf15846ade28bbca2d01ecf9490 100644 (file)
@@ -1,7 +1,7 @@
 export const version = __VERSION__
 
 // API
-export { parse } from './parse'
+export { parse, parseCache } from './parse'
 export { compileTemplate } from './compileTemplate'
 export { compileStyle, compileStyleAsync } from './compileStyle'
 export { compileScript } from './compileScript'
index 29c91cc1977d01a699fe8bb6b81b96f4b4cb1861..da8cf6d866948ced76f02aae18463d0f5d092833 100644 (file)
@@ -93,7 +93,7 @@ export interface SFCParseResult {
   errors: (CompilerError | SyntaxError)[]
 }
 
-const sourceToSFC = createCache<SFCParseResult>()
+export const parseCache = createCache<SFCParseResult>()
 
 export function parse(
   source: string,
@@ -108,7 +108,7 @@ export function parse(
 ): SFCParseResult {
   const sourceKey =
     source + sourceMap + filename + sourceRoot + pad + compiler.parse
-  const cache = sourceToSFC.get(sourceKey)
+  const cache = parseCache.get(sourceKey)
   if (cache) {
     return cache
   }
@@ -284,7 +284,7 @@ export function parse(
     descriptor,
     errors
   }
-  sourceToSFC.set(sourceKey, result)
+  parseCache.set(sourceKey, result)
   return result
 }