зеркало из https://github.com/golang/pkgsite.git
69 строки
4.1 KiB
Go
69 строки
4.1 KiB
Go
// Copyright 2019 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package internal
|
|
|
|
import (
|
|
"context"
|
|
|
|
"golang.org/x/pkgsite/internal/licenses"
|
|
)
|
|
|
|
// DataSource is the interface used by the frontend to interact with module data.
|
|
type DataSource interface {
|
|
// See the internal/postgres package for further documentation of these
|
|
// methods, particularly as they pertain to the main postgres implementation.
|
|
|
|
// GetDirectory returns information about a directory, which may also be a module and/or package.
|
|
// The module and version must both be known.
|
|
GetDirectory(ctx context.Context, dirPath, modulePath, version string) (_ *VersionedDirectory, err error)
|
|
// GetImports returns a slice of import paths imported by the package
|
|
// specified by path and version.
|
|
GetImports(ctx context.Context, pkgPath, modulePath, version string) ([]string, error)
|
|
// GetLicenses returns licenses at the given path for given modulePath and version.
|
|
GetLicenses(ctx context.Context, fullPath, modulePath, resolvedVersion string) ([]*licenses.License, error)
|
|
// GetModuleInfo returns the ModuleInfo corresponding to modulePath and
|
|
// version.
|
|
GetModuleInfo(ctx context.Context, modulePath, version string) (*ModuleInfo, error)
|
|
// GetPathInfo returns information about a path.
|
|
GetPathInfo(ctx context.Context, path, inModulePath, inVersion string) (outModulePath, outVersion string, isPackage bool, err error)
|
|
|
|
// TODO(golang/go#39629): Deprecate these methods.
|
|
//
|
|
// LegacyGetDirectory returns packages whose import path is in a (possibly
|
|
// nested) subdirectory of the given directory path. When multiple
|
|
// package paths satisfy this query, it should prefer the module with
|
|
// the longest path.
|
|
LegacyGetDirectory(ctx context.Context, dirPath, modulePath, version string, fields FieldSet) (_ *LegacyDirectory, err error)
|
|
// LegacyGetModuleInfo returns the LegacyModuleInfo corresponding to modulePath and
|
|
// version.
|
|
LegacyGetModuleInfo(ctx context.Context, modulePath, version string) (*LegacyModuleInfo, error)
|
|
// LegacyGetModuleLicenses returns all top-level Licenses for the given modulePath
|
|
// and version. (i.e., Licenses contained in the module root directory)
|
|
LegacyGetModuleLicenses(ctx context.Context, modulePath, version string) ([]*licenses.License, error)
|
|
// LegacyGetPackage returns the LegacyVersionedPackage corresponding to the given package
|
|
// pkgPath, modulePath, and version. When multiple package paths satisfy this query, it
|
|
// should prefer the module with the longest path.
|
|
LegacyGetPackage(ctx context.Context, pkgPath, modulePath, version string) (*LegacyVersionedPackage, error)
|
|
// LegacyGetPackagesInModule returns LegacyPackages contained in the module version
|
|
// specified by modulePath and version.
|
|
LegacyGetPackagesInModule(ctx context.Context, modulePath, version string) ([]*LegacyPackage, error)
|
|
// LegacyGetPackageLicenses returns all Licenses that apply to pkgPath, within the
|
|
// module version specified by modulePath and version.
|
|
LegacyGetPackageLicenses(ctx context.Context, pkgPath, modulePath, version string) ([]*licenses.License, error)
|
|
// LegacyGetPsuedoVersionsForModule returns ModuleInfo for all known
|
|
// pseudo-versions for the module corresponding to modulePath.
|
|
LegacyGetPsuedoVersionsForModule(ctx context.Context, modulePath string) ([]*ModuleInfo, error)
|
|
// LegacyGetPsuedoVersionsForModule returns ModuleInfo for all known
|
|
// pseudo-versions for any module containing a package with the given import
|
|
// path.
|
|
LegacyGetPsuedoVersionsForPackageSeries(ctx context.Context, pkgPath string) ([]*ModuleInfo, error)
|
|
// LegacyGetTaggedVersionsForModule returns ModuleInfo for all known tagged
|
|
// versions for the module corresponding to modulePath.
|
|
LegacyGetTaggedVersionsForModule(ctx context.Context, modulePath string) ([]*ModuleInfo, error)
|
|
// LegacyGetTaggedVersionsForModule returns ModuleInfo for all known tagged
|
|
// versions for any module containing a package with the given import path.
|
|
LegacyGetTaggedVersionsForPackageSeries(ctx context.Context, pkgPath string) ([]*ModuleInfo, error)
|
|
}
|