@redocly/openapi-core
Version:
See https://github.com/Redocly/redocly-cli
190 lines • 5.92 kB
JavaScript
export const StatsOAS = (statsAccumulator) => {
return {
ExternalDocs: {
leave() {
statsAccumulator.externalDocs.total++;
},
},
ref: {
enter(ref) {
statsAccumulator.refs.items.add(ref['$ref']);
},
},
Tag: {
leave(tag) {
statsAccumulator.tags.items.add(tag.name);
},
},
Link: {
leave(link) {
statsAccumulator.links.items.add(link.operationId);
},
},
WebhooksMap: {
Operation: {
leave(operation) {
statsAccumulator.webhooks.total++;
if (operation.tags) {
for (const tag of operation.tags) {
statsAccumulator.tags.items.add(tag);
}
}
},
},
},
Paths: {
PathItem: {
leave() {
statsAccumulator.pathItems.total++;
},
Operation: {
leave(operation) {
statsAccumulator.operations.total++;
if (operation.tags) {
for (const tag of operation.tags) {
statsAccumulator.tags.items.add(tag);
}
}
},
},
Parameter: {
leave(parameter) {
statsAccumulator.parameters.items.add(parameter.name);
},
},
},
},
NamedSchemas: {
Schema: {
leave() {
statsAccumulator.schemas.total++;
},
},
},
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;
},
},
};
};
export const StatsAsync2 = (statsAccumulator) => {
return {
ExternalDocs: {
leave() {
statsAccumulator.externalDocs.total++;
},
},
ref: {
enter(ref) {
statsAccumulator.refs.items.add(ref['$ref']);
},
},
Tag: {
leave(tag) {
statsAccumulator.tags.items.add(tag.name);
},
},
ChannelMap: {
Channel: {
leave() {
statsAccumulator.channels.total++;
},
Operation: {
leave(operation) {
statsAccumulator.operations.total++;
if (operation.tags) {
for (const tag of operation.tags) {
statsAccumulator.tags.items.add(tag);
}
}
},
},
Parameter: {
leave(parameter) {
if (parameter.name) {
statsAccumulator.parameters.items.add(parameter.name);
}
},
},
},
},
NamedSchemas: {
Schema: {
leave() {
statsAccumulator.schemas.total++;
},
},
},
Root: {
leave() {
statsAccumulator.parameters.total = statsAccumulator.parameters.items.size;
statsAccumulator.refs.total = statsAccumulator.refs.items.size;
statsAccumulator.tags.total = statsAccumulator.tags.items.size;
},
},
};
};
export const StatsAsync3 = (statsAccumulator) => {
return {
ExternalDocs: {
leave() {
statsAccumulator.externalDocs.total++;
},
},
ref: {
enter(ref) {
statsAccumulator.refs.items.add(ref['$ref']);
},
},
Tag: {
leave(tag) {
statsAccumulator.tags.items.add(tag.name);
},
},
NamedChannels: {
Channel: {
leave() {
statsAccumulator.channels.total++;
},
Parameter: {
leave(parameter) {
if (parameter.name) {
statsAccumulator.parameters.items.add(parameter.name);
}
},
},
},
},
NamedOperations: {
Operation: {
leave(operation) {
statsAccumulator.operations.total++;
if (operation.tags) {
for (const tag of operation.tags) {
statsAccumulator.tags.items.add(tag);
}
}
},
},
},
NamedSchemas: {
Schema: {
leave() {
statsAccumulator.schemas.total++;
},
},
},
Root: {
leave() {
statsAccumulator.parameters.total = statsAccumulator.parameters.items.size;
statsAccumulator.refs.total = statsAccumulator.refs.items.size;
statsAccumulator.tags.total = statsAccumulator.tags.items.size;
},
},
};
};
//# sourceMappingURL=stats.js.map