processTupleType converts tuple types to Schema.Tuple.
(t *checker.Type, ctx processingContext)
| 411 | |
| 412 | // processTupleType converts tuple types to Schema.Tuple. |
| 413 | func (g *StructuralSchemaGen) processTupleType(t *checker.Type, ctx processingContext) (*ast.Node, bool, error) { |
| 414 | typeArgs := checker.Checker_getTypeArguments(g.Checker, t) |
| 415 | elems := make([]*ast.Node, 0, len(typeArgs)) |
| 416 | for _, ta := range typeArgs { |
| 417 | expr, err := g.processType(ta, ctx) |
| 418 | if err != nil { |
| 419 | return nil, false, err |
| 420 | } |
| 421 | elems = append(elems, expr) |
| 422 | } |
| 423 | |
| 424 | var args []*ast.Node |
| 425 | if ctx.version == typeparser.EffectMajorV4 { |
| 426 | args = []*ast.Node{g.Tracker.NewArrayLiteralExpression(g.Tracker.NewNodeList(elems), false)} |
| 427 | } else { |
| 428 | args = elems |
| 429 | } |
| 430 | return g.createApiCall("Tuple", args), false, nil |
| 431 | } |
| 432 | |
| 433 | // validIdentifierRegex matches valid JS identifiers. |
| 434 | var validIdentifierRegex = regexp.MustCompile(`^[a-zA-Z_$][a-zA-Z0-9_$]*$`) |
no test coverage detected