From: Evan You Date: Tue, 11 Apr 2023 06:34:18 +0000 (+0800) Subject: refactor(compiler-sfc): extract defineEmits logic X-Git-Tag: v3.3.0-alpha.10~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5a529bbf238ad64781d499f89245dc78c894192d;p=thirdparty%2Fvuejs%2Fcore.git refactor(compiler-sfc): extract defineEmits logic --- diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index 018e1f498e..7a93693bad 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -24,17 +24,11 @@ import { Identifier, ExportSpecifier, TSType, - TSTypeLiteral, - TSFunctionType, ArrayExpression, Statement, CallExpression, - RestElement, - TSInterfaceBody, - TSTypeElement, AwaitExpression, LVal, - Expression, TSEnumDeclaration } from '@babel/types' import { walk } from 'estree-walker' @@ -57,10 +51,14 @@ import { DEFINE_PROPS, WITH_DEFAULTS } from './script/defineProps' +import { + processDefineEmits, + genRuntimeEmits, + DEFINE_EMITS +} from './script/defineEmits' import { DEFINE_MODEL, processDefineModel } from './script/defineModel' import { resolveObjectKey, - FromNormalScript, UNKNOWN_TYPE, isLiteralNode, unwrapTSNode, @@ -68,7 +66,6 @@ import { } from './script/utils' // Special compiler macros -const DEFINE_EMITS = 'defineEmits' const DEFINE_EXPOSE = 'defineExpose' const DEFINE_OPTIONS = 'defineOptions' const DEFINE_SLOTS = 'defineSlots' @@ -144,18 +141,6 @@ export interface ImportBinding { isUsedInTemplate: boolean } -export type PropsDestructureBindings = Record< - string, // public prop key - { - local: string // local identifier, may be different - default?: Expression - } -> - -type EmitsDeclType = FromNormalScript< - TSFunctionType | TSTypeLiteral | TSInterfaceBody -> - /** * Compile `