@angular/core
Version:
Angular - the core framework
57 lines (53 loc) • 1.55 kB
JavaScript
/**
* @license Angular v20.1.6
* (c) 2010-2025 Google LLC. https://angular.io/
* License: MIT
*/
/**
* Current injector value used by `inject`.
* - `undefined`: it is an error to call `inject`
* - `null`: `inject` can be called but there is no injector (limp-mode).
* - Injector instance: Use the injector for resolution.
*/
let _currentInjector = undefined;
function getCurrentInjector() {
return _currentInjector;
}
function setCurrentInjector(injector) {
const former = _currentInjector;
_currentInjector = injector;
return former;
}
function inject(token, options) {
const currentInjector = getCurrentInjector();
if (!currentInjector) {
throw new Error('Current injector is not set.');
}
if (!token.ɵprov) {
throw new Error('Token is not an injectable');
}
return currentInjector.retrieve(token, options);
}
/**
* Value returned if the key-value pair couldn't be found in the context
* hierarchy.
*/
const NOT_FOUND = Symbol('NotFound');
/**
* Error thrown when the key-value pair couldn't be found in the context
* hierarchy. Context can be attached below.
*/
class NotFoundError extends Error {
name = 'ɵNotFound';
constructor(message) {
super(message);
}
}
/**
* Type guard for checking if an unknown value is a NotFound.
*/
function isNotFound(e) {
return e === NOT_FOUND || e?.name === 'ɵNotFound';
}
export { NOT_FOUND, NotFoundError, getCurrentInjector, inject, isNotFound, setCurrentInjector };
//# sourceMappingURL=not_found.mjs.map