persona-community-5/.pnpm-store/v3/files/b5/d765807aae520dc306c51896f364738e45416e4415e0825b61745b22c669725538ff0fc653048c4fc33ecfb5bd907ace104c7432d76528a0c23bc1c58aff73
rdev-worker a1d0d1bf1c
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
build: /implement-feature community-ui --requirements 'Build the React commu...
2026-02-24 08:22:30 +00:00

76 lines
2.0 KiB
Plaintext

import type { Oas3Parameter, OasRef, Oas3Tag } from '../../typings/openapi';
import type { Oas2Parameter } from '../../typings/swagger';
import type { StatsAccumulator } from '../../typings/common';
export const Stats = (statsAccumulator: StatsAccumulator) => {
return {
ExternalDocs: {
leave() {
statsAccumulator.externalDocs.total++;
},
},
ref: {
enter(ref: OasRef) {
statsAccumulator.refs.items!.add(ref['$ref']);
},
},
Tag: {
leave(tag: Oas3Tag) {
statsAccumulator.tags.items!.add(tag.name);
},
},
Link: {
leave(link: any) {
statsAccumulator.links.items!.add(link.operationId);
},
},
Root: {
leave() {
statsAccumulator.parameters.total = statsAccumulator.parameters.items!.size;
statsAccumulator.refs.total = statsAccumulator.refs.items!.size;
statsAccumulator.links.total = statsAccumulator.links.items!.size;
statsAccumulator.tags.total = statsAccumulator.tags.items!.size;
},
},
WebhooksMap: {
Operation: {
leave(operation: any) {
statsAccumulator.webhooks.total++;
operation.tags &&
operation.tags.forEach((tag: string) => {
statsAccumulator.tags.items!.add(tag);
});
},
},
},
Paths: {
PathItem: {
leave() {
statsAccumulator.pathItems.total++;
},
Operation: {
leave(operation: any) {
statsAccumulator.operations.total++;
operation.tags &&
operation.tags.forEach((tag: string) => {
statsAccumulator.tags.items!.add(tag);
});
},
},
Parameter: {
leave(parameter: Oas2Parameter | Oas3Parameter) {
statsAccumulator.parameters.items!.add(parameter.name);
},
},
},
},
NamedSchemas: {
Schema: {
leave() {
statsAccumulator.schemas.total++;
},
},
},
};
};