From 42a1177afb6c4ecfab0105ba0f0ce30792447fd7 Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Fri, 28 Oct 2022 13:50:22 +0200 Subject: [PATCH] fix(ls): provide OpenAPI 3.1 Request Body allowed fields lint rule Refs #2061 --- .../request-body/lint/allowed-fields-3-1.ts | 22 +++++++++++++++++++ .../config/openapi/request-body/lint/index.ts | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 packages/apidom-ls/src/config/openapi/request-body/lint/allowed-fields-3-1.ts diff --git a/packages/apidom-ls/src/config/openapi/request-body/lint/allowed-fields-3-1.ts b/packages/apidom-ls/src/config/openapi/request-body/lint/allowed-fields-3-1.ts new file mode 100644 index 0000000000..0436dfcb9f --- /dev/null +++ b/packages/apidom-ls/src/config/openapi/request-body/lint/allowed-fields-3-1.ts @@ -0,0 +1,22 @@ +import ApilintCodes from '../../../codes'; +import { LinterMeta } from '../../../../apidom-language-types'; + +// eslint-disable-next-line @typescript-eslint/naming-convention +const allowedFields3_0Lint: LinterMeta = { + code: ApilintCodes.NOT_ALLOWED_FIELDS, + source: 'apilint', + message: 'Object includes not allowed fields', + severity: 1, + linterFunction: 'allowedFields', + linterParams: [['description', 'content', 'required'], 'x-'], + marker: 'key', + conditions: [ + { + function: 'missingField', + params: ['$ref'], + }, + ], + targetSpecs: [{ namespace: 'openapi', version: '3.1.0' }], +}; + +export default allowedFields3_0Lint; diff --git a/packages/apidom-ls/src/config/openapi/request-body/lint/index.ts b/packages/apidom-ls/src/config/openapi/request-body/lint/index.ts index 38c812980f..fd5c7f48ed 100644 --- a/packages/apidom-ls/src/config/openapi/request-body/lint/index.ts +++ b/packages/apidom-ls/src/config/openapi/request-body/lint/index.ts @@ -1,4 +1,5 @@ import allowedFields3_0Lint from './allowed-fields-3-0'; +import allowedFields3_1Lint from './allowed-fields-3-1'; import descriptionTypeLint from './description--type'; import contentValuesTypeLint from './content--values-type'; import contentRequiredLint from './content--required'; @@ -10,6 +11,7 @@ const lints = [ contentValuesTypeLint, requiredTypeLint, allowedFields3_0Lint, + allowedFields3_1Lint, ]; export default lints;