Skip to content

Commit 8ceddc7

Browse files
chore: remove oneOf/anyOf/allOf separate rules and add one to handle different behavior
1 parent a867493 commit 8ceddc7

9 files changed

Lines changed: 19 additions & 75 deletions

File tree

packages/core/src/config/all.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,7 @@ const all: RawGovernanceConfig<'built-in'> = {
117117
'tag-description': 'error',
118118
'tags-alphabetical': 'error',
119119
'no-duplicated-tag-names': 'error',
120-
'no-illogical-one-of-usage': 'error',
121-
'no-illogical-any-of-usage': 'error',
120+
'no-illogical-composition-keywords': 'error',
122121
},
123122
oas3_1Rules: {
124123
'array-parameter-serialization': 'error',
@@ -181,8 +180,7 @@ const all: RawGovernanceConfig<'built-in'> = {
181180
'tag-description': 'error',
182181
'tags-alphabetical': 'error',
183182
'no-duplicated-tag-names': 'error',
184-
'no-illogical-one-of-usage': 'error',
185-
'no-illogical-any-of-usage': 'error',
183+
'no-illogical-composition-keywords': 'error',
186184
},
187185
oas3_2Rules: {
188186
'array-parameter-serialization': 'error',
@@ -245,8 +243,7 @@ const all: RawGovernanceConfig<'built-in'> = {
245243
'tag-description': 'error',
246244
'tags-alphabetical': 'error',
247245
'no-duplicated-tag-names': 'error',
248-
'no-illogical-one-of-usage': 'error',
249-
'no-illogical-any-of-usage': 'error',
246+
'no-illogical-composition-keywords': 'error',
250247
},
251248
async2Rules: {
252249
'channels-kebab-case': 'error',

packages/core/src/config/minimal.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,7 @@ const minimal: RawGovernanceConfig<'built-in'> = {
108108
'tag-description': 'warn',
109109
'tags-alphabetical': 'off',
110110
'no-duplicated-tag-names': 'off',
111-
'no-illogical-one-of-usage': 'off',
112-
'no-illogical-any-of-usage': 'off',
111+
'no-illogical-composition-keywords': 'off',
113112
},
114113
oas3_1Rules: {
115114
'array-parameter-serialization': 'off',
@@ -166,8 +165,7 @@ const minimal: RawGovernanceConfig<'built-in'> = {
166165
'tag-description': 'warn',
167166
'tags-alphabetical': 'off',
168167
'no-duplicated-tag-names': 'off',
169-
'no-illogical-one-of-usage': 'off',
170-
'no-illogical-any-of-usage': 'off',
168+
'no-illogical-composition-keywords': 'off',
171169
},
172170
oas3_2Rules: {
173171
'array-parameter-serialization': 'off',
@@ -224,8 +222,7 @@ const minimal: RawGovernanceConfig<'built-in'> = {
224222
'tag-description': 'warn',
225223
'tags-alphabetical': 'off',
226224
'no-duplicated-tag-names': 'off',
227-
'no-illogical-one-of-usage': 'off',
228-
'no-illogical-any-of-usage': 'off',
225+
'no-illogical-composition-keywords': 'off',
229226
},
230227
async2Rules: {
231228
'channels-kebab-case': 'off',

packages/core/src/config/recommended-strict.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,7 @@ const recommendedStrict: RawGovernanceConfig<'built-in'> = {
108108
'tag-description': 'error',
109109
'tags-alphabetical': 'off',
110110
'no-duplicated-tag-names': 'error',
111-
'no-illogical-one-of-usage': 'error',
112-
'no-illogical-any-of-usage': 'error',
111+
'no-illogical-composition-keywords': 'error',
113112
},
114113
oas3_1Rules: {
115114
'array-parameter-serialization': 'off',
@@ -166,8 +165,7 @@ const recommendedStrict: RawGovernanceConfig<'built-in'> = {
166165
'tag-description': 'error',
167166
'tags-alphabetical': 'off',
168167
'no-duplicated-tag-names': 'error',
169-
'no-illogical-one-of-usage': 'error',
170-
'no-illogical-any-of-usage': 'error',
168+
'no-illogical-composition-keywords': 'error',
171169
},
172170
oas3_2Rules: {
173171
'array-parameter-serialization': 'off',
@@ -224,8 +222,7 @@ const recommendedStrict: RawGovernanceConfig<'built-in'> = {
224222
'tag-description': 'error',
225223
'tags-alphabetical': 'off',
226224
'no-duplicated-tag-names': 'error',
227-
'no-illogical-one-of-usage': 'error',
228-
'no-illogical-any-of-usage': 'error',
225+
'no-illogical-composition-keywords': 'error',
229226
},
230227
async2Rules: {
231228
'channels-kebab-case': 'off',

packages/core/src/config/recommended.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,7 @@ const recommended: RawGovernanceConfig<'built-in'> = {
108108
'tag-description': 'warn',
109109
'tags-alphabetical': 'off',
110110
'no-duplicated-tag-names': 'warn',
111-
'no-illogical-one-of-usage': 'warn',
112-
'no-illogical-any-of-usage': 'warn',
111+
'no-illogical-composition-keywords': 'warn',
113112
},
114113
oas3_1Rules: {
115114
'array-parameter-serialization': 'off',
@@ -166,8 +165,7 @@ const recommended: RawGovernanceConfig<'built-in'> = {
166165
'tag-description': 'warn',
167166
'tags-alphabetical': 'off',
168167
'no-duplicated-tag-names': 'warn',
169-
'no-illogical-one-of-usage': 'warn',
170-
'no-illogical-any-of-usage': 'warn',
168+
'no-illogical-composition-keywords': 'warn',
171169
},
172170
oas3_2Rules: {
173171
'array-parameter-serialization': 'off',
@@ -224,8 +222,7 @@ const recommended: RawGovernanceConfig<'built-in'> = {
224222
'tag-description': 'warn',
225223
'tags-alphabetical': 'off',
226224
'no-duplicated-tag-names': 'warn',
227-
'no-illogical-one-of-usage': 'warn',
228-
'no-illogical-any-of-usage': 'warn',
225+
'no-illogical-composition-keywords': 'warn',
229226
},
230227
async2Rules: {
231228
'channels-kebab-case': 'off',

packages/core/src/config/spec.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,7 @@ const spec: RawGovernanceConfig<'built-in'> = {
108108
'tag-description': 'off',
109109
'tags-alphabetical': 'off',
110110
'nullable-type-sibling': 'error',
111-
'no-illogical-one-of-usage': 'off',
112-
'no-illogical-any-of-usage': 'off',
111+
'no-illogical-composition-keywords': 'off',
113112
},
114113
oas3_1Rules: {
115114
'array-parameter-serialization': 'off',
@@ -166,8 +165,7 @@ const spec: RawGovernanceConfig<'built-in'> = {
166165
'spec-components-invalid-map-name': 'error',
167166
'tag-description': 'off',
168167
'tags-alphabetical': 'off',
169-
'no-illogical-one-of-usage': 'error',
170-
'no-illogical-any-of-usage': 'error',
168+
'no-illogical-composition-keywords': 'error',
171169
},
172170
oas3_2Rules: {
173171
'array-parameter-serialization': 'off',
@@ -224,8 +222,7 @@ const spec: RawGovernanceConfig<'built-in'> = {
224222
'spec-components-invalid-map-name': 'error',
225223
'tag-description': 'off',
226224
'tags-alphabetical': 'off',
227-
'no-illogical-one-of-usage': 'error',
228-
'no-illogical-any-of-usage': 'error',
225+
'no-illogical-composition-keywords': 'error',
229226
},
230227
async2Rules: {
231228
'channels-kebab-case': 'off',

packages/core/src/rules/oas3/index.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ import { NoRequiredSchemaPropertiesUndefined } from '../common/no-required-schem
5555
import { NoSchemaTypeMismatch } from '../common/no-schema-type-mismatch.js';
5656
import { NoDuplicatedTagNames } from '../common/no-duplicated-tag-names.js';
5757
import { NullableTypeSibling } from './nullable-type-sibling.js';
58-
import { NoIllogicalOneOfUsage } from './no-illogical-one-of-usage.js';
59-
import { NoIllogicalAnyOfUsage } from './no-illogical-any-of-usage.js';
58+
import { NoIllogicalCompositionKeywords } from './no-illogical-composition-keywords.js';
6059

6160
import type { Oas3RuleSet } from '../../oas-types.js';
6261
import type { Oas3Rule } from '../../visitors.js';
@@ -120,8 +119,7 @@ export const rules: Oas3RuleSet<'built-in'> = {
120119
'no-schema-type-mismatch': NoSchemaTypeMismatch as Oas3Rule,
121120
'no-duplicated-tag-names': NoDuplicatedTagNames as Oas3Rule,
122121
'nullable-type-sibling': NullableTypeSibling,
123-
'no-illogical-one-of-usage': NoIllogicalOneOfUsage as Oas3Rule,
124-
'no-illogical-any-of-usage': NoIllogicalAnyOfUsage as Oas3Rule,
122+
'no-illogical-composition-keywords': NoIllogicalCompositionKeywords,
125123
};
126124

127125
export const preprocessors = {};

packages/core/src/rules/oas3/no-illogical-any-of-usage.ts

Lines changed: 0 additions & 38 deletions
This file was deleted.

packages/core/src/rules/oas3/no-illogical-one-of-usage.ts renamed to packages/core/src/rules/oas3/no-illogical-composition-keywords.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type ReturnType = {
2222
reason?: string;
2323
};
2424

25-
export const NoIllogicalOneOfUsage: Oas3Rule = (): Oas3Visitor => {
25+
export const NoIllogicalCompositionKeywords: Oas3Rule = (): Oas3Visitor => {
2626
return {
2727
Schema: {
2828
skip(node) {

packages/core/src/types/redocly-yaml.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,7 @@ const builtInOAS3Rules = [
114114
'array-parameter-serialization',
115115
'no-duplicated-tag-names',
116116
'nullable-type-sibling',
117-
'no-illogical-one-of-usage',
118-
'no-illogical-any-of-usage',
117+
'no-illogical-composition-keywords',
119118
] as const;
120119

121120
export type BuiltInOAS3RuleId = typeof builtInOAS3Rules[number];

0 commit comments

Comments
 (0)