UNPKG

angular-audio-context

Version:

An Angular wrapper for the Web Audio API's AudioContext.

35 lines (30 loc) 1.48 kB
import { CommonModule } from '@angular/common'; import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core'; import { IAudioContext, IAudioContextOptions, isSupported as standardizedAudioContextModuleIsSupported } from 'standardized-audio-context'; import { audioContextFactory } from './audio-context-factory'; import { AudioContextProxy } from './audio-context-proxy'; import { isSupportedFactory } from './is-supported-factory'; import { latencyHintToken } from './latency-hint-token'; // eslint-disable-next-line unicorn/prefer-export-from export { AudioContextProxy as AudioContext, IAudioContext, IAudioContextOptions }; export const isSupported = new InjectionToken<typeof standardizedAudioContextModuleIsSupported>('IS_SUPPORTED_PROMISE'); @NgModule({ imports: [CommonModule], providers: [{ provide: isSupported, useFactory: isSupportedFactory }] }) export class AudioContextModule { public static forChild(): ModuleWithProviders<AudioContextModule> { return { ngModule: AudioContextModule }; } public static forRoot(latencyHint?: IAudioContextOptions['latencyHint']): ModuleWithProviders<AudioContextModule> { return { ngModule: AudioContextModule, providers: [ { deps: [latencyHintToken], provide: AudioContextProxy, useFactory: audioContextFactory }, { provide: latencyHintToken, useValue: latencyHint } ] }; } }