vFor.d.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { ExpressionNode, SimpleExpressionNode, ElementTypes, ElementNode } from '@vue/compiler-core';
  2. import { NodeTransform, TransformContext } from '../transform';
  3. import { Expression, Identifier, Pattern, RestElement } from '@babel/types';
  4. import { CodegenScope, CodegenVForScope } from '../options';
  5. export type VForOptions = Omit<ForParseResult, 'tagType'> & {
  6. sourceExpr?: Expression;
  7. sourceAlias: string;
  8. sourceCode: string;
  9. valueCode: string;
  10. valueExpr: Identifier | Pattern | RestElement;
  11. valueAlias: string;
  12. keyCode: string;
  13. keyExpr: Identifier | Pattern | RestElement;
  14. keyAlias: string;
  15. indexCode: string;
  16. indexExpr: Identifier | Pattern | RestElement;
  17. indexAlias: string;
  18. node: ElementNode;
  19. };
  20. export type ForElementNode = ElementNode & {
  21. vFor: VForOptions & {
  22. source: ExpressionNode;
  23. };
  24. };
  25. export declare function isForElementNode(node: unknown): node is ForElementNode;
  26. export declare const transformFor: NodeTransform;
  27. export declare function parseVForScope(currentScope: CodegenScope): CodegenVForScope | undefined;
  28. export interface ForParseResult {
  29. source: ExpressionNode;
  30. value: ExpressionNode;
  31. key: ExpressionNode;
  32. index: ExpressionNode;
  33. tagType: ElementTypes;
  34. }
  35. export declare function parseForExpression(input: SimpleExpressionNode, context: TransformContext): ForParseResult | undefined;
  36. export declare function createForLoopParams({ value, key, index }: ForParseResult, memoArgs?: ExpressionNode[]): ExpressionNode[];
  37. export declare function createVForArrowFunctionExpression({ valueExpr, keyExpr, indexExpr, properties, }: CodegenVForScope): import("@babel/types").ArrowFunctionExpression;