@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
122 lines (121 loc) • 6.08 kB
TypeScript
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 {};