blob: e2c1e94d64161166cb147aa155da77402ba2e266 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import { injectable } from "tsyringe";
import MemoryStorage from "../infrastructures/MemoryStorage";
import GlobalMark from "../domains/GlobalMark";
const MARK_KEY = "mark";
@injectable()
export default class MarkRepository {
private cache: MemoryStorage;
constructor() {
this.cache = new MemoryStorage();
}
getMark(key: string): Promise<GlobalMark | undefined> {
const marks = this.getOrEmptyMarks();
const data = marks[key];
if (!data) {
return Promise.resolve(undefined);
}
const mark = { tabId: data.tabId, url: data.url, x: data.x, y: data.y };
return Promise.resolve(mark);
}
setMark(key: string, mark: GlobalMark): Promise<any> {
const marks = this.getOrEmptyMarks();
marks[key] = { tabId: mark.tabId, url: mark.url, x: mark.x, y: mark.y };
this.cache.set(MARK_KEY, marks);
return Promise.resolve();
}
getOrEmptyMarks() {
return this.cache.get(MARK_KEY) || {};
}
}
|