MCPcopy
hub / github.com/esm-dev/esm.sh / show

Method show

cli/command_add.go:353–428  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

351}
352
353func (ui *subModuleSelectUI) show() {
354 ui.render(false)
355
356 defer func() {
357 ui.clearLines()
358 if ui.spinnerTimer != nil {
359 ui.spinnerTimer.Stop()
360 ui.spinnerTimer = nil
361 }
362 }()
363
364 for {
365 key := ui.term.Next()
366 switch key {
367 case 3, 27: // Ctrl+C, Escape
368 ui.clearLines()
369 os.Stdout.WriteString(term.Dim("Aborted.\n"))
370 term.ShowCursor()
371 os.Exit(0)
372 return
373 case 13: // Enter
374 if !ui.isPending() {
375 return
376 }
377 case 32: // Space
378 state := ui.state[ui.cursor]
379 switch state {
380 case 0, 3:
381 // add
382 cur := ui.cursor
383 ui.state[cur] = 2
384 ui.startSpinner()
385 go func() {
386 errors, _ := ui.im.AddImportFromSpecifier(ui.toSpecifier(cur, true), ui.noSRI)
387 if len(errors) > 0 {
388 ui.state[cur] = 3
389 } else {
390 ui.state[cur] = 1
391 }
392 }()
393 case 1:
394 // remove
395 ui.im.Imports.Delete(ui.toSpecifier(ui.cursor, false))
396 ui.state[ui.cursor] = 0
397 }
398 ui.render(true)
399 case 'a':
400 for i := range ui.subModules {
401 state := ui.state[i]
402 specifier := ui.toSpecifier(i, true)
403 if state == 0 || state == 3 {
404 ui.state[i] = 2
405 ui.startSpinner()
406 go func() {
407 errors, _ := ui.im.AddImportFromSpecifier(specifier, ui.noSRI)
408 if len(errors) > 0 {
409 ui.state[i] = 3
410 } else {

Callers 1

addImportsFunction · 0.95

Calls 9

renderMethod · 0.95
clearLinesMethod · 0.95
isPendingMethod · 0.95
startSpinnerMethod · 0.95
toSpecifierMethod · 0.95
StopMethod · 0.80
NextMethod · 0.80
DeleteMethod · 0.65

Tested by

no test coverage detected