Skip to content

Commit 04bbeaa

Browse files
glowcloudchar0n
andauthored
fix(config): define missing default options and their types (#9949)
Refs #9945 --- Co-authored-by: Vladimír Gorej <[email protected]>
1 parent 10e1a5f commit 04bbeaa

File tree

6 files changed

+57
-3
lines changed

6 files changed

+57
-3
lines changed

src/core/config/defaults.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ const defaultOptions = Object.freeze({
2323
displayRequestDuration: false,
2424
deepLinking: false,
2525
tryItOutEnabled: false,
26-
requestInterceptor: (a) => a,
26+
requestInterceptor: (request) => {
27+
request.curlOptions = []
28+
return request
29+
},
2730
responseInterceptor: (a) => a,
2831
showMutatedRequest: true,
2932
defaultModelRendering: "example",
@@ -80,6 +83,11 @@ const defaultOptions = Object.freeze({
8083
activated: true,
8184
theme: "agate",
8285
},
86+
operationsSorter: null,
87+
tagsSorter: null,
88+
onComplete: null,
89+
modelPropertyMacro: null,
90+
parameterMacro: null,
8391
})
8492

8593
export default defaultOptions

src/core/config/type-cast/mappings.js

+24
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,21 @@ import arrayTypeCaster from "./type-casters/array"
55
import booleanTypeCaster from "./type-casters/boolean"
66
import domNodeTypeCaster from "./type-casters/dom-node"
77
import filterTypeCaster from "./type-casters/filter"
8+
import functionTypeCaster from "./type-casters/function"
89
import nullableArrayTypeCaster from "./type-casters/nullable-array"
10+
import nullableFunctionTypeCaster from "./type-casters/nullable-function"
911
import nullableStringTypeCaster from "./type-casters/nullable-string"
1012
import numberTypeCaster from "./type-casters/number"
1113
import objectTypeCaster from "./type-casters/object"
14+
import sorterTypeCaster from "./type-casters/sorter"
1215
import stringTypeCaster from "./type-casters/string"
1316
import syntaxHighlightTypeCaster from "./type-casters/syntax-highlight"
1417
import undefinedStringTypeCaster from "./type-casters/undefined-string"
1518
import defaultOptions from "../defaults"
1619

1720
const mappings = {
21+
components: { typeCaster: objectTypeCaster },
22+
configs: { typeCaster: objectTypeCaster },
1823
configUrl: { typeCaster: nullableStringTypeCaster },
1924
deepLinking: {
2025
typeCaster: booleanTypeCaster,
@@ -41,12 +46,20 @@ const mappings = {
4146
dom_id: { typeCaster: nullableStringTypeCaster },
4247
domNode: { typeCaster: domNodeTypeCaster },
4348
filter: { typeCaster: filterTypeCaster },
49+
fn: { typeCaster: objectTypeCaster },
50+
initialState: { typeCaster: objectTypeCaster },
4451
layout: { typeCaster: stringTypeCaster },
4552
maxDisplayedTags: {
4653
typeCaster: numberTypeCaster,
4754
defaultValue: defaultOptions.maxDisplayedTags,
4855
},
56+
modelPropertyMacro: { typeCaster: nullableFunctionTypeCaster },
4957
oauth2RedirectUrl: { typeCaster: undefinedStringTypeCaster },
58+
onComplete: { typeCaster: nullableFunctionTypeCaster },
59+
operationsSorter: {
60+
typeCaster: sorterTypeCaster,
61+
},
62+
paramaterMacro: { typeCaster: nullableFunctionTypeCaster },
5063
persistAuthorization: {
5164
typeCaster: booleanTypeCaster,
5265
defaultValue: defaultOptions.persistAuthorization,
@@ -59,6 +72,10 @@ const mappings = {
5972
typeCaster: arrayTypeCaster,
6073
defaultValue: defaultOptions.presets,
6174
},
75+
requestInterceptor: {
76+
typeCaster: functionTypeCaster,
77+
defaultValue: defaultOptions.requestInterceptor,
78+
},
6279
requestSnippets: {
6380
typeCaster: objectTypeCaster,
6481
defaultValue: defaultOptions.requestSnippets,
@@ -67,6 +84,10 @@ const mappings = {
6784
typeCaster: booleanTypeCaster,
6885
defaultValue: defaultOptions.requestSnippetsEnabled,
6986
},
87+
responseInterceptor: {
88+
typeCaster: functionTypeCaster,
89+
defaultValue: defaultOptions.responseInterceptor,
90+
},
7091
showCommonExtensions: {
7192
typeCaster: booleanTypeCaster,
7293
defaultValue: defaultOptions.showCommonExtensions,
@@ -93,6 +114,9 @@ const mappings = {
93114
defaultValue: defaultOptions.syntaxHighlight.activated,
94115
},
95116
"syntaxHighlight.theme": { typeCaster: stringTypeCaster },
117+
tagsSorter: {
118+
typeCaster: sorterTypeCaster,
119+
},
96120
tryItOutEnabled: {
97121
typeCaster: booleanTypeCaster,
98122
defaultValue: defaultOptions.tryItOutEnabled,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* @prettier
3+
*/
4+
const functionTypeCaster = (value, defaultValue) =>
5+
typeof value === "function" ? value : defaultValue
6+
7+
export default functionTypeCaster
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* @prettier
3+
*/
4+
const nullableFunctionTypeCaster = (value) =>
5+
typeof value === "function" ? value : null
6+
7+
export default nullableFunctionTypeCaster
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* @prettier
3+
*/
4+
const sorterTypeCaster = (value) =>
5+
typeof value === "function" || typeof value === "string" ? value : null
6+
7+
export default sorterTypeCaster

src/core/plugins/request-snippets/fn.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Map } from "immutable"
1+
import { List, Map } from "immutable"
22
import win from "../../window"
33

44

@@ -83,7 +83,8 @@ const curlify = (request, escape, newLine, ext = "") => {
8383
let headers = request.get("headers")
8484
curlified += "curl" + ext
8585

86-
if (request.has("curlOptions")) {
86+
const curlOptions = request.get("curlOptions")
87+
if (List.isList(curlOptions) && !curlOptions.isEmpty()) {
8788
addWords(...request.get("curlOptions"))
8889
}
8990

0 commit comments

Comments
 (0)