sort categories by title (except core) (#9888)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user