// Code generated by "esc "; DO NOT EDIT. package js import ( "bytes" "compress/gzip" "encoding/base64" "io/ioutil" "net/http" "os" "path" "sync" "time" ) type _escLocalFS struct{} var _escLocal _escLocalFS type _escStaticFS struct{} var _escStatic _escStaticFS type _escDirectory struct { fs http.FileSystem name string } type _escFile struct { compressed string size int64 modtime int64 local string isDir bool once sync.Once data []byte name string } func (_escLocalFS) Open(name string) (http.File, error) { f, present := _escData[path.Clean(name)] if !present { return nil, os.ErrNotExist } return os.Open(f.local) } func (_escStaticFS) prepare(name string) (*_escFile, error) { f, present := _escData[path.Clean(name)] if !present { return nil, os.ErrNotExist } var err error f.once.Do(func() { f.name = path.Base(name) if f.size == 0 { return } var gr *gzip.Reader b64 := base64.NewDecoder(base64.StdEncoding, bytes.NewBufferString(f.compressed)) gr, err = gzip.NewReader(b64) if err != nil { return } f.data, err = ioutil.ReadAll(gr) }) if err != nil { return nil, err } return f, nil } func (fs _escStaticFS) Open(name string) (http.File, error) { f, err := fs.prepare(name) if err != nil { return nil, err } return f.File() } func (dir _escDirectory) Open(name string) (http.File, error) { return dir.fs.Open(dir.name + name) } func (f *_escFile) File() (http.File, error) { type httpFile struct { *bytes.Reader *_escFile } return &httpFile{ Reader: bytes.NewReader(f.data), _escFile: f, }, nil } func (f *_escFile) Close() error { return nil } func (f *_escFile) Readdir(count int) ([]os.FileInfo, error) { return nil, nil } func (f *_escFile) Stat() (os.FileInfo, error) { return f, nil } func (f *_escFile) Name() string { return f.name } func (f *_escFile) Size() int64 { return f.size } func (f *_escFile) Mode() os.FileMode { return 0 } func (f *_escFile) ModTime() time.Time { return time.Unix(f.modtime, 0) } func (f *_escFile) IsDir() bool { return f.isDir } func (f *_escFile) Sys() interface{} { return f } // _escFS returns a http.Filesystem for the embedded assets. If useLocal is true, // the filesystem's contents are instead used. func _escFS(useLocal bool) http.FileSystem { if useLocal { return _escLocal } return _escStatic } // _escDir returns a http.Filesystem for the embedded assets on a given prefix dir. // If useLocal is true, the filesystem's contents are instead used. func _escDir(useLocal bool, name string) http.FileSystem { if useLocal { return _escDirectory{fs: _escLocal, name: name} } return _escDirectory{fs: _escStatic, name: name} } // _escFSByte returns the named file from the embedded assets. If useLocal is // true, the filesystem's contents are instead used. func _escFSByte(useLocal bool, name string) ([]byte, error) { if useLocal { f, err := _escLocal.Open(name) if err != nil { return nil, err } b, err := ioutil.ReadAll(f) _ = f.Close() return b, err } f, err := _escStatic.prepare(name) if err != nil { return nil, err } return f.data, nil } // _escFSMustByte is the same as _escFSByte, but panics if name is not present. func _escFSMustByte(useLocal bool, name string) []byte { b, err := _escFSByte(useLocal, name) if err != nil { panic(err) } return b } // _escFSString is the string version of _escFSByte. func _escFSString(useLocal bool, name string) (string, error) { b, err := _escFSByte(useLocal, name) return string(b), err } // _escFSMustString is the string version of _escFSMustByte. func _escFSMustString(useLocal bool, name string) string { return string(_escFSMustByte(useLocal, name)) } var _escData = map[string]*_escFile{ "/helpers.js": { local: "pkg/js/helpers.js", size: 17575, modtime: 0, compressed: ` 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 AP//rK/L5adEAAA= `, }, "/": { isDir: true, local: "pkg/js", }, }