Types on src/background
This commit is contained in:
parent
0cffb09e24
commit
678020a3a2
48 changed files with 446 additions and 431 deletions
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
Reference in a new issue