MCPcopy Create free account
hub / github.com/coder/guts / Interface

Method Interface

bindings/bindings.go:238–286  ·  view source on GitHub ↗
(ti *Interface)

Source from the content-addressed store, hash-verified

236}
237
238func (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
288func (b *Bindings) HeritageClause(clause *HeritageClause) (*goja.Object, error) {
289 clauseF, err := b.f("heritageClause")

Callers 1

Calls 5

fMethod · 0.95
ToTypescriptNodeMethod · 0.95
interfaceDeclFunction · 0.85
ToStringsFunction · 0.85
RefMethod · 0.80

Tested by

no test coverage detected