UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

122 lines (121 loc) 6.08 kB
import * as t from 'typanion'; import { LogReporter } from './log-reporter'; import { IPlugin } from './plugin-manager'; declare const FeatureBumpBehaviorItems: readonly ["always", "never", "normal"]; export type FeatureBumpBehavior = typeof FeatureBumpBehaviorItems[number]; export declare const isBaseConfigurationOptions: t.StrictTest<unknown, Partial<Pick<{ featureBranchPatterns: string[] | undefined; releaseBranchPatterns: string[] | undefined; mainBranchPatterns: string[] | undefined; independentVersioning: boolean | undefined; versionTagPrefix: string | undefined; dryRun: boolean | undefined; featureBumpBehavior: "always" | "never" | "normal" | undefined; featurePushChangelogs: boolean | undefined; gitFlags: Record<string, string> | undefined; }, "featureBranchPatterns" | "releaseBranchPatterns" | "mainBranchPatterns" | "independentVersioning" | "versionTagPrefix" | "dryRun" | "featureBumpBehavior" | "featurePushChangelogs" | "gitFlags">> & Pick<{ featureBranchPatterns: string[] | undefined; releaseBranchPatterns: string[] | undefined; mainBranchPatterns: string[] | undefined; independentVersioning: boolean | undefined; versionTagPrefix: string | undefined; dryRun: boolean | undefined; featureBumpBehavior: "always" | "never" | "normal" | undefined; featurePushChangelogs: boolean | undefined; gitFlags: Record<string, string> | undefined; }, never> & { [x: string]: unknown; }> & t.Trait<Partial<Pick<{ featureBranchPatterns: string[] | undefined; releaseBranchPatterns: string[] | undefined; mainBranchPatterns: string[] | undefined; independentVersioning: boolean | undefined; versionTagPrefix: string | undefined; dryRun: boolean | undefined; featureBumpBehavior: "always" | "never" | "normal" | undefined; featurePushChangelogs: boolean | undefined; gitFlags: Record<string, string> | undefined; }, "featureBranchPatterns" | "releaseBranchPatterns" | "mainBranchPatterns" | "independentVersioning" | "versionTagPrefix" | "dryRun" | "featureBumpBehavior" | "featurePushChangelogs" | "gitFlags">> & Pick<{ featureBranchPatterns: string[] | undefined; releaseBranchPatterns: string[] | undefined; mainBranchPatterns: string[] | undefined; independentVersioning: boolean | undefined; versionTagPrefix: string | undefined; dryRun: boolean | undefined; featureBumpBehavior: "always" | "never" | "normal" | undefined; featurePushChangelogs: boolean | undefined; gitFlags: Record<string, string> | undefined; }, never> & { [x: string]: unknown; }> & { properties: { featureBranchPatterns: t.StrictValidator<unknown, string[] | undefined>; releaseBranchPatterns: t.StrictValidator<unknown, string[] | undefined>; mainBranchPatterns: t.StrictValidator<unknown, string[] | undefined>; independentVersioning: t.StrictValidator<unknown, boolean | undefined>; versionTagPrefix: t.StrictValidator<unknown, string | undefined>; dryRun: t.StrictValidator<unknown, boolean | undefined>; featureBumpBehavior: t.StrictValidator<unknown, "always" | "never" | "normal" | undefined>; featurePushChangelogs: t.StrictValidator<unknown, boolean | undefined>; gitFlags: t.StrictValidator<unknown, Record<string, string> | undefined>; }; }; export type BaseConfigurationOptions = t.InferType<typeof isBaseConfigurationOptions>; export interface PluginConfigurationOptions { plugins?: IPlugin[]; } export type ConfigurationOption = PluginConfigurationOptions & BaseConfigurationOptions; export type RequiredConfigurationOption = PluginConfigurationOptions & Required<BaseConfigurationOptions>; export declare function defineConfig(config: ConfigurationOption): ConfigurationOption; export declare enum BranchType { MAIN = "main", RELEASE = "release", FEATURE = "feature", UNKNOWN = "unknown" } export interface VersionBranch { readonly name: string; readonly type: BranchType; } export interface IConfiguration { readonly cwd: string; readonly options: RequiredConfigurationOption; readonly stagingFolder: string; readonly packFolder: string; } export interface IUpdateableConfiguration { updateOptions(options: BaseConfigurationOptions): void; } export declare function isUpdateableConfiguration(config: any): config is IUpdateableConfiguration; export declare class Configuration implements IConfiguration, IUpdateableConfiguration { cwd: string; options: RequiredConfigurationOption; get stagingFolder(): string; get packFolder(): string; constructor(cwd: string, options: RequiredConfigurationOption); updateOptions(options: BaseConfigurationOptions): void; static loadCustomConfig(cwd: string, logger: LogReporter): Promise<(Partial<Pick<{ featureBranchPatterns: string[] | undefined; releaseBranchPatterns: string[] | undefined; mainBranchPatterns: string[] | undefined; independentVersioning: boolean | undefined; versionTagPrefix: string | undefined; dryRun: boolean | undefined; featureBumpBehavior: "always" | "never" | "normal" | undefined; featurePushChangelogs: boolean | undefined; gitFlags: Record<string, string> | undefined; }, "featureBranchPatterns" | "releaseBranchPatterns" | "mainBranchPatterns" | "independentVersioning" | "versionTagPrefix" | "dryRun" | "featureBumpBehavior" | "featurePushChangelogs" | "gitFlags">> & Pick<{ featureBranchPatterns: string[] | undefined; releaseBranchPatterns: string[] | undefined; mainBranchPatterns: string[] | undefined; independentVersioning: boolean | undefined; versionTagPrefix: string | undefined; dryRun: boolean | undefined; featureBumpBehavior: "always" | "never" | "normal" | undefined; featurePushChangelogs: boolean | undefined; gitFlags: Record<string, string> | undefined; }, never> & { [x: string]: unknown; }) | null>; } export {};