Parameter builds a single `name: type` arrow-function parameter.
(p *Parameter)
| 978 | |
| 979 | // Parameter builds a single `name: type` arrow-function parameter. |
| 980 | func (b *Bindings) Parameter(p *Parameter) (*goja.Object, error) { |
| 981 | pF, err := b.f("parameter") |
| 982 | if err != nil { |
| 983 | return nil, err |
| 984 | } |
| 985 | var typeNode goja.Value = goja.Undefined() |
| 986 | if p.Type != nil { |
| 987 | typeNode, err = b.ToTypescriptNode(p.Type) |
| 988 | if err != nil { |
| 989 | return nil, fmt.Errorf("parameter %q type: %w", p.Name, err) |
| 990 | } |
| 991 | } |
| 992 | res, err := pF(goja.Undefined(), b.vm.ToValue(p.Name), typeNode) |
| 993 | if err != nil { |
| 994 | return nil, xerrors.Errorf("call parameter: %w", err) |
| 995 | } |
| 996 | return res.ToObject(b.vm), nil |
| 997 | } |
| 998 | |
| 999 | // ArrowFunction builds `(parameters): returnType => body`. |
| 1000 | func (b *Bindings) ArrowFunction(af *ArrowFunction) (*goja.Object, error) { |
no test coverage detected