depresolve/src/resolver.ts

30 lines
610 B
TypeScript

export interface VersionInfo {
version: string
major: number
minor: number
patch: number
prerelease?: string
build?: string
}
export interface Library {
name: string
type: string
location: string
version: VersionInfo
details?: Record<string, unknown>
}
export type VersionChangeType = 'major' | 'minor' | 'patch' | 'prerelease' | 'build'
export interface ResolveResult {
current: Library
recommended: Library
change_type: VersionChangeType
}
export interface Resolver<T> {
resolve: () => Promise<ResolveResult[]>
}
export type ResolverFactory<T> = (options: T) => Resolver<T>