package base import ( "git.fsdpf.net/go/contracts" "github.com/samber/do" ) type PkgVersion struct { Id int64 `db:"id"` Name string `db:"pkg"` Bundle string `db:"bundle"` Hash string `db:"hash"` FileName string `db:"filename"` SourceMapFileName string `db:"sourcemapFileName"` Imports []string `db:"imports"` Platform string `db:"platform"` ReleaseAt string `db:"release_at"` UpdatedAt string `db:"updated_at"` CreatedAt string `db:"created_at"` } func (this PkgVersion) GetFile(app *do.Injector) ([]byte, error) { if this.Id == 0 { return nil, contracts.ErrPkgUnknown } res, ok := do.MustInvoke[contracts.GetResource](app)("PkgVersion") if !ok { return nil, contracts.ErrResNotFound } file := []byte{} _, err := res.GetDBTable().Where("id", this.Id).Value(&file, "file") return file, err } func (this PkgVersion) GetSourceMap(app *do.Injector) ([]byte, error) { if this.Id == 0 { return nil, contracts.ErrPkgUnknown } res, ok := do.MustInvoke[contracts.GetResource](app)("PkgVersion") if !ok { return nil, contracts.ErrResNotFound } file := []byte{} _, err := res.GetDBTable().Where("id", this.Id).Value(&file, "sourcemap") return file, err } type GetPkgVersion func(pkg string, opts ...PkgOption) (PkgVersion, bool) // ็ญ›้€‰้€‰้กน type PkgOption func(option *PkgOptions) type PkgOptions struct { platform string hash string } func (this PkgOptions) Platform() string { return this.platform } func (this PkgOptions) Hash() string { return this.hash } func PkgPlatform(value string) PkgOption { return func(option *PkgOptions) { option.platform = value } } func PkgHash(value string) PkgOption { return func(option *PkgOptions) { option.hash = value } }