import { InjectionToken } from '@angular/core'; import { environment } from '../../../environments/environment'; import { Environment } from '../../../environments/environment.model'; /** * Wrapper for type safe injection of injection tokens supplied WITHOUT `multi: true` */ export type InjectSingle = T extends InjectionToken ? U : never; /** * Wrapper for type safe injection of injection tokens supplied WITH `multi: true` */ export type InjectMultiple = T extends InjectionToken ? U[] : never; /** * Create an injection token for environment.ts properties */ export function createEnvironmentInjectionToken(key: K) { return new InjectionToken(key, { factory: () => environment[key], }); }