Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CommonComponents ¶
type CommonComponents interface { Reference() models.Reference // List of Components that can by imported to any project package List() []speca.ReferableString }
type CommonVendors ¶
type CommonVendors interface { Reference() models.Reference // List of Vendors that can by imported to any project package List() []speca.ReferableString }
type Component ¶
type Component interface { Reference() models.Reference // Relative package path, can contain glob's // example: // - internal/service/*/models/** // - / // - tests/** RelativePaths() []speca.ReferableString }
type ComponentName ¶
type ComponentName = string
abstract ComponentName useful for mapping real packages to one Component.
type Components ¶
type Components interface { Reference() models.Reference // describe Component packages properties Map() map[ComponentName]Component }
type Dependencies ¶
type Dependencies interface { Reference() models.Reference // Dependencies map between Components and DependencyRule`s Map() map[ComponentName]DependencyRule }
type DependencyRule ¶
type DependencyRule interface { Reference() models.Reference // List of Component names, that can by imported to described component MayDependOn() []speca.ReferableString // List of Vendor names, that can by imported to described component CanUse() []speca.ReferableString // described component can import any other local namespace packages AnyProjectDeps() speca.ReferableBool // described component can import any other vendor namespace packages AnyVendorDeps() speca.ReferableBool }
type Document ¶
type Document interface { Reference() models.Reference // Spec Version Version() speca.ReferableInt // Spec relative WorkingDirectory to root, prepend this to all path's from spec WorkingDirectory() speca.ReferableString // Global spec Options Options() Options // ExcludedDirectories from analyze, each contain relative directory name ExcludedDirectories() ExcludedDirectories // ExcludedFilesRegExp from analyze, each project file will by matched with this regexp rules ExcludedFilesRegExp() ExcludedFilesRegExp // Map of Vendors Vendors() Vendors // List of Vendors that can by imported to any project package CommonVendors() CommonVendors // Map of Components Components() Components // List of Components that can by imported to any project package CommonComponents() CommonComponents // Dependencies map between Components and DependencyRule`s Dependencies() Dependencies }
type ExcludedDirectories ¶
type ExcludedDirectories interface { Reference() models.Reference // list of directories // examples: // - internal/test // - vendor // - .idea List() []speca.ReferableString }
type ExcludedFilesRegExp ¶
type ExcludedFilesRegExp interface { Reference() models.Reference // list of regexp's // examples: // - "^.*_test\\.go$" List() []speca.ReferableString }
type Options ¶
type Options interface { Reference() models.Reference // allow all project code depend on any third party vendor lib // analyze will not check imports with not local namespace's IsDependOnAnyVendor() speca.ReferableBool }
type Vendor ¶
type Vendor interface { Reference() models.Reference // Full import vendor qualified path // example: // - golang.org/x/mod/modfile // - example.com/*/libs/** ImportPaths() []speca.ReferableString }
type VendorName ¶
type VendorName = string
abstract VendorName useful for mapping real vendor packages to one Vendor.
Click to show internal directories.
Click to hide internal directories.