diff --git a/src/matchers/DefaultMatcher.ts b/src/matchers/DefaultMatcher.ts index 38212b5..5cd7f16 100644 --- a/src/matchers/DefaultMatcher.ts +++ b/src/matchers/DefaultMatcher.ts @@ -10,8 +10,8 @@ export class DefaultMatcher match(ref: GitRef) { return Effect.succeed( Option.some([ - ref.name, `${ ref.name }-${ ref.commit }`, + ref.name, ] as DockerTag[]) ) } diff --git a/src/matchers/SemVerMatcher.ts b/src/matchers/SemVerMatcher.ts index f166042..e658b75 100644 --- a/src/matchers/SemVerMatcher.ts +++ b/src/matchers/SemVerMatcher.ts @@ -1,5 +1,5 @@ import { Effect, Option } from "effect" -import { isEmpty, reverse, tail } from "lodash-es" +import { initial, isEmpty } from "lodash-es" import semver from "semver" import { GitRef, GitTagRef } from "../git" import { DockerTag } from "../tags" @@ -17,12 +17,12 @@ export class SemVerMatcher return Option.some( !prerelease ? [ - "latest", ...this.generateTags([ semver.major(ref.name), semver.minor(ref.name), semver.patch(ref.name), ]), + "latest", ] : this.generateTags(prerelease).map(tag => `${ semver.coerce(ref.name) }-${ tag }` as DockerTag @@ -41,16 +41,13 @@ export class SemVerMatcher Effect.succeed(Option.none()) } - private generateTags(numbers: readonly (string | number)[]) { - const rec = (numbers: readonly (string | number)[]): DockerTag[] => - isEmpty(numbers) - ? [] - : [ - ...rec( tail(numbers) ), - reverse(numbers).join(".") as DockerTag, - ] - - return rec( reverse(numbers) ) + private generateTags(numbers: readonly (string | number)[]): DockerTag[] { + return isEmpty(numbers) + ? [] + : [ + numbers.join(".") as DockerTag, + ...this.generateTags( initial(numbers) ), + ] } }