provider

package
v0.1.28 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrVersionNotSupported       = errors.New("for modrinth version can only be '*', 'latest' a version id, sha1 or sha512")
	ErrCouldNotFindLatestVersion = errors.New("could not find latest version")
	ErrVersionHasNoFiles         = errors.New("version has no files")
)
View Source
var (
	ErrProviderNotFound    = errors.New("provider not found")
	ErrProviderUnsupported = errors.New("provider does not support this operation")
	ErrURLNotConvertible   = errors.New("url not convertible")
)

Functions

This section is empty.

Types

type DummyProvider

type DummyProvider struct {
	Client *http.Client
}

func NewDummyProvider

func NewDummyProvider() *DummyProvider

func (*DummyProvider) Fetch

func (d *DummyProvider) Fetch(ctx context.Context, toFetch Result) (io.Reader, int, error)

func (*DummyProvider) Name

func (d *DummyProvider) Name() string

func (*DummyProvider) Resolve

func (d *DummyProvider) Resolve(ctx context.Context, request *Request) (Result, error)

type HTTPSProvider

type HTTPSProvider struct {
	Client *http.Client
}

func NewHTTPSProvider

func NewHTTPSProvider() *HTTPSProvider

func (*HTTPSProvider) Fetch

func (h *HTTPSProvider) Fetch(ctx context.Context, toFetch Result) (io.Reader, int, error)

func (*HTTPSProvider) Name

func (h *HTTPSProvider) Name() string

func (*HTTPSProvider) Resolve

func (h *HTTPSProvider) Resolve(ctx context.Context, request *Request) (Result, error)

type LatestResolver

type LatestResolver interface {
	ResolveLatest(ctx context.Context, request *Request) (Result, error)
}

type MinepkgProvider

type MinepkgProvider struct {
	Client *api.MinepkgClient
}

func (*MinepkgProvider) Fetch

func (m *MinepkgProvider) Fetch(ctx context.Context, toFetch Result) (io.Reader, int, error)

func (*MinepkgProvider) Name

func (m *MinepkgProvider) Name() string

func (*MinepkgProvider) Resolve

func (m *MinepkgProvider) Resolve(ctx context.Context, request *Request) (Result, error)

func (*MinepkgProvider) ResolveLatest

func (m *MinepkgProvider) ResolveLatest(ctx context.Context, request *Request) (Result, error)

type ModrinthProvider

type ModrinthProvider struct {
	Client *modrinth.Client
}

func NewModrinthProvider

func NewModrinthProvider() *ModrinthProvider

func (*ModrinthProvider) CanConvertURL

func (m *ModrinthProvider) CanConvertURL(url string) bool

func (*ModrinthProvider) ConvertURL

func (m *ModrinthProvider) ConvertURL(ctx context.Context, url string) (string, error)

func (*ModrinthProvider) Fetch

func (m *ModrinthProvider) Fetch(ctx context.Context, toFetch Result) (io.Reader, int, error)

func (*ModrinthProvider) Name

func (m *ModrinthProvider) Name() string

func (*ModrinthProvider) Resolve

func (m *ModrinthProvider) Resolve(ctx context.Context, request *Request) (Result, error)

func (*ModrinthProvider) ResolveLatest

func (m *ModrinthProvider) ResolveLatest(ctx context.Context, request *Request) (Result, error)

type Provider

type Provider interface {
	Name() string
	Resolve(ctx context.Context, request *Request) (Result, error)
}

type Request

type Request struct {
	// Dependency is the dependency to resolve
	Dependency *pkgid.ID
	// Requirements is the platform lock of the current instance (e.g. minecraft version)
	Requirements manifest.PlatformLock
	// DependencyLock might be set to the current lock of the dependency. Can also be nil.
	DependencyLock *manifest.DependencyLock
	// Root is the root dependency lock of the current instance
	Root *manifest.DependencyLock
}

Request is a request to resolve a dependency

type Result

type Result interface {
	// Lock returns the dependency lock of the resolved dependency, can NOT be nil
	Lock() *manifest.DependencyLock
	// Dependencies returns the dependencies of the resolved dependency, can be nil
	Dependencies() []*manifest.InterpretedDependency
}

Result is a result of a dependency resolve

type Store

type Store struct {
	// contains filtered or unexported fields
}

func NewStore

func NewStore(providers map[string]Provider) *Store

func (*Store) Add

func (s *Store) Add(provider Provider)

func (*Store) ConvertURL

func (s *Store) ConvertURL(ctx context.Context, url string) (string, error)

func (*Store) Get

func (s *Store) Get(name string) (Provider, bool)

Get returns a provider by name

func (*Store) Has

func (s *Store) Has(provider string) bool

func (*Store) Resolve

func (s *Store) Resolve(ctx context.Context, request *Request) (Result, error)

func (*Store) ResolveLatest

func (s *Store) ResolveLatest(ctx context.Context, request *Request) (Result, error)

type URLConverter

type URLConverter interface {
	CanConvertURL(url string) bool
	ConvertURL(ctx context.Context, url string) (string, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL