Use enums instead of raw string

This commit is contained in:
Junghyun Colin Kim 2021-11-30 01:22:50 +09:00
parent 006d914c1d
commit e03f173626
2 changed files with 13 additions and 7 deletions

View File

@ -5,6 +5,11 @@ import { isNumeric, mergeObjects } from '../utils/helpers';
import { LabelsConfigRaw, setRedocLabels } from './Labels'; import { LabelsConfigRaw, setRedocLabels } from './Labels';
import { MDXComponentMeta } from './MarkdownRenderer'; import { MDXComponentMeta } from './MarkdownRenderer';
export enum SideNavStyleEnum {
SummaryOnly = 'summary-only',
PathOnly = 'path-only',
}
export interface RedocRawOptions { export interface RedocRawOptions {
theme?: ThemeInterface; theme?: ThemeInterface;
scrollYOffset?: number | string | (() => number); scrollYOffset?: number | string | (() => number);
@ -22,7 +27,7 @@ export interface RedocRawOptions {
disableSearch?: boolean | string; disableSearch?: boolean | string;
onlyRequiredInSamples?: boolean | string; onlyRequiredInSamples?: boolean | string;
showExtensions?: boolean | string | string[]; showExtensions?: boolean | string | string[];
sideNavStyle?: string | 'summary-only'; sideNavStyle?: SideNavStyleEnum;
hideSingleRequestSampleTab?: boolean | string; hideSingleRequestSampleTab?: boolean | string;
menuToggle?: boolean | string; menuToggle?: boolean | string;
jsonSampleExpandLevel?: number | string | 'all'; jsonSampleExpandLevel?: number | string | 'all';
@ -143,8 +148,8 @@ export class RedocNormalizedOptions {
} }
} }
static normalizeSideNavStyle(value: RedocRawOptions['sideNavStyle']): string { static normalizeSideNavStyle(value: RedocRawOptions['sideNavStyle']): SideNavStyleEnum {
const defaultValue = 'summary-only'; const defaultValue = SideNavStyleEnum.SummaryOnly;
if (typeof value !== 'string') { if (typeof value !== 'string') {
return defaultValue; return defaultValue;
} }
@ -152,8 +157,8 @@ export class RedocNormalizedOptions {
switch (value) { switch (value) {
case defaultValue: case defaultValue:
return value; return value;
case 'path-only': case SideNavStyleEnum.PathOnly:
return value; return SideNavStyleEnum.PathOnly;
default: default:
return defaultValue; return defaultValue;
} }
@ -206,7 +211,7 @@ export class RedocNormalizedOptions {
disableSearch: boolean; disableSearch: boolean;
onlyRequiredInSamples: boolean; onlyRequiredInSamples: boolean;
showExtensions: boolean | string[]; showExtensions: boolean | string[];
sideNavStyle: string; sideNavStyle: SideNavStyleEnum;
hideSingleRequestSampleTab: boolean; hideSingleRequestSampleTab: boolean;
menuToggle: boolean; menuToggle: boolean;
jsonSampleExpandLevel: number; jsonSampleExpandLevel: number;

View File

@ -25,6 +25,7 @@ import { FieldModel } from './Field';
import { MediaContentModel } from './MediaContent'; import { MediaContentModel } from './MediaContent';
import { RequestBodyModel } from './RequestBody'; import { RequestBodyModel } from './RequestBody';
import { ResponseModel } from './Response'; import { ResponseModel } from './Response';
import { SideNavStyleEnum } from '../RedocNormalizedOptions';
export interface XPayloadSample { export interface XPayloadSample {
lang: 'payload'; lang: 'payload';
@ -105,7 +106,7 @@ export class OperationModel implements IMenuItem {
this.name = getOperationSummary(operationSpec); this.name = getOperationSummary(operationSpec);
this.sidebarLabel = options.sideNavStyle === 'path-only' ? this.path : this.name; this.sidebarLabel = options.sideNavStyle === SideNavStyleEnum.PathOnly ? this.path : this.name;
if (this.isCallback) { if (this.isCallback) {
// NOTE: Callbacks by default should not inherit the specification's global `security` definition. // NOTE: Callbacks by default should not inherit the specification's global `security` definition.