Mercurial > hg > ugly-duckling
diff src/app/app.module.ts @ 192:e4f38975c2bc
Introduce interface for reading a file, once again avoiding specific browser implementation.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Thu, 23 Mar 2017 15:42:34 +0000 |
parents | ea735ebeed0e |
children | ff5a850f0f72 |
line wrap: on
line diff
--- a/src/app/app.module.ts Thu Mar 23 11:38:22 2017 +0000 +++ b/src/app/app.module.ts Thu Mar 23 15:42:34 2017 +0000 @@ -10,7 +10,7 @@ import { PlaybackControlComponent } from './playback-control/playback-control.component'; import { AudioPlayerService, - UrlResourceLifetimeManager + UrlResourceLifetimeManager, ResourceReader } from "./services/audio-player/audio-player.service"; import { FeatureExtractionService } from "./services/feature-extraction/feature-extraction.service"; import { FeatureExtractionMenuComponent } from "./feature-extraction-menu/feature-extraction-menu.component"; @@ -73,6 +73,19 @@ } }; +export const readResource: ResourceReader = (resource) => { + return new Promise((res, rej) => { + const reader: FileReader = new FileReader(); + reader.onload = (event: any) => { + res(event.target.result); + }; + reader.onerror = (event) => { + rej(event.message); + }; + reader.readAsArrayBuffer(resource); + }); +}; + @NgModule({ declarations: [ AppComponent, @@ -100,7 +113,8 @@ FeatureExtractionService, {provide: 'MediaRecorderFactory', useFactory: createMediaRecorderFactory}, {provide: 'PiperRepoUri', useValue: 'assets/remote-plugins.json'}, - {provide: 'UrlResourceLifetimeManager', useValue: urlResourceManager} + {provide: 'UrlResourceLifetimeManager', useValue: urlResourceManager}, + {provide: 'ResourceReader', useValue: readResource} ], bootstrap: [AppComponent] })