mirror of
https://github.com/bitwarden/browser
synced 2025-12-11 05:43:41 +00:00
Extract core functionality from `libs/angular` to allow teams to depend on `libs/ui-common` instead. Moves the following functionality to `ui-common`. - `I18nPipe`. `libs/angular` still has an old copy but `components` depends on the new variant from `ui-common`. - `safeProvider`, `SafeProvider` and `SafeInjectionToken`. `libs/angular`re-exports these to avoid needing to update all consumers.
15 lines
661 B
TypeScript
15 lines
661 B
TypeScript
// FIXME: Update this file to be type safe and remove this and next line
|
|
// @ts-strict-ignore
|
|
import { InjectionToken } from "@angular/core";
|
|
|
|
declare const tag: unique symbol;
|
|
/**
|
|
* A (more) typesafe version of InjectionToken which will more strictly enforce the generic type parameter.
|
|
* @remarks The default angular implementation does not use the generic type to define the structure of the object,
|
|
* so the structural type system will not complain about a mismatch in the type parameter.
|
|
* This is solved by assigning T to an arbitrary private property.
|
|
*/
|
|
export class SafeInjectionToken<T> extends InjectionToken<T> {
|
|
private readonly [tag]: T;
|
|
}
|