ci: update formatting tag

This commit is contained in:
iCrawl
2023-04-24 20:19:40 +02:00
parent 43e205b840
commit 8153ca99ee
3 changed files with 17 additions and 5 deletions

View File

@@ -21,6 +21,11 @@ describe('Format Tag', () => {
test('GIVEN tag with no prefix THEN return tag', () => {
expect(formatTag('13.5.1')).toEqual({ isSubpackage: false, package: 'discord.js', semver: '13.5.1' });
expect(formatTag('13.7.0')).toEqual({ isSubpackage: false, package: 'discord.js', semver: '13.7.0' });
expect(formatTag('create-discord-bot@1.0.0')).toEqual({
isSubpackage: false,
package: 'create-discord-bot',
semver: '1.0.0',
});
});
test('GIVEN no or invalid tag THEN return null', () => {

View File

@@ -5,6 +5,8 @@ inputs:
description: 'The input tag'
required: true
outputs:
subpackage:
description: 'Whether this tag is a subpackage tag'
package:
description: 'The package string that was extracted from this tag'
semver:

View File

@@ -1,12 +1,17 @@
export function formatTag(tag: string) {
// eslint-disable-next-line unicorn/no-unsafe-regex, prefer-named-capture-group
const parsed = /(^@.*\/(?<package>.*)@v?)?(?<semver>\d+.\d+.\d+)-?.*/.exec(tag);
// eslint-disable-next-line unicorn/no-unsafe-regex
const parsed = /(?:^@.*\/(?<package>.*)@v?)?(?<semver>\d+.\d+.\d+)-?.*/.exec(tag);
const parsedPackage = /(?<package>.*)@v?-?.*/.exec(tag);
if (parsed?.groups) {
const isSubpackage = typeof parsed.groups.package === 'string';
const pkg = isSubpackage ? parsed.groups.package : parsedPackage?.groups?.package ?? 'discord.js';
const semver = parsed.groups.semver;
return {
isSubpackage: typeof parsed.groups.package === 'string',
package: parsed.groups.package ?? 'discord.js',
semver: parsed.groups.semver,
isSubpackage,
package: pkg,
semver,
};
}