// 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: 18516, modtime: 0, compressed: ` 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 `, }, "/": { isDir: true, local: "pkg/js", }, }