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

View File

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

View File

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

View File

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