This repository has been archived on 2020-04-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Vim-Vixen/src/background/repositories/MarkRepository.ts
2019-05-02 11:14:19 +09:00

33 lines
777 B
TypeScript

import MemoryStorage from '../infrastructures/MemoryStorage';
import GlobalMark from '../domains/GlobalMark';
const MARK_KEY = 'mark';
export default class MarkRepository {
constructor() {
this.cache = new MemoryStorage();
}
getMark(key) {
let marks = this.getOrEmptyMarks();
let data = marks[key];
if (!data) {
return Promise.resolve(undefined);
}
let mark = new GlobalMark(data.tabId, data.url, data.x, data.y);
return Promise.resolve(mark);
}
setMark(key, mark) {
let 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) || {};
}
}