Throw errors when components don't look like components (#980)
- instead of mysteriously throwing an error later on.
This commit is contained in:
parent
b1475cb309
commit
98c4252840
1 changed files with 16 additions and 10 deletions
|
@ -23,24 +23,30 @@ class Skinner {
|
|||
if (this.components === null) {
|
||||
throw new Error(
|
||||
"Attempted to get a component before a skin has been loaded."+
|
||||
"This is probably because either:"+
|
||||
" This is probably because either:"+
|
||||
" a) Your app has not called sdk.loadSkin(), or"+
|
||||
" b) A component has called getComponent at the root level"
|
||||
" b) A component has called getComponent at the root level",
|
||||
);
|
||||
}
|
||||
var comp = this.components[name];
|
||||
if (comp) {
|
||||
return comp;
|
||||
}
|
||||
let comp = this.components[name];
|
||||
// XXX: Temporarily also try 'views.' as we're currently
|
||||
// leaving the 'views.' off views.
|
||||
var comp = this.components['views.'+name];
|
||||
if (comp) {
|
||||
return comp;
|
||||
if (!comp) {
|
||||
comp = this.components['views.'+name];
|
||||
}
|
||||
|
||||
if (!comp) {
|
||||
throw new Error("No such component: "+name);
|
||||
}
|
||||
|
||||
// components have to be functions.
|
||||
const validType = typeof comp === 'function';
|
||||
if (!validType) {
|
||||
throw new Error(`Not a valid component: ${name}.`);
|
||||
}
|
||||
return comp;
|
||||
}
|
||||
|
||||
load(skinObject) {
|
||||
if (this.components !== null) {
|
||||
throw new Error(
|
||||
|
|
Loading…
Reference in a new issue