Skip to content

Commit 2da94c7

Browse files
feat: migrate unique parameter name
1 parent 76a3eb5 commit 2da94c7

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

packages/apidom-ls/src/config/openapi/parameter/lint/unique-name.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const parametersTypeLint: LinterMeta = {
99
source: 'apilint',
1010
message: 'Name must be unique among all parameters',
1111
severity: DiagnosticSeverity.Error,
12-
linterFunction: 'apilintPropertyUniqueValue',
12+
linterFunction: 'apilintPropertyUniqueSiblingValue',
1313
linterParams: [['parameters'], 'name'],
1414
marker: 'key',
1515
markerTarget: 'name',

packages/apidom-ls/src/services/validation/linter-functions.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -795,6 +795,24 @@ export const standardLinterfunctions: FunctionItem[] = [
795795
return true;
796796
},
797797
},
798+
{
799+
functionName: 'apilintPropertyUniqueSiblingValue',
800+
function: (element, elementOrClasses, key) => {
801+
const value = toValue(element);
802+
const elements = filter((el) => {
803+
const classes: string[] = toValue(el.getMetaProperty('classes', []));
804+
805+
return (
806+
(elementOrClasses.includes(el.element) ||
807+
classes.every((v) => elementOrClasses.includes(v))) &&
808+
isObject(el) &&
809+
el.hasKey(key) &&
810+
toValue(el.get(key)) === value
811+
);
812+
}, element.parent?.parent?.parent);
813+
return elements.length <= 1;
814+
},
815+
},
798816
{
799817
functionName: 'apilintChannelParameterExist',
800818
function: (element: Element): boolean => {

0 commit comments

Comments
 (0)