mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
28 lines
816 B
TypeScript
28 lines
816 B
TypeScript
import { Subject } from 'rxjs';
|
|
import { Injectable } from '@angular/core';
|
|
import * as FileSaver from 'file-saver';
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
export class FileApiService {
|
|
uploadedData: Subject<any> = new Subject();
|
|
|
|
publishFileUpload(parentEvent: InputEvent): void {
|
|
const reader = new FileReader();
|
|
reader.onload = event => {
|
|
try {
|
|
this.uploadedData.next(JSON.parse((event.target as any).result));
|
|
} catch (e) {
|
|
this.uploadedData.next({ error: e });
|
|
}
|
|
(parentEvent.target as any).value = '';
|
|
};
|
|
reader.readAsText((parentEvent.target as any).files[0]);
|
|
}
|
|
|
|
saveObjectAsJSON(object: object): void {
|
|
const blob = new Blob([JSON.stringify(object)], { type: 'application/json' });
|
|
FileSaver.saveAs(blob, `${Date.now()}.json`);
|
|
}
|
|
}
|