UNPKG

mono-pub

Version:

Simple tool for publishing your npm packages that live in a monorepo

68 lines (63 loc) 2.3 kB
import { Signale } from 'signale'; type IgnoringDependencies = Record<string, Array<string>>; type MonoPubContext = { /** Path to start scanning from, process.cwd() by default */ cwd: string; /** Plugins shared environment, process.env by default */ env: Record<string, string | undefined>; /** Context-specific logger which can be used by plugins to display progress */ logger: Signale<'info' | 'error' | 'log' | 'success'>; /** * List of dependencies per package, which should not affect its version bump. * Might be helpful to break cyclic dependencies, so proper release order can be resolved * */ ignoreDependencies: IgnoringDependencies; }; type MonoPubOptions = Partial<Pick<MonoPubContext, 'cwd' | 'env' | 'ignoreDependencies'> & { stdout: NodeJS.WriteStream; stderr: NodeJS.WriteStream; }>; type CommitInfo = { hash: string; message: string; author: { name: string; }; committer: { name: string; }; }; type BasePackageInfo = { name: string; location: string; }; type DependencyInfo = { name: string; type: 'dep' | 'devDep'; value: string; }; type PackageInfoWithDependencies = BasePackageInfo & { dependsOn: Array<DependencyInfo>; }; type PackageVersion = { major: number; minor: number; patch: number; }; type LatestReleasedVersion = PackageVersion | null; type PackageInfoWithLatestRelease = BasePackageInfo & { latestRelease: LatestReleasedVersion; }; type LatestPackagesReleases = Record<string, LatestReleasedVersion>; type ReleaseType = keyof PackageVersion | 'none'; type PackageReleaseInfo = { oldVersion: LatestReleasedVersion; newVersion: PackageVersion; releaseType: ReleaseType; }; type BumpedDep = BasePackageInfo & PackageReleaseInfo; type ReleasedPackageInfo = BasePackageInfo & PackageReleaseInfo & { commits: Array<CommitInfo>; bumpedDeps: Array<BumpedDep>; }; export type { BasePackageInfo as B, CommitInfo as C, DependencyInfo as D, IgnoringDependencies as I, LatestPackagesReleases as L, MonoPubContext as M, PackageInfoWithDependencies as P, ReleaseType as R, PackageInfoWithLatestRelease as a, ReleasedPackageInfo as b, MonoPubOptions as c, PackageVersion as d, LatestReleasedVersion as e, BumpedDep as f };