From 70d15fb5d1ddc46a478e3ef6a5e398b9e06b9740 Mon Sep 17 00:00:00 2001 From: Oprysk Date: Wed, 29 Dec 2021 12:58:55 +0200 Subject: [PATCH] feat: add ability to sort tags --- src/services/MenuBuilder.ts | 7 +++++++ src/services/RedocNormalizedOptions.ts | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/services/MenuBuilder.ts b/src/services/MenuBuilder.ts index a31a5322..22caa2c9 100644 --- a/src/services/MenuBuilder.ts +++ b/src/services/MenuBuilder.ts @@ -131,9 +131,11 @@ export class MenuBuilder { /** * Returns array of OperationsGroup items for the tags of the group or for all tags + * @param parser * @param tagsMap tags info returned from `getTagsWithOperations` * @param parent parent item * @param group group which this tag belongs to. if not provided gets all tags + * @param options normalized options */ static getTagsItems( parser: OpenAPIParser, @@ -184,6 +186,11 @@ export class MenuBuilder { res.push(item); } + + if (options.sortTagsAlphabetically) { + res.sort(alphabeticallyByProp('name')); + } + return res; } diff --git a/src/services/RedocNormalizedOptions.ts b/src/services/RedocNormalizedOptions.ts index 73e77de4..632fd3d0 100644 --- a/src/services/RedocNormalizedOptions.ts +++ b/src/services/RedocNormalizedOptions.ts @@ -19,6 +19,7 @@ export interface RedocRawOptions { sortPropsAlphabetically?: boolean | string; sortEnumValuesAlphabetically?: boolean | string; sortOperationsAlphabetically?: boolean | string; + sortTagsAlphabetically?: boolean | string; noAutoAuth?: boolean | string; nativeScrollbars?: boolean | string; pathInMiddlePanel?: boolean | string; @@ -205,6 +206,7 @@ export class RedocNormalizedOptions { sortPropsAlphabetically: boolean; sortEnumValuesAlphabetically: boolean; sortOperationsAlphabetically: boolean; + sortTagsAlphabetically: boolean; noAutoAuth: boolean; nativeScrollbars: boolean; pathInMiddlePanel: boolean; @@ -265,6 +267,7 @@ export class RedocNormalizedOptions { this.sortPropsAlphabetically = argValueToBoolean(raw.sortPropsAlphabetically); this.sortEnumValuesAlphabetically = argValueToBoolean(raw.sortEnumValuesAlphabetically); this.sortOperationsAlphabetically = argValueToBoolean(raw.sortOperationsAlphabetically); + this.sortTagsAlphabetically = argValueToBoolean(raw.sortTagsAlphabetically); this.noAutoAuth = argValueToBoolean(raw.noAutoAuth); this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars); this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);