chore(core-api/Storage): Fixing order of the functions

This commit is contained in:
blam
2020-06-03 14:51:53 +02:00
parent 3825667923
commit f1ba79fec0
2 changed files with 16 additions and 16 deletions
@@ -15,7 +15,7 @@
*/
import { createApiRef } from '../ApiRef';
import { Observable } from '@backstage/core-api';
import { Observable } from '../../types';
export type ObservableMessage<T extends object = {}> = {
key: string;
@@ -22,15 +22,6 @@ export class WebStorage implements StorageApi {
ZenObservable.SubscriptionObserver<ObservableMessage>
> = new Set();
private readonly observable = new ObservableImpl<ObservableMessage>(
subscriber => {
this.subscribers.add(subscriber);
return () => {
this.subscribers.delete(subscriber);
};
},
);
get<T>(key: string): T | undefined {
try {
const storage = JSON.parse(localStorage.getItem(key)!);
@@ -55,15 +46,24 @@ export class WebStorage implements StorageApi {
this.notifyChanges({ key, newValue: undefined });
}
notifyChanges(message: ObservableMessage) {
for (const subscription of this.subscribers) {
subscription.next(message);
}
}
observe$<T>(key: string): Observable<T> {
return this.observable.filter(
({ key: messageKey }) => messageKey === key,
) as Observable<T>;
}
private notifyChanges(message: ObservableMessage) {
for (const subscription of this.subscribers) {
subscription.next(message);
}
}
private readonly observable = new ObservableImpl<ObservableMessage>(
subscriber => {
this.subscribers.add(subscriber);
return () => {
this.subscribers.delete(subscriber);
};
},
);
}