Create new interfaces for MatchConfig

This commit is contained in:
Josh Dales
2023-01-28 23:12:53 -05:00
parent 922ffdf5ad
commit 7a5c525049
2 changed files with 21 additions and 12 deletions

View File

@@ -1,9 +1,14 @@
import * as core from '@actions/core'; import * as core from '@actions/core';
import * as github from '@actions/github'; import * as github from '@actions/github';
export interface BranchMatchConfig {
headBranch?: string[];
baseBranch?: string[];
}
type BranchBase = 'base' | 'head'; type BranchBase = 'base' | 'head';
export function toMatchConfigWithBranches(config: any) { export function toBranchMatchConfig(config: any): BranchMatchConfig {
if (!config['head-branch'] || config['base-branch']) { if (!config['head-branch'] || config['base-branch']) {
return config; return config;
} }
@@ -27,12 +32,7 @@ export function toMatchConfigWithBranches(config: any) {
} }
} }
return { return branchConfig;
...config,
['head-branch']: undefined,
['base-branch']: undefined,
...branchConfig
};
} }
export function getBranchName(branchBase?: BranchBase): string | undefined { export function getBranchName(branchBase?: BranchBase): string | undefined {

View File

@@ -3,15 +3,19 @@ import * as github from '@actions/github';
import * as yaml from 'js-yaml'; import * as yaml from 'js-yaml';
import {Minimatch} from 'minimatch'; import {Minimatch} from 'minimatch';
import {checkBranch, toMatchConfigWithBranches} from './branch'; import {checkBranch, toBranchMatchConfig, BranchMatchConfig} from './branch';
interface MatchConfig { interface FilesChangedMatchConfig {
all?: string[]; all?: string[];
any?: string[]; any?: string[];
headBranch?: string[]; filesChanged?: {
baseBranch?: string[]; all?: string[];
any?: string[];
};
} }
type MatchConfig = FilesChangedMatchConfig & BranchMatchConfig;
type StringOrMatchConfig = string | MatchConfig; type StringOrMatchConfig = string | MatchConfig;
type ClientType = ReturnType<typeof github.getOctokit>; type ClientType = ReturnType<typeof github.getOctokit>;
@@ -152,7 +156,12 @@ function toMatchConfig(config: StringOrMatchConfig): MatchConfig {
}; };
} }
return toMatchConfigWithBranches(config); const branchConfig = toBranchMatchConfig(config);
return {
...config,
...branchConfig
};
} }
function printPattern(matcher: Minimatch): string { function printPattern(matcher: Minimatch): string {