packageVersion: string;
parameters: {};
protocol: string;
- remoteHosts: string;
+ remoteHosts: {
+ [key: string]: string
+ };
remoteHostsViaDNS: boolean;
resources: {};
revision: string;
version: string;
websocketUrl: string;
workbenchUrl: string;
+ vocabularyUrl: string;
+ fileViewersConfigUrl: string;
}
export const fetchConfig = () => {
.get<ConfigJSON>(CONFIG_URL + "?nocache=" + (new Date()).getTime())
.then(response => response.data)
.catch(() => Promise.resolve(getDefaultConfig()))
- .then(config => Axios.get<Config>(getDiscoveryURL(config.API_HOST)))
- .then(response => response.data);
+ .then(config => Axios
+ .get<Config>(getDiscoveryURL(config.API_HOST))
+ .then(response => ({
+ // TODO: After tests delete `|| '/vocabulary-example.json'`
+ // TODO: After tests delete `|| '/file-viewers-example.json'`
+ config: {
+ ...response.data,
+ vocabularyUrl: config.VOCABULARY_URL || '/vocabulary-example.json',
+ fileViewersConfigUrl: config.FILE_VIEWERS_CONFIG_URL || '/file-viewers-example.json'
+ },
+ apiHost: config.API_HOST,
+ })));
+
};
export const mockConfig = (config: Partial<Config>): Config => ({
packageVersion: '',
parameters: {},
protocol: '',
- remoteHosts: '',
+ remoteHosts: {},
remoteHostsViaDNS: false,
resources: {},
revision: '',
version: '',
websocketUrl: '',
workbenchUrl: '',
+ vocabularyUrl: '',
+ fileViewersConfigUrl: '',
...config
});
interface ConfigJSON {
API_HOST: string;
+ VOCABULARY_URL: string;
+ FILE_VIEWERS_CONFIG_URL: string;
}
const getDefaultConfig = (): ConfigJSON => ({
API_HOST: process.env.REACT_APP_ARVADOS_API_HOST || "",
+ VOCABULARY_URL: "",
+ FILE_VIEWERS_CONFIG_URL: "",
});
-const getDiscoveryURL = (apiHost: string) => `${window.location.protocol}//${apiHost}/discovery/v1/apis/arvados/v1/rest`;
+export const DISCOVERY_URL = 'discovery/v1/apis/arvados/v1/rest';
+const getDiscoveryURL = (apiHost: string) => `${window.location.protocol}//${apiHost}/${DISCOVERY_URL}`;