Skip to content

Commit e336799

Browse files
magicmatatjahuP0lip
authored andcommitted
feat(rulesets): add support for 2.5.0 AsyncAPI (#2292)
1 parent 89a40a6 commit e336799

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

Diff for: docs/getting-started/3-rulesets.md

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Formats are an optional way to specify which API description formats a rule, or
8383
- `aas2_2` (AsyncAPI v2.2.0)
8484
- `aas2_3` (AsyncAPI v2.3.0)
8585
- `aas2_4` (AsyncAPI v2.4.0)
86+
- `aas2_5` (AsyncAPI v2.5.0)
8687
- `oas2` (OpenAPI v2.0)
8788
- `oas3` (OpenAPI v3.x)
8889
- `oas3_0` (OpenAPI v3.0.x)

Diff for: packages/formats/src/__tests__/asyncapi.test.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { aas2, aas2_0, aas2_1, aas2_2, aas2_3, aas2_4 } from '../asyncapi';
1+
import { aas2, aas2_0, aas2_1, aas2_2, aas2_3, aas2_4, aas2_5 } from '../asyncapi';
22

33
describe('AsyncAPI format', () => {
44
describe('AsyncAPI 2.x', () => {
@@ -88,4 +88,17 @@ describe('AsyncAPI format', () => {
8888
},
8989
);
9090
});
91+
92+
describe('AsyncAPI 2.5', () => {
93+
it.each(['2.5.0', '2.5.2'])('recognizes %s version correctly', version => {
94+
expect(aas2_5({ asyncapi: version }, null)).toBe(true);
95+
});
96+
97+
it.each(['2', '2.3', '2.0.0', '2.1.0', '2.1.37', '2.2.0', '2.3.0', '2.4.0', '2.4.3', '2.6.0', '2.6.4'])(
98+
'does not recognize %s version',
99+
version => {
100+
expect(aas2_5({ asyncapi: version }, null)).toBe(false);
101+
},
102+
);
103+
});
91104
});

Diff for: packages/formats/src/asyncapi.ts

+5
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const aas2_1Regex = /^2\.1(?:\.[0-9]*)?$/;
99
const aas2_2Regex = /^2\.2(?:\.[0-9]*)?$/;
1010
const aas2_3Regex = /^2\.3(?:\.[0-9]*)?$/;
1111
const aas2_4Regex = /^2\.4(?:\.[0-9]*)?$/;
12+
const aas2_5Regex = /^2\.5(?:\.[0-9]*)?$/;
1213

1314
const isAas2 = (document: unknown): document is { asyncapi: string } & Record<string, unknown> =>
1415
isPlainObject(document) && 'asyncapi' in document && aas2Regex.test(String((document as MaybeAAS2).asyncapi));
@@ -39,3 +40,7 @@ aas2_3.displayName = 'AsyncAPI 2.3.x';
3940
export const aas2_4: Format = (document: unknown): boolean =>
4041
isAas2(document) && aas2_4Regex.test(String((document as MaybeAAS2).asyncapi));
4142
aas2_4.displayName = 'AsyncAPI 2.4.x';
43+
44+
export const aas2_5: Format = (document: unknown): boolean =>
45+
isAas2(document) && aas2_5Regex.test(String((document as MaybeAAS2).asyncapi));
46+
aas2_5.displayName = 'AsyncAPI 2.5.x';

0 commit comments

Comments
 (0)