Skip to content

Commit 60670d1

Browse files
authored
fix(config): add options defined during runtime (#9845)
Refs #9844
1 parent bcd7388 commit 60670d1

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

src/core/config/defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const defaultOptions = Object.freeze({
1515
maxDisplayedTags: -1,
1616
filter: false,
1717
validatorUrl: "https://validator.swagger.io/validator",
18-
oauth2RedirectUrl: `${window.location.protocol}//${window.location.host}${window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/"))}/oauth2-redirect.html`,
18+
oauth2RedirectUrl: undefined,
1919
persistAuthorization: false,
2020
configs: {},
2121
custom: {},

src/core/config/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ export { default as storeOptionsFactorization } from "./factorization/store"
33
export { default as optionsFromQuery } from "./sources/query"
44
export { default as optionsFromURL } from "./sources/url"
55
export { default as optionsFromSystem } from "./sources/system"
6+
export { default as optionsFromRuntime } from "./sources/runtime"
67
export { default as defaultOptions } from "./defaults"
78
export { default as mergeOptions } from "./merge"

src/core/config/sources/runtime.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* @prettier
3+
*
4+
* Receives options at runtime.
5+
*/
6+
7+
/* eslint-disable no-undef */
8+
const optionsFromRuntime = () => () => {
9+
const options = {}
10+
11+
if (globalThis.location) {
12+
options.oauth2RedirectUrl = `${globalThis.location.protocol}//${globalThis.location.host}${globalThis.location.pathname.substring(0, globalThis.location.pathname.lastIndexOf("/"))}/oauth2-redirect.html`
13+
}
14+
15+
return options
16+
}
17+
18+
export default optionsFromRuntime

src/core/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import {
3434
optionsFromQuery,
3535
optionsFromURL,
3636
optionsFromSystem,
37+
optionsFromRuntime,
3738
mergeOptions,
3839
inlinePluginOptionsFactorization,
3940
storeOptionsFactorization
@@ -42,7 +43,8 @@ import {
4243

4344
export default function SwaggerUI(userOptions) {
4445
const queryOptions = optionsFromQuery()(userOptions)
45-
let mergedOptions = mergeOptions({}, defaultOptions, userOptions, queryOptions)
46+
const runtimeOptions = optionsFromRuntime()()
47+
let mergedOptions = mergeOptions({}, defaultOptions, runtimeOptions, userOptions, queryOptions)
4648
const storeOptions = storeOptionsFactorization(mergedOptions)
4749
const InlinePlugin = inlinePluginOptionsFactorization(mergedOptions)
4850

@@ -57,7 +59,7 @@ export default function SwaggerUI(userOptions) {
5759
.then((urlOptions) => {
5860
const urlOptionsFailedToFetch = urlOptions === null
5961

60-
mergedOptions = mergeOptions({}, defaultOptions, systemOptions, userOptions, urlOptions, queryOptions)
62+
mergedOptions = mergeOptions({}, defaultOptions, runtimeOptions, systemOptions, userOptions, urlOptions, queryOptions)
6163
store.setConfigs(mergedOptions)
6264
system.configsActions.loaded()
6365

0 commit comments

Comments
 (0)