@@ -15,7 +15,7 @@ const defaultOptions = Object.freeze({
|
|||||||
maxDisplayedTags: -1,
|
maxDisplayedTags: -1,
|
||||||
filter: false,
|
filter: false,
|
||||||
validatorUrl: "https://validator.swagger.io/validator",
|
validatorUrl: "https://validator.swagger.io/validator",
|
||||||
oauth2RedirectUrl: `${window.location.protocol}//${window.location.host}${window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/"))}/oauth2-redirect.html`,
|
oauth2RedirectUrl: undefined,
|
||||||
persistAuthorization: false,
|
persistAuthorization: false,
|
||||||
configs: {},
|
configs: {},
|
||||||
custom: {},
|
custom: {},
|
||||||
|
|||||||
@@ -3,5 +3,6 @@ export { default as storeOptionsFactorization } from "./factorization/store"
|
|||||||
export { default as optionsFromQuery } from "./sources/query"
|
export { default as optionsFromQuery } from "./sources/query"
|
||||||
export { default as optionsFromURL } from "./sources/url"
|
export { default as optionsFromURL } from "./sources/url"
|
||||||
export { default as optionsFromSystem } from "./sources/system"
|
export { default as optionsFromSystem } from "./sources/system"
|
||||||
|
export { default as optionsFromRuntime } from "./sources/runtime"
|
||||||
export { default as defaultOptions } from "./defaults"
|
export { default as defaultOptions } from "./defaults"
|
||||||
export { default as mergeOptions } from "./merge"
|
export { default as mergeOptions } from "./merge"
|
||||||
|
|||||||
18
src/core/config/sources/runtime.js
Normal file
18
src/core/config/sources/runtime.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* @prettier
|
||||||
|
*
|
||||||
|
* Receives options at runtime.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* eslint-disable no-undef */
|
||||||
|
const optionsFromRuntime = () => () => {
|
||||||
|
const options = {}
|
||||||
|
|
||||||
|
if (globalThis.location) {
|
||||||
|
options.oauth2RedirectUrl = `${globalThis.location.protocol}//${globalThis.location.host}${globalThis.location.pathname.substring(0, globalThis.location.pathname.lastIndexOf("/"))}/oauth2-redirect.html`
|
||||||
|
}
|
||||||
|
|
||||||
|
return options
|
||||||
|
}
|
||||||
|
|
||||||
|
export default optionsFromRuntime
|
||||||
@@ -34,6 +34,7 @@ import {
|
|||||||
optionsFromQuery,
|
optionsFromQuery,
|
||||||
optionsFromURL,
|
optionsFromURL,
|
||||||
optionsFromSystem,
|
optionsFromSystem,
|
||||||
|
optionsFromRuntime,
|
||||||
mergeOptions,
|
mergeOptions,
|
||||||
inlinePluginOptionsFactorization,
|
inlinePluginOptionsFactorization,
|
||||||
storeOptionsFactorization
|
storeOptionsFactorization
|
||||||
@@ -42,7 +43,8 @@ import {
|
|||||||
|
|
||||||
export default function SwaggerUI(userOptions) {
|
export default function SwaggerUI(userOptions) {
|
||||||
const queryOptions = optionsFromQuery()(userOptions)
|
const queryOptions = optionsFromQuery()(userOptions)
|
||||||
let mergedOptions = mergeOptions({}, defaultOptions, userOptions, queryOptions)
|
const runtimeOptions = optionsFromRuntime()()
|
||||||
|
let mergedOptions = mergeOptions({}, defaultOptions, runtimeOptions, userOptions, queryOptions)
|
||||||
const storeOptions = storeOptionsFactorization(mergedOptions)
|
const storeOptions = storeOptionsFactorization(mergedOptions)
|
||||||
const InlinePlugin = inlinePluginOptionsFactorization(mergedOptions)
|
const InlinePlugin = inlinePluginOptionsFactorization(mergedOptions)
|
||||||
|
|
||||||
@@ -57,7 +59,7 @@ export default function SwaggerUI(userOptions) {
|
|||||||
.then((urlOptions) => {
|
.then((urlOptions) => {
|
||||||
const urlOptionsFailedToFetch = urlOptions === null
|
const urlOptionsFailedToFetch = urlOptions === null
|
||||||
|
|
||||||
mergedOptions = mergeOptions({}, defaultOptions, systemOptions, userOptions, urlOptions, queryOptions)
|
mergedOptions = mergeOptions({}, defaultOptions, runtimeOptions, systemOptions, userOptions, urlOptions, queryOptions)
|
||||||
store.setConfigs(mergedOptions)
|
store.setConfigs(mergedOptions)
|
||||||
system.configsActions.loaded()
|
system.configsActions.loaded()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user