So that users can adjust cache's max size.
close #8202
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>()
}
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'
errors: (CompilerError | SyntaxError)[]
}
-const sourceToSFC = createCache<SFCParseResult>()
+export const parseCache = createCache<SFCParseResult>()
export function parse(
source: string,
): SFCParseResult {
const sourceKey =
source + sourceMap + filename + sourceRoot + pad + compiler.parse
- const cache = sourceToSFC.get(sourceKey)
+ const cache = parseCache.get(sourceKey)
if (cache) {
return cache
}
descriptor,
errors
}
- sourceToSFC.set(sourceKey, result)
+ parseCache.set(sourceKey, result)
return result
}