import { injectable } from 'inversify'; import Identifiable from '../model/identifiable'; import Playlist from '../model/playlist'; import Token from '../model/token'; import User from '../model/user'; import Store from './store'; @injectable() class LocalStore implements Store { private store = new Map(); public save(object: T): T { this.store.set(object.id, object); return object; } public get(id: string): T { return this.store.get(id); } public getAll(): T[] { return Array.from(this.store.values()); } public delete(id: string): boolean { return this.store.delete(id); } } // tslint:disable-next-line:max-classes-per-file export class LocalUserStore extends LocalStore {} // tslint:disable-next-line:max-classes-per-file export class LocalPlaylistStore extends LocalStore {} // tslint:disable-next-line:max-classes-per-file export class LocalTokenStore extends LocalStore {}