From: Evan You Date: Mon, 1 May 2023 03:30:58 +0000 (+0800) Subject: feat(compiler-sfc): expose parseCache X-Git-Tag: v3.3.0-beta.3~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45765488d498d94f8760c9e82f1177070057b17c;p=thirdparty%2Fvuejs%2Fcore.git feat(compiler-sfc): expose parseCache So that users can adjust cache's max size. close #8202 --- diff --git a/packages/compiler-sfc/src/cache.ts b/packages/compiler-sfc/src/cache.ts index eb6bad0f86..36d240810c 100644 --- a/packages/compiler-sfc/src/cache.ts +++ b/packages/compiler-sfc/src/cache.ts @@ -1,6 +1,6 @@ import LRU from 'lru-cache' -export function createCache(size = 500) { +export function createCache(size = 500): Map & { max?: number } { if (__GLOBAL__ || __ESM_BROWSER__) { return new Map() } diff --git a/packages/compiler-sfc/src/index.ts b/packages/compiler-sfc/src/index.ts index 78a89c7b49..3821c255d5 100644 --- a/packages/compiler-sfc/src/index.ts +++ b/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' diff --git a/packages/compiler-sfc/src/parse.ts b/packages/compiler-sfc/src/parse.ts index 29c91cc197..da8cf6d866 100644 --- a/packages/compiler-sfc/src/parse.ts +++ b/packages/compiler-sfc/src/parse.ts @@ -93,7 +93,7 @@ export interface SFCParseResult { errors: (CompilerError | SyntaxError)[] } -const sourceToSFC = createCache() +export const parseCache = createCache() 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 }