Parcourir la source

feat(compiler-sfc): expose parseCache

So that users can adjust cache's max size.
close #8202
Evan You il y a 3 ans
Parent
commit
45765488d4

+ 1 - 1
packages/compiler-sfc/src/cache.ts

@@ -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>()
   }

+ 1 - 1
packages/compiler-sfc/src/index.ts

@@ -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'

+ 3 - 3
packages/compiler-sfc/src/parse.ts

@@ -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
 }