github.com/grahambrereton-form3/tilt@v0.10.18/pkg/model/web.go (about)

     1  package model
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"net/url"
     7  
     8  	"github.com/spf13/pflag"
     9  )
    10  
    11  type NoBrowser bool // flag for disabling automatic browser opening
    12  
    13  // Web version of the form vA.B.C, where A, B, and C are integers
    14  // Used for fetching web assets
    15  type WebVersion string
    16  
    17  // Web version of the form aaaaaaa where a is a hex letter
    18  // Used for fetching web assets
    19  type WebSHA string
    20  
    21  // Mode for developing Tilt web UX.
    22  //
    23  // Currently controls whether we use production asset bundles (JS/CSS)
    24  // or local hot-reloaded asset bundles.
    25  
    26  type WebMode string
    27  
    28  const (
    29  	// By default, we serve the js locally in dev builds and from prod in released
    30  	// builds.
    31  	DefaultWebMode WebMode = "default"
    32  
    33  	// Local webpack server
    34  	LocalWebMode WebMode = "local"
    35  
    36  	// Prod gcloud bucket
    37  	ProdWebMode WebMode = "prod"
    38  
    39  	// Precompiled with `make build-js`. This is an experimental mode
    40  	// we're playing around with to avoid the cost of webpack startup.
    41  	PrecompiledWebMode WebMode = "precompiled"
    42  )
    43  
    44  func (m *WebMode) String() string {
    45  	return string(*m)
    46  }
    47  
    48  func (m *WebMode) Set(v string) error {
    49  	switch v {
    50  	case string(DefaultWebMode):
    51  		*m = DefaultWebMode
    52  	case string(PrecompiledWebMode):
    53  		*m = PrecompiledWebMode
    54  	case string(LocalWebMode):
    55  		*m = LocalWebMode
    56  	case string(ProdWebMode):
    57  		*m = ProdWebMode
    58  	default:
    59  		return UnrecognizedWebModeError(v)
    60  	}
    61  	return nil
    62  }
    63  
    64  func (m *WebMode) Type() string {
    65  	return "WebMode"
    66  }
    67  
    68  func UnrecognizedWebModeError(v string) error {
    69  	return fmt.Errorf("Unrecognized web mode: %s. Allowed values: %s", v, []WebMode{
    70  		DefaultWebMode, LocalWebMode, ProdWebMode, PrecompiledWebMode,
    71  	})
    72  }
    73  
    74  var emptyWebMode = WebMode("")
    75  var _ flag.Value = &emptyWebMode
    76  var _ pflag.Value = &emptyWebMode
    77  
    78  type WebHost string
    79  type WebPort int
    80  type WebDevPort int
    81  type WebURL url.URL
    82  
    83  func (u WebURL) String() string {
    84  	url := (*url.URL)(&u)
    85  	return url.String()
    86  }
    87  
    88  func (u WebURL) Empty() bool {
    89  	return WebURL{} == u
    90  }