in fusion-core/src/base-app.js [90:120]
_register<TResolved>(token: Token<TResolved>, value: *) {
this.plugins.push(token);
const {aliases, enhancers} = this.registered.get(getTokenRef(token)) || {
aliases: new Map(),
enhancers: [],
};
if (value && value.__plugin__) {
if (value.deps) {
Object.values(value.deps).forEach(token =>
this._dependedOn.add(getTokenRef(token))
);
}
}
this.registered.set(getTokenRef(token), {
value,
aliases,
enhancers,
token,
});
const alias = (sourceToken, destToken) => {
const stack = new Error().stack;
sourceToken.stacks.push({type: 'alias-from', stack});
destToken.stacks.push({type: 'alias-to', stack});
this._dependedOn.add(getTokenRef(destToken));
if (aliases) {
aliases.set(getTokenRef(sourceToken), destToken);
}
return {alias};
};
return {alias};
}