Types on src/background

This commit is contained in:
Shin'ya Ueoka 2019-05-01 11:04:24 +09:00
parent 0cffb09e24
commit 678020a3a2
48 changed files with 446 additions and 431 deletions

View file

@ -1,5 +1,7 @@
export default class BookmarkRepository {
async create(title, url) {
async create(
title: string, url: string
): Promise<browser.bookmarks.BookmarkTreeNode> {
let item = await browser.bookmarks.create({
type: 'bookmark',
title,

View file

@ -1,7 +1,7 @@
import * as urls from '../../shared/urls';
export default class BrowserSettingRepository {
async getHomepageUrls() {
async getHomepageUrls(): Promise<string[]> {
let { value } = await browser.browserSettings.homepageOverride.get({});
return value.split('|').map(urls.normalizeUrl);
}

View file

@ -1,7 +1,13 @@
type Tab = browser.tabs.Tab;
type BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode;
export default class CompletionsRepository {
async queryBookmarks(keywords) {
async queryBookmarks(keywords: string): Promise<BookmarkTreeNode[]> {
let items = await browser.bookmarks.search({ query: keywords });
return items.filter((item) => {
if (!item.url) {
return false;
}
let url = undefined;
try {
url = new URL(item.url);
@ -12,17 +18,17 @@ export default class CompletionsRepository {
});
}
queryHistories(keywords) {
queryHistories(keywords: string): Promise<browser.history.HistoryItem[]> {
return browser.history.search({
text: keywords,
startTime: 0,
});
}
async queryTabs(keywords, excludePinned) {
async queryTabs(keywords: string, excludePinned: boolean): Promise<Tab[]> {
let tabs = await browser.tabs.query({ currentWindow: true });
return tabs.filter((t) => {
return t.url.toLowerCase().includes(keywords.toLowerCase()) ||
return t.url && t.url.toLowerCase().includes(keywords.toLowerCase()) ||
t.title && t.title.toLowerCase().includes(keywords.toLowerCase());
}).filter((t) => {
return !(excludePinned && t.pinned);

View file

@ -3,15 +3,17 @@ import MemoryStorage from '../infrastructures/MemoryStorage';
const FIND_KEYWORD_KEY = 'find-keyword';
export default class FindRepository {
private cache: MemoryStorage;
constructor() {
this.cache = new MemoryStorage();
}
getKeyword() {
getKeyword(): Promise<string> {
return Promise.resolve(this.cache.get(FIND_KEYWORD_KEY));
}
setKeyword(keyword) {
setKeyword(keyword: string): Promise<any> {
this.cache.set(FIND_KEYWORD_KEY, keyword);
return Promise.resolve();
}

View file

@ -4,21 +4,23 @@ import GlobalMark from '../domains/GlobalMark';
const MARK_KEY = 'mark';
export default class MarkRepository {
private cache: MemoryStorage;
constructor() {
this.cache = new MemoryStorage();
}
getMark(key) {
getMark(key: string): Promise<GlobalMark | undefined> {
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);
let mark = { tabId: data.tabId, url: data.url, x: data.x, y: data.y };
return Promise.resolve(mark);
}
setMark(key, mark) {
setMark(key: string, mark: GlobalMark): Promise<any> {
let marks = this.getOrEmptyMarks();
marks[key] = { tabId: mark.tabId, url: mark.url, x: mark.x, y: mark.y };
this.cache.set(MARK_KEY, marks);

View file

@ -1,7 +1,7 @@
import Setting from '../domains/Setting';
export default class SettingRepository {
async load() {
async load(): Promise<any> {
let { settings } = await browser.storage.local.get('settings');
if (!settings) {
return null;

View file

@ -3,19 +3,21 @@ import MemoryStorage from '../infrastructures/MemoryStorage';
const CACHED_SETTING_KEY = 'setting';
export default class SettingRepository {
private cache: MemoryStorage;
constructor() {
this.cache = new MemoryStorage();
}
get() {
get(): Promise<any> {
return Promise.resolve(this.cache.get(CACHED_SETTING_KEY));
}
update(value) {
update(value: any): any {
return this.cache.set(CACHED_SETTING_KEY, value);
}
async setProperty(name, value) {
async setProperty(name: string, value: string): Promise<any> {
let current = await this.get();
current.properties[name] = value;
return this.update(current);

View file

@ -1,10 +0,0 @@
export default class VersionRepository {
async get() {
let { version } = await browser.storage.local.get('version');
return version;
}
update(version) {
return browser.storage.local.set({ version });
}
}