adjust frontend to new backend
This commit is contained in:
73
templates/configuration.mustache
Normal file
73
templates/configuration.mustache
Normal file
@@ -0,0 +1,73 @@
|
||||
import { HttpLibrary } from "./http/http{{extensionForDeno}}";
|
||||
import { Middleware, PromiseMiddleware, PromiseMiddlewareWrapper } from "./middleware{{extensionForDeno}}";
|
||||
{{#frameworks}}
|
||||
{{#fetch-api}}
|
||||
import { IsomorphicFetchHttpLibrary as DefaultHttpLibrary } from "./http/isomorphic-fetch{{extensionForDeno}}";
|
||||
{{/fetch-api}}
|
||||
{{#jquery}}
|
||||
import { JQueryHttpLibrary as DefaultHttpLibrary } from "./http/jquery";
|
||||
{{/jquery}}
|
||||
{{/frameworks}}
|
||||
import { BaseServerConfiguration, server1 } from "./servers{{extensionForDeno}}";
|
||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth{{extensionForDeno}}";
|
||||
|
||||
export interface Configuration {
|
||||
readonly baseServer: BaseServerConfiguration;
|
||||
readonly httpApi: HttpLibrary;
|
||||
readonly middleware: Middleware[];
|
||||
readonly authMethods: AuthMethods;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Interface with which a configuration object can be configured.
|
||||
*/
|
||||
export interface ConfigurationParameters {
|
||||
/**
|
||||
* Default server to use
|
||||
*/
|
||||
baseServer?: BaseServerConfiguration;
|
||||
/**
|
||||
* HTTP library to use e.g. IsomorphicFetch
|
||||
*/
|
||||
httpApi?: HttpLibrary;
|
||||
/**
|
||||
* The middlewares which will be applied to requests and responses
|
||||
*/
|
||||
middleware?: Middleware[];
|
||||
/**
|
||||
* Configures all middlewares using the promise api instead of observables (which Middleware uses)
|
||||
*/
|
||||
promiseMiddleware?: PromiseMiddleware[];
|
||||
/**
|
||||
* Configuration for the available authentication methods
|
||||
*/
|
||||
authMethods?: AuthMethodsConfiguration
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration factory function
|
||||
*
|
||||
* If a property is not included in conf, a default is used:
|
||||
* - baseServer: server1
|
||||
* - httpApi: IsomorphicFetchHttpLibrary
|
||||
* - middleware: []
|
||||
* - promiseMiddleware: []
|
||||
* - authMethods: {}
|
||||
*
|
||||
* @param conf partial configuration
|
||||
*/
|
||||
export function createConfiguration(conf: ConfigurationParameters = {}): Configuration {
|
||||
const configuration: Configuration = {
|
||||
baseServer: conf.baseServer !== undefined ? conf.baseServer : server1,
|
||||
httpApi: conf.httpApi || new DefaultHttpLibrary(),
|
||||
middleware: conf.middleware || [],
|
||||
authMethods: configureAuthMethods(conf.authMethods)
|
||||
};
|
||||
if (conf.promiseMiddleware) {
|
||||
conf.promiseMiddleware.forEach(
|
||||
m => configuration.middleware.push(new PromiseMiddlewareWrapper(m))
|
||||
);
|
||||
}
|
||||
return configuration;
|
||||
}
|
||||
Reference in New Issue
Block a user