UNPKG

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
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); } }