parent
							
								
									9e3d7731c7
								
							
						
					
					
						commit
						d4c04e9799
					
				| @ -394,12 +394,30 @@ export default { | ||||
| const props = __props | ||||
| 
 | ||||
|      | ||||
|      | ||||
| return { props, propsModel } | ||||
| } | ||||
| 
 | ||||
| }" | ||||
| `; | ||||
| 
 | ||||
| exports[`SFC compile <script setup> defineProps w/ leading code 1`] = ` | ||||
| "import { x } from './x' | ||||
|      | ||||
| export default { | ||||
|   props: {}, | ||||
|   setup(__props, { expose }) { | ||||
|   expose() | ||||
| 
 | ||||
| const props = __props | ||||
| 
 | ||||
|      | ||||
| return { props, x } | ||||
| } | ||||
| 
 | ||||
| }" | ||||
| `; | ||||
| 
 | ||||
| exports[`SFC compile <script setup> defineProps() 1`] = ` | ||||
| "export default { | ||||
|   props: { | ||||
| @ -410,6 +428,7 @@ exports[`SFC compile <script setup> defineProps() 1`] = ` | ||||
| 
 | ||||
| const props = __props | ||||
| 
 | ||||
| 
 | ||||
| const bar = 1 | ||||
| 
 | ||||
| return { props, bar } | ||||
| @ -428,6 +447,7 @@ exports[`SFC compile <script setup> defineProps/defineEmits in multi-variable de | ||||
| const props = __props | ||||
| 
 | ||||
|      | ||||
|      | ||||
| return { props, emit } | ||||
| } | ||||
| 
 | ||||
| @ -442,6 +462,7 @@ exports[`SFC compile <script setup> defineProps/defineEmits in multi-variable de | ||||
|   expose() | ||||
| 
 | ||||
| const props = __props | ||||
| 
 | ||||
|     const a = 1; | ||||
|      | ||||
| return { props, a, emit } | ||||
| @ -1286,6 +1307,7 @@ const props = __props | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| return { props, emit } | ||||
| } | ||||
| 
 | ||||
| @ -1362,6 +1384,7 @@ const props = __props as { | ||||
|       } | ||||
| 
 | ||||
|        | ||||
|        | ||||
| return { props, defaults } | ||||
| } | ||||
| 
 | ||||
| @ -1384,6 +1407,7 @@ export default /*#__PURE__*/_defineComponent({ | ||||
| const props = __props as { foo: string, bar?: number, baz: boolean, qux(): number } | ||||
| 
 | ||||
|        | ||||
|        | ||||
| return { props } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -121,6 +121,7 @@ export default { | ||||
| const rest = _createPropsRestProxy(__props, [\\"foo\\",\\"bar\\"]) | ||||
| 
 | ||||
|        | ||||
|        | ||||
| return () => {} | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -96,6 +96,18 @@ const bar = 1 | ||||
|   props: propsModel,`)
 | ||||
|   }) | ||||
| 
 | ||||
|   // #4764
 | ||||
|   test('defineProps w/ leading code', () => { | ||||
|     const { content } = compile(` | ||||
|     <script setup>import { x } from './x' | ||||
|     const props = defineProps({}) | ||||
|     </script> | ||||
|     `)
 | ||||
|     // props declaration should be inside setup, not moved along with the import
 | ||||
|     expect(content).not.toMatch(`const props = __props\nimport`) | ||||
|     assertCode(content) | ||||
|   }) | ||||
| 
 | ||||
|   test('defineEmits()', () => { | ||||
|     const { content, bindings } = compile(` | ||||
| <script setup> | ||||
|  | ||||
| @ -1205,25 +1205,25 @@ export function compileScript( | ||||
|   // we use a default __props so that template expressions referencing props
 | ||||
|   // can use it directly
 | ||||
|   if (propsIdentifier) { | ||||
|     s.prependRight( | ||||
|     s.prependLeft( | ||||
|       startOffset, | ||||
|       `\nconst ${propsIdentifier} = __props${ | ||||
|         propsTypeDecl ? ` as ${genSetupPropsType(propsTypeDecl)}` : `` | ||||
|       }` | ||||
|       }\n` | ||||
|     ) | ||||
|   } | ||||
|   if (propsDestructureRestId) { | ||||
|     s.prependRight( | ||||
|     s.prependLeft( | ||||
|       startOffset, | ||||
|       `\nconst ${propsDestructureRestId} = ${helper( | ||||
|         `createPropsRestProxy` | ||||
|       )}(__props, ${JSON.stringify(Object.keys(propsDestructuredBindings))})` | ||||
|       )}(__props, ${JSON.stringify(Object.keys(propsDestructuredBindings))})\n` | ||||
|     ) | ||||
|   } | ||||
|   // inject temp variables for async context preservation
 | ||||
|   if (hasAwait) { | ||||
|     const any = isTS ? `: any` : `` | ||||
|     s.prependRight(startOffset, `\nlet __temp${any}, __restore${any}\n`) | ||||
|     s.prependLeft(startOffset, `\nlet __temp${any}, __restore${any}\n`) | ||||
|   } | ||||
| 
 | ||||
|   const destructureElements = | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user