mirror of
https://github.com/billsonnn/nitro-renderer.git
synced 2024-11-22 23:50:52 +01:00
Let NitroConfig override the configuration
This commit is contained in:
parent
0f9ebe76fd
commit
bce64d9f21
@ -1,18 +1,17 @@
|
|||||||
import { NitroManager } from '../common/NitroManager';
|
import { NitroManager } from '../common/NitroManager';
|
||||||
import { AdvancedMap } from '../utils/AdvancedMap';
|
|
||||||
import { ConfigurationEvent } from './ConfigurationEvent';
|
import { ConfigurationEvent } from './ConfigurationEvent';
|
||||||
import { IConfigurationManager } from './IConfigurationManager';
|
import { IConfigurationManager } from './IConfigurationManager';
|
||||||
|
|
||||||
export class ConfigurationManager extends NitroManager implements IConfigurationManager
|
export class ConfigurationManager extends NitroManager implements IConfigurationManager
|
||||||
{
|
{
|
||||||
private _definitions: AdvancedMap<string, unknown>;
|
private _definitions: Map<string, unknown>;
|
||||||
private _pendingUrls: string[];
|
private _pendingUrls: string[];
|
||||||
|
|
||||||
constructor()
|
constructor()
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this._definitions = new AdvancedMap();
|
this._definitions = new Map();
|
||||||
this._pendingUrls = [];
|
this._pendingUrls = [];
|
||||||
|
|
||||||
this.onConfigurationLoaded = this.onConfigurationLoaded.bind(this);
|
this.onConfigurationLoaded = this.onConfigurationLoaded.bind(this);
|
||||||
@ -21,24 +20,9 @@ export class ConfigurationManager extends NitroManager implements IConfiguration
|
|||||||
protected onInit(): void
|
protected onInit(): void
|
||||||
{
|
{
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
let urls: string[] = NitroConfig.configurationUrls;
|
const defaultConfig = this.getDefaultConfig();
|
||||||
|
|
||||||
if(!urls || !urls.length)
|
this._pendingUrls = defaultConfig['config.urls'] as string[];
|
||||||
{
|
|
||||||
//@ts-ignore
|
|
||||||
const url: string = NitroConfig.configurationUrl;
|
|
||||||
|
|
||||||
if(url && url.length) urls = [ url ];
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!urls || !urls.length)
|
|
||||||
{
|
|
||||||
this.dispatchConfigurationEvent(ConfigurationEvent.FAILED);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this._pendingUrls = urls;
|
|
||||||
|
|
||||||
this.loadNextConfiguration();
|
this.loadNextConfiguration();
|
||||||
}
|
}
|
||||||
@ -49,6 +33,8 @@ export class ConfigurationManager extends NitroManager implements IConfiguration
|
|||||||
{
|
{
|
||||||
this.dispatchConfigurationEvent(ConfigurationEvent.LOADED);
|
this.dispatchConfigurationEvent(ConfigurationEvent.LOADED);
|
||||||
|
|
||||||
|
this.parseConfiguration(this.getDefaultConfig());
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +101,7 @@ export class ConfigurationManager extends NitroManager implements IConfiguration
|
|||||||
value = this.interpolate((value as string), regex);
|
value = this.interpolate((value as string), regex);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._definitions.add(key, value);
|
this._definitions.set(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -139,7 +125,7 @@ export class ConfigurationManager extends NitroManager implements IConfiguration
|
|||||||
{
|
{
|
||||||
for(const piece of pieces)
|
for(const piece of pieces)
|
||||||
{
|
{
|
||||||
const existing = (this._definitions.getValue(this.removeInterpolateKey(piece)) as string);
|
const existing = (this._definitions.get(this.removeInterpolateKey(piece)) as string);
|
||||||
|
|
||||||
if(existing) (value = value.replace(piece, existing));
|
if(existing) (value = value.replace(piece, existing));
|
||||||
}
|
}
|
||||||
@ -155,7 +141,7 @@ export class ConfigurationManager extends NitroManager implements IConfiguration
|
|||||||
|
|
||||||
public getValue<T>(key: string, value: T = null): T
|
public getValue<T>(key: string, value: T = null): T
|
||||||
{
|
{
|
||||||
let existing = this._definitions.getValue(key);
|
let existing = this._definitions.get(key);
|
||||||
|
|
||||||
if(existing === undefined)
|
if(existing === undefined)
|
||||||
{
|
{
|
||||||
@ -169,6 +155,12 @@ export class ConfigurationManager extends NitroManager implements IConfiguration
|
|||||||
|
|
||||||
public setValue(key: string, value: string): void
|
public setValue(key: string, value: string): void
|
||||||
{
|
{
|
||||||
this._definitions.add(key, value);
|
this._definitions.set(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public getDefaultConfig(): { [index: string]: any }
|
||||||
|
{
|
||||||
|
//@ts-ignore
|
||||||
|
return NitroConfig as { [index: string]: any };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,11 +122,6 @@ export class Nitro extends Application implements INitro
|
|||||||
});
|
});
|
||||||
|
|
||||||
canvas.addEventListener('webglcontextlost', () => instance.events.dispatchEvent(new NitroEvent(Nitro.WEBGL_CONTEXT_LOST)));
|
canvas.addEventListener('webglcontextlost', () => instance.events.dispatchEvent(new NitroEvent(Nitro.WEBGL_CONTEXT_LOST)));
|
||||||
|
|
||||||
//@ts-ignore
|
|
||||||
const sso = (NitroConfig.sso as string);
|
|
||||||
|
|
||||||
instance.communication.demo.setSSO(sso);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public init(): void
|
public init(): void
|
||||||
|
Loading…
Reference in New Issue
Block a user