Skip to content

Commit

Permalink
feat(groups): add optional label to semver/version groups
Browse files Browse the repository at this point in the history
Closes #118
  • Loading branch information
JamieMason committed Feb 17, 2023
1 parent 88950f1 commit ff466af
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 17 deletions.
6 changes: 3 additions & 3 deletions src/bin-lint-semver-ranges/lint-semver-ranges.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ export function lintSemverRanges(ctx: Syncpack.Ctx): Syncpack.Ctx {
// with the correct status code.
ctx.isInvalid = true;

// Annotate each group
hasUserGroups && log.semverGroupHeader(semverGroup, i);

// Log each group which has mismatches
semverGroup.getMismatches().forEach(([name, mismatches]) => {
// Annotate each group
hasUserGroups && log.semverGroupHeader(semverGroup, i);

// Log the dependency name
log.invalid(name);

Expand Down
1 change: 1 addition & 0 deletions src/get-context/get-config/schema/base-group.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ import { z } from 'zod';
export const baseGroupFields = {
dependencies: z.array(z.string()).min(1),
dependencyTypes: z.array(z.string()).default([]),
label: z.string().default(''),
packages: z.array(z.string()).min(1),
};
30 changes: 16 additions & 14 deletions src/lib/log.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,22 +42,24 @@ export function invalid(message: string, comment?: string): void {
}
}

export function semverGroupHeader(semverGroup: SemverGroup, i: number): void {
logHeader(
semverGroup.isDefault ? 'Default Semver Group' : `Semver Group ${i + 1}`,
);
export function semverGroupHeader(group: SemverGroup, i: number): void {
logHeader(group, 'Semver', i);
}

export function versionGroupHeader(
versionGroup: VersionGroup,
i: number,
): void {
logHeader(
versionGroup.isDefault ? 'Default Version Group' : `Version Group ${i + 1}`,
);
export function versionGroupHeader(group: VersionGroup, i: number): void {
logHeader(group, 'Version', i);
}

function logHeader(label: string) {
const lead = `= ${label} `;
console.log(chalk`{blue ${lead}${'='.repeat(80 - lead.length)}}`);
function logHeader(
group: VersionGroup | SemverGroup,
type: 'Semver' | 'Version',
i: number,
) {
const customLabel = group.groupConfig.label;
const labelWhenDefault = group.isDefault ? `Default ${type} Group` : '';
const anonymousLabel = `${type} Group ${i + 1}`;
const label = customLabel || labelWhenDefault || anonymousLabel;
const leftSide = `= ${label} `;
const rightSide = '='.repeat(80 - leftSide.length);
console.log(chalk.blue(`${leftSide}${rightSide}`));
}

0 comments on commit ff466af

Please sign in to comment.