sort categories by title (except core) (#9888)

This commit is contained in:
chris48s
2024-01-13 18:24:18 +00:00
committed by GitHub
parent 4a55c3eaa4
commit dc84d09732
3 changed files with 23 additions and 10 deletions

View File

@@ -198,7 +198,13 @@ function addGlobalProperties(endpoints) {
return paths
}
function services2openapi(services) {
function sortPaths(obj) {
const entries = Object.entries(obj)
entries.sort((a, b) => a[1].get.summary.localeCompare(b[1].get.summary))
return Object.fromEntries(entries)
}
function services2openapi(services, sort) {
const paths = {}
for (const service of services) {
if (service.openApi) {
@@ -221,10 +227,10 @@ function services2openapi(services) {
}
}
}
return paths
return sort ? sortPaths(paths) : paths
}
function category2openapi(category, services) {
function category2openapi({ category, services, sort = false }) {
const spec = {
openapi: '3.0.0',
info: {
@@ -334,7 +340,7 @@ function category2openapi(category, services) {
},
},
},
paths: services2openapi(services),
paths: services2openapi(services, sort),
}
return spec

View File

@@ -377,10 +377,13 @@ describe('category2openapi', function () {
it('generates an Open API spec', function () {
expect(
clean(
category2openapi({ name: 'build' }, [
OpenApiService.getDefinition(),
LegacyService.getDefinition(),
]),
category2openapi({
category: { name: 'build' },
services: [
OpenApiService.getDefinition(),
LegacyService.getDefinition(),
],
}),
),
).to.deep.equal(expected)
})