@eryx/package/types Module

API Reference

Types

VisitingEntry

type VisitingEntry = { key: string, name: string }
key: string
name: string

Visiting

type Visiting = { order: { VisitingEntry }, set: { [string]: number } }
order: { VisitingEntry }
set: { [string]: number }

GitRef

type GitRef = { type: "branch" | "tag" | "commit", value: string }
type: "branch" | "tag" | "commit"
value: string

Requirement

type Requirement = { type: "local", name: string, path: string, sourceRoot: string?, tree: { Requirement } } | { type: "path", name: string, path: string, sourceRoot: string?, tree: { Requirement } } | { type: "workspace", name: string, path: string, sourceRoot: string?, tree: { Requirement } } | { type: "git", name: string, path: string, url: string, subdir: string?, ref: GitRef, requestedRef: GitRef, gitFolder: string, sourceRoot: string?, tree: { Requirement } } | { type: "file", name: string, path: string, sha256: string?, sourceRoot: string?, tree: { Requirement } } | { type: "repository", name: string, key: string, repository: string, path: string, range: semver.Range?, version: semver.Version?, sourceRoot: string?, tree: { Requirement } }

RequirementKind

type RequirementKind = "local" | "path" | "workspace" | "git" | "file" | "repository"

InstallEdge

type InstallEdge = { alias: string, target: string }
alias: string
target: string

InstallNode

type InstallNode = { id: string, installName: string, requirement: Requirement, dependencies: { InstallEdge } }
id: string
installName: string
requirement: Requirement
dependencies: { InstallEdge }

InstallPlan

type InstallPlan = { nodes: { [string]: InstallNode }, roots: { InstallEdge }, devRoots: { InstallEdge } }
nodes: { [string]: InstallNode }
roots: { InstallEdge }
devRoots: { InstallEdge }

AliasMap

type AliasMap = { [string]: string }

LockPackage

type LockPackage = { id: string, installName: string?, type: RequirementKind, dependencies: { InstallEdge }, aliases: AliasMap, data: { [string]: any } }
id: string
installName: string?
dependencies: { InstallEdge }
aliases: AliasMap
data: { [string]: any }

LockFile

type LockFile = { version: number, roots: { InstallEdge }, rootAliases: AliasMap, devRoots: { InstallEdge }?, devRootAliases: AliasMap?, packages: { [string]: LockPackage } }
version: number
roots: { InstallEdge }
rootAliases: AliasMap
devRoots: { InstallEdge }?
devRootAliases: AliasMap?
packages: { [string]: LockPackage }

ResolveContext

type ResolveContext = { plan: InstallPlan, repositorySelections: { [string]: { InstallNode } }, resolving: { [string]: boolean } }
repositorySelections: { [string]: { InstallNode } }
resolving: { [string]: boolean }

CollectRecursion

type CollectRecursion = ( root: string, path: string, manifest: project.Manifest, requirements: { Requirement }, visiting: Visiting, allowLocal: boolean, workspace: project.Workspace? )()

ResolveRecursion

type ResolveRecursion = ( ctx: ResolveContext, node: InstallNode, children: { Requirement } )()

Source

type Source = { type: RequirementKind, checkDependency: ((dep: project.Dependency) → boolean), collect: ( root: string, path: string, manifest: project.Manifest, name: string, dep: project.Dependency, requirements: { Requirement }, visiting: Visiting, allowLocal: boolean, workspace: project.Workspace?, recurse: CollectRecursion )(), materialise: ( root: string, requirement: Requirement, destination: string )(), identity: ((retirement: Requirement) → string), resolveInstallPlan: ( ( ctx: ResolveContext, parent: InstallNode?, requirement: Requirement, resolve: ResolveRecursion )InstallNode )?, generateLock: ((requirement: Requirement) → { [string]: any }), readLock: (((root: string, package: LockPackage) → Requirement))? }
Source.checkDependency(dep: project.Dependency)boolean

Check if a dependency matches this source

Source.collect(root: string, path: string, manifest: project.Manifest, name: string, dep: project.Dependency, requirements: { Requirement }, visiting: Visiting, allowLocal: boolean, workspace: project.Workspace?, recurse: CollectRecursion)()

Perform "collection" on a dependency, resolving it

Source.materialise(root: string, requirement: Requirement, destination: string)()
Source.identity(retirement: Requirement)string
Source.generateLock(requirement: Requirement){ [string]: any }
resolveInstallPlan: (((ctx: ResolveContext, parent: InstallNode?, requirement: Requirement, resolve: ResolveRecursion) → InstallNode))?
readLock: (((root: string, package: LockPackage) → Requirement))?