liberry
Version:
liberry is a command utility to help you easily set up, develop, and host your own project pattern library.
21 lines (18 loc) • 928 B
text/typescript
import {provide, Injector} from '@angular/core';
import {objectPath} from "app/utilities/objectPath";
import {BehaviorSubject} from "rxjs/BehaviorSubject";
export var LibraryContext = provide("LibraryContext", {
useFactory: parseLibraryContext,
deps: [Injector, "LibraryMetadata"]
});
function parseLibraryContext(_injector, libraryMetadata) {
var context: BehaviorSubject<Object> = findParentInjectorContext(_injector) || new BehaviorSubject(libraryMetadata.library);
return context;
}
function findParentInjectorContext(_injector): BehaviorSubject<Object> {
var parentInjector = _injector && _injector._view && _injector._view.parentInjector;
if (parentInjector) {
var parentContext = parentInjector._view && parentInjector._view.context && parentInjector._view.context.observableContext;
return parentContext || findParentInjectorContext(parentInjector);
}
}