(ti *Interface)
| 236 | } |
| 237 | |
| 238 | func (b *Bindings) Interface(ti *Interface) (*goja.Object, error) { |
| 239 | interfaceDecl, err := b.f("interfaceDecl") |
| 240 | if err != nil { |
| 241 | return nil, err |
| 242 | } |
| 243 | |
| 244 | var fields []interface{} |
| 245 | for _, field := range ti.Fields { |
| 246 | v, err := b.ToTypescriptNode(field) |
| 247 | if err != nil { |
| 248 | return nil, err |
| 249 | } |
| 250 | |
| 251 | fields = append(fields, v) |
| 252 | } |
| 253 | |
| 254 | var typeParams []interface{} |
| 255 | for _, tp := range ti.Parameters { |
| 256 | v, err := b.ToTypescriptNode(tp) |
| 257 | if err != nil { |
| 258 | return nil, err |
| 259 | } |
| 260 | typeParams = append(typeParams, v) |
| 261 | } |
| 262 | |
| 263 | var heritage []interface{} |
| 264 | for _, h := range ti.Heritage { |
| 265 | v, err := b.ToTypescriptNode(h) |
| 266 | if err != nil { |
| 267 | return nil, err |
| 268 | } |
| 269 | heritage = append(heritage, v) |
| 270 | } |
| 271 | |
| 272 | res, err := interfaceDecl(goja.Undefined(), |
| 273 | b.vm.ToValue(ToStrings(ti.Modifiers)), |
| 274 | b.vm.ToValue(ti.Name.Ref()), |
| 275 | b.vm.NewArray(typeParams...), |
| 276 | b.vm.NewArray(heritage...), |
| 277 | b.vm.NewArray(fields...), |
| 278 | ) |
| 279 | if err != nil { |
| 280 | return nil, xerrors.Errorf("call interfaceDecl: %w", err) |
| 281 | } |
| 282 | |
| 283 | obj := res.ToObject(b.vm) |
| 284 | |
| 285 | return obj, nil |
| 286 | } |
| 287 | |
| 288 | func (b *Bindings) HeritageClause(clause *HeritageClause) (*goja.Object, error) { |
| 289 | clauseF, err := b.f("heritageClause") |
no test coverage detected