Skip to content

Commit

Permalink
feat: support compare-versions version validation
Browse files Browse the repository at this point in the history
  • Loading branch information
Yash-Singh1 committed Jan 9, 2024
1 parent abe5baa commit a0e2803
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/rules/require-version.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { createValidator } from '../utils/createValidator';

const versionRegex =
/^([\dA-Za-z-]+)(\.[\dA-Za-z-]+)*([+_]([\dA-Za-z-]+)(\.[\dA-Za-z-]+)*)?\.?\s*$/;
/^(?=[\dA-Za-z-]*\d[\dA-Za-z-]*)[\dA-Za-z-]+(\.[\dA-Za-z-]+)*([+_]([\dA-Za-z-]+)(\.[\dA-Za-z-]+)*)?\.?\s*$/;

export default createValidator({
name: 'version',
Expand Down
32 changes: 32 additions & 0 deletions tests/lib/rules/require-version.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,37 @@ import { RuleTester } from 'eslint';
const ruleTester = new RuleTester();
ruleTester.run('require-version', requireVersion, {
valid: [
// Pulled from TamperMonkey examples https://www.tampermonkey.net/documentation.php#meta:version and others are alterations of those
'Alpha-v1',
'Alpha-v2',
'Alpha-v10',
'0.0.0',
'000.0.1',
'0.5preliminary',
'0.6pre4',
'1.00',
'1.0.0',
'1.-1',
'1.',
'1.1a',
'1.1aa',
'1.1ab',
'1.1c',
'1.10.0-alpha',
'1.12+1.0',
'1.1.1.1.2.0.1.1.1.1.1',

// compare-versions tests
'1.2.3a',
'1.2.-3a',
'1.0.x',
'1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay',
'1.2.3-SNAPSHOT-123',
'1.2.3----RC-SNAPSHOT.12.9.1--.12+788',
'1.0.0+0.build.1-rc.10000aaa-kk-0.1',
'1.0.0-0A.is.legal',
'1.1.2-prerelease+meta',

// https://semver.org/#spec-item-9,
'1.0.0-alpha',
'1.0.0-alpha.1',
Expand Down Expand Up @@ -77,6 +97,18 @@ ruleTester.run('require-version', requireVersion, {
// @version @.€.$
// ==/UserScript==`,
errors: [{ messageId: 'invalidVersion' }]
},
{
code: `// ==UserScript==
// @version 1.2.31.2.3----RC-SNAPSHOT.12.09.1--..12+788
// ==/UserScript==`,
errors: [{ messageId: 'invalidVersion' }]
},
{
code: `// ==UserScript==
// @version beta
// ==/UserScript==`,
errors: [{ messageId: 'invalidVersion' }]
}
]
});

0 comments on commit a0e2803

Please sign in to comment.