chore: move remove-unused-components decorator to decorators folder (#1316)

This commit is contained in:
Andrew Tatomyr
2023-11-09 10:36:13 +02:00
committed by GitHub
parent 828290ea23
commit 3f13cb9ada
7 changed files with 68 additions and 79 deletions

View File

@@ -62,57 +62,57 @@
- group: Built-in rules
page: rules/built-in-rules.md
items:
- page: rules/boolean-parameter-prefixes.md
- page: rules/component-name-unique.md
- page: rules/info-contact.md
- page: rules/info-license.md
- page: rules/info-license-url.md
- page: rules/no-ambiguous-paths.md
- page: rules/no-empty-servers.md
- page: rules/no-enum-type-mismatch.md
- page: rules/no-example-value-and-externalValue.md
- page: rules/no-http-verbs-in-paths.md
- page: rules/no-identical-paths.md
- page: rules/no-invalid-media-type-examples.md
- page: rules/no-invalid-parameter-examples.md
- page: rules/no-invalid-schema-examples.md
- page: rules/no-path-trailing-slash.md
- page: rules/no-server-example-com.md
- page: rules/no-server-trailing-slash.md
- page: rules/no-server-variables-empty-enum.md
- page: rules/no-undefined-server-variable.md
- page: rules/no-unresolved-refs.md
- page: rules/no-unused-components.md
- page: rules/operation-2xx-response.md
- page: rules/operation-4xx-problem-details-rfc7807.md
- page: rules/operation-4xx-response.md
- page: rules/operation-description.md
- page: rules/operation-operationId.md
- page: rules/operation-operationId-unique.md
- page: rules/operation-operationId-url-safe.md
- page: rules/operation-parameters-unique.md
- page: rules/operation-singular-tag.md
- page: rules/operation-summary.md
- page: rules/operation-tag-defined.md
- page: rules/parameter-description.md
- page: rules/path-declaration-must-exist.md
- page: rules/path-excludes-patterns.md
- page: rules/path-not-include-query.md
- page: rules/path-parameters-defined.md
- page: rules/path-segment-plural.md
- page: rules/paths-kebab-case.md
- page: rules/request-mime-type.md
- page: rules/required-string-property-missing-min-length.md
- page: rules/response-contains-header.md
- page: rules/response-contains-property.md
- page: rules/response-mime-type.md
- page: rules/scalar-property-missing-example.md
- page: rules/security-defined.md
- page: rules/spec-components-invalid-map-name.md
- page: rules/spec.md
- page: rules/spec-strict-refs.md
- page: rules/tag-description.md
- page: rules/tags-alphabetical.md
- page: rules/boolean-parameter-prefixes.md
- page: rules/component-name-unique.md
- page: rules/info-contact.md
- page: rules/info-license.md
- page: rules/info-license-url.md
- page: rules/no-ambiguous-paths.md
- page: rules/no-empty-servers.md
- page: rules/no-enum-type-mismatch.md
- page: rules/no-example-value-and-externalValue.md
- page: rules/no-http-verbs-in-paths.md
- page: rules/no-identical-paths.md
- page: rules/no-invalid-media-type-examples.md
- page: rules/no-invalid-parameter-examples.md
- page: rules/no-invalid-schema-examples.md
- page: rules/no-path-trailing-slash.md
- page: rules/no-server-example-com.md
- page: rules/no-server-trailing-slash.md
- page: rules/no-server-variables-empty-enum.md
- page: rules/no-undefined-server-variable.md
- page: rules/no-unresolved-refs.md
- page: rules/no-unused-components.md
- page: rules/operation-2xx-response.md
- page: rules/operation-4xx-problem-details-rfc7807.md
- page: rules/operation-4xx-response.md
- page: rules/operation-description.md
- page: rules/operation-operationId.md
- page: rules/operation-operationId-unique.md
- page: rules/operation-operationId-url-safe.md
- page: rules/operation-parameters-unique.md
- page: rules/operation-singular-tag.md
- page: rules/operation-summary.md
- page: rules/operation-tag-defined.md
- page: rules/parameter-description.md
- page: rules/path-declaration-must-exist.md
- page: rules/path-excludes-patterns.md
- page: rules/path-not-include-query.md
- page: rules/path-parameters-defined.md
- page: rules/path-segment-plural.md
- page: rules/paths-kebab-case.md
- page: rules/request-mime-type.md
- page: rules/required-string-property-missing-min-length.md
- page: rules/response-contains-header.md
- page: rules/response-contains-property.md
- page: rules/response-mime-type.md
- page: rules/scalar-property-missing-example.md
- page: rules/security-defined.md
- page: rules/spec-components-invalid-map-name.md
- page: rules/spec.md
- page: rules/spec-strict-refs.md
- page: rules/tag-description.md
- page: rules/tags-alphabetical.md
- page: rules/configurable-rules.md
- group: Decorators
page: decorators.md

View File

@@ -17,8 +17,8 @@ import { reportUnresolvedRef } from './rules/no-unresolved-refs';
import { isPlainObject, isTruthy } from './utils';
import { OasRef } from './typings/openapi';
import { isRedoclyRegistryURL } from './redocly';
import { RemoveUnusedComponents as RemoveUnusedComponentsOas2 } from './rules/oas2/remove-unused-components';
import { RemoveUnusedComponents as RemoveUnusedComponentsOas3 } from './rules/oas3/remove-unused-components';
import { RemoveUnusedComponents as RemoveUnusedComponentsOas2 } from './decorators/oas2/remove-unused-components';
import { RemoveUnusedComponents as RemoveUnusedComponentsOas3 } from './decorators/oas3/remove-unused-components';
import type { Config, StyleguideConfig } from './config';
@@ -126,8 +126,8 @@ export async function bundleDocument(opts: {
config
);
const preprocessors = initRules(rules as any, config, 'preprocessors', specVersion);
const decorators = initRules(rules as any, config, 'decorators', specVersion);
const preprocessors = initRules(rules, config, 'preprocessors', specVersion);
const decorators = initRules(rules, config, 'decorators', specVersion);
const ctx: BundleContext = {
problems: [],

View File

@@ -1,9 +1,9 @@
import { Oas2Rule } from '../../visitors';
import type { Oas2Decorator } from '../../visitors';
import { Location } from '../../ref-utils';
import { Oas2Components } from '../../typings/swagger';
import type { Oas2Components } from '../../typings/swagger';
import { isEmptyObject } from '../../utils';
export const RemoveUnusedComponents: Oas2Rule = () => {
export const RemoveUnusedComponents: Oas2Decorator = () => {
const components = new Map<
string,
{ used: boolean; componentType?: keyof Oas2Components; name: string }

View File

@@ -1,9 +1,9 @@
import { Oas3Rule } from '../../visitors';
import type { Oas3Decorator } from '../../visitors';
import { Location } from '../../ref-utils';
import { Oas3Components } from '../../typings/openapi';
import type { Oas3Components } from '../../typings/openapi';
import { isEmptyObject } from '../../utils';
export const RemoveUnusedComponents: Oas3Rule = () => {
export const RemoveUnusedComponents: Oas3Decorator = () => {
const components = new Map<
string,
{ used: boolean; componentType?: keyof Oas3Components; name: string }

View File

@@ -204,6 +204,7 @@ type Oas2FlatVisitor = {
NamedResponses?: VisitFunctionOrObject<Record<string, Oas2Response>>;
NamedParameters?: VisitFunctionOrObject<Record<string, Oas2Parameter>>;
SecurityScheme?: VisitFunctionOrObject<Oas2SecurityScheme>;
NamedSecuritySchemes?: VisitFunctionOrObject<Record<string, Oas2SecurityScheme>>;
SpecExtension?: VisitFunctionOrObject<unknown>;
};
@@ -255,18 +256,6 @@ export type Async2Visitor = BaseVisitor &
Async2NestedVisitor &
Record<string, VisitFunction<any> | NestedVisitObject<any, Async2NestedVisitor>>;
export type Oas3TransformVisitor = BaseVisitor &
Oas3FlatVisitor &
Record<string, VisitFunction<any> | VisitObject<any>>;
export type Oas2TransformVisitor = BaseVisitor &
Oas2FlatVisitor &
Record<string, VisitFunction<any> | VisitObject<any>>;
export type Async2TransformVisitor = BaseVisitor &
Async2FlatVisitor &
Record<string, VisitFunction<any> | VisitObject<any>>;
export type NestedVisitor<T> = Exclude<T, 'any' | 'ref' | 'Root'>;
export type NormalizedOasVisitors<T extends BaseVisitor> = {
@@ -289,12 +278,12 @@ export type NormalizedOasVisitors<T extends BaseVisitor> = {
export type Oas3Rule = (options: Record<string, any>) => Oas3Visitor | Oas3Visitor[];
export type Oas2Rule = (options: Record<string, any>) => Oas2Visitor | Oas2Visitor[];
export type Async2Rule = (options: Record<string, any>) => Async2Visitor | Async2Visitor[];
export type Oas3Preprocessor = (options: Record<string, any>) => Oas3TransformVisitor;
export type Oas2Preprocessor = (options: Record<string, any>) => Oas2TransformVisitor;
export type Async2Preprocessor = (options: Record<string, any>) => Async2TransformVisitor;
export type Oas3Decorator = (options: Record<string, any>) => Oas3TransformVisitor;
export type Oas2Decorator = (options: Record<string, any>) => Oas2TransformVisitor;
export type Async2Decorator = (options: Record<string, any>) => Async2TransformVisitor;
export type Oas3Preprocessor = (options: Record<string, any>) => Oas3Visitor;
export type Oas2Preprocessor = (options: Record<string, any>) => Oas2Visitor;
export type Async2Preprocessor = (options: Record<string, any>) => Async2Visitor;
export type Oas3Decorator = (options: Record<string, any>) => Oas3Visitor;
export type Oas2Decorator = (options: Record<string, any>) => Oas2Visitor;
export type Async2Decorator = (options: Record<string, any>) => Async2Visitor;
// alias for the latest version supported
// every time we update it - consider semver