From: Evan You Date: Tue, 7 Jul 2020 21:54:01 +0000 (-0400) Subject: wip: compileScriptSetup full js support X-Git-Tag: v3.0.0-beta.21~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a47478caf4e9546916674df60ff0b362c26696a8;p=thirdparty%2Fvuejs%2Fcore.git wip: compileScriptSetup full js support --- diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index 91a86806bb..7f74436742 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -33,7 +33,7 @@ "@vue/shared": "3.0.0-beta.20", "@babel/parser": "^7.10.4", "@babel/types": "^7.10.4", - "estree-walker": "^0.8.1", + "estree-walker": "^2.0.1", "source-map": "^0.6.1" } } diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index fa9d8e27c2..980ba41ff7 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -40,6 +40,7 @@ "@vue/compiler-ssr": "3.0.0-beta.20", "@vue/shared": "3.0.0-beta.20", "consolidate": "^0.15.1", + "estree-walker": "^2.0.1", "hash-sum": "^2.0.0", "lru-cache": "^5.1.1", "magic-string": "^0.25.7", diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index 4cfe5361a4..5305709f50 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -1,8 +1,20 @@ import MagicString, { SourceMap } from 'magic-string' import { SFCDescriptor, SFCScriptBlock } from './parse' import { parse, ParserPlugin } from '@babel/parser' -import { babelParserDefautPlugins } from '@vue/shared' -import { ObjectPattern, ArrayPattern } from '@babel/types' +import { babelParserDefautPlugins, generateCodeFrame } from '@vue/shared' +import { + Node, + Declaration, + ObjectPattern, + ArrayPattern, + Identifier, + ExpressionStatement, + ArrowFunctionExpression, + TSTypeLiteral, + TSFunctionType, + TSDeclareFunction +} from '@babel/types' +import { walk } from 'estree-walker' export interface BindingMetadata { [key: string]: 'data' | 'props' | 'setup' | 'ctx' @@ -33,12 +45,18 @@ export function compileScriptSetup( } const bindings: BindingMetadata = {} - const setupExports: string[] = [] + const imports: Record = {} + const setupScopeVars: Record = {} + const setupExports: Record = {} let exportAllIndex = 0 + let defaultExport: Node | undefined + let needDefaultExportCheck: boolean = false const s = new MagicString(source) const startOffset = scriptSetup.loc.start.offset const endOffset = scriptSetup.loc.end.offset + const scriptStartOffset = script && script.loc.start.offset + const scriptEndOffset = script && script.loc.end.offset // parse and transform