Skip to content

Commit e3c997f

Browse files
committed
fix: empty servers threw an error
Fix #3
1 parent a2fb440 commit e3c997f

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

__tests__/one-api-version-per-document.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,35 @@ testRule("one-api-version-per-document", [
5353
errors: [],
5454
},
5555

56+
{
57+
name: "valid case: no servers defined",
58+
document: {
59+
openapi: "3.1.0",
60+
info: { version: "1.0" },
61+
},
62+
errors: [],
63+
},
64+
65+
{
66+
name: "valid case: empty servers defined",
67+
document: {
68+
openapi: "3.1.0",
69+
info: { version: "1.0" },
70+
servers: [],
71+
},
72+
errors: [],
73+
},
74+
75+
{
76+
name: "valid case: weird servers defined",
77+
document: {
78+
openapi: "3.1.0",
79+
info: { version: "1.0" },
80+
servers: {},
81+
},
82+
errors: [],
83+
},
84+
5685
{
5786
name: "invalid: multiple versions in directory",
5887
document: {

src/functions/onlyOneServerVersion.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@ export default createRulesetFunction({
88
options: {
99
type: ['null'],
1010
},
11-
}, (targetVal: any) => {
11+
}, (targetVal: Array<any>) => {
12+
13+
if (! Array.isArray(targetVal)) {
14+
return [];
15+
}
1216

1317
const versionsMatches = targetVal.map(({ url }: any) => url.match(/([\\.|\\/|](v|version)?[0-9]{1,3}(?:\/)?)/i)[0]);
1418

1519
// If there are fewer than two versions mentioned there cannot be multiple versions
16-
if (versionsMatches < 2) {
20+
if (versionsMatches.length < 2) {
1721
return [];
1822
}
1923

0 commit comments

Comments
 (0)