aboutsummaryrefslogtreecommitdiff
path: root/src/background/usecases
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2020-04-13 20:37:36 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2020-04-13 20:37:36 +0900
commite1dac618a8b8929f601c7ec8aca3842c5ebf9d03 (patch)
tree6a914a8243c8c02e7752a83667a54d3fa832955c /src/background/usecases
parent685f2b7b69218b06b5bb676069e35f79c5048c9b (diff)
Use plugin:prettier/recommended
Diffstat (limited to 'src/background/usecases')
-rw-r--r--src/background/usecases/AddonEnabledUseCase.ts12
-rw-r--r--src/background/usecases/CommandUseCase.ts54
-rw-r--r--src/background/usecases/ConsoleUseCase.ts34
-rw-r--r--src/background/usecases/FindUseCase.ts15
-rw-r--r--src/background/usecases/LinkUseCase.ts15
-rw-r--r--src/background/usecases/MarkUseCase.ts26
-rw-r--r--src/background/usecases/NavigateUseCase.ts21
-rw-r--r--src/background/usecases/RepeatUseCase.ts55
-rw-r--r--src/background/usecases/SettingUseCase.ts29
-rw-r--r--src/background/usecases/TabSelectUseCase.ts15
-rw-r--r--src/background/usecases/TabUseCase.ts29
-rw-r--r--src/background/usecases/VersionUseCase.ts15
-rw-r--r--src/background/usecases/ZoomUseCase.ts31
-rw-r--r--src/background/usecases/parsers.ts35
14 files changed, 198 insertions, 188 deletions
diff --git a/src/background/usecases/AddonEnabledUseCase.ts b/src/background/usecases/AddonEnabledUseCase.ts
index 51f02e1..f563ab0 100644
--- a/src/background/usecases/AddonEnabledUseCase.ts
+++ b/src/background/usecases/AddonEnabledUseCase.ts
@@ -1,21 +1,21 @@
-import { inject, injectable } from 'tsyringe';
-import IndicatorPresenter from '../presenters/IndicatorPresenter';
-import TabPresenter from '../presenters/TabPresenter';
-import ContentMessageClient from '../infrastructures/ContentMessageClient';
+import { inject, injectable } from "tsyringe";
+import IndicatorPresenter from "../presenters/IndicatorPresenter";
+import TabPresenter from "../presenters/TabPresenter";
+import ContentMessageClient from "../infrastructures/ContentMessageClient";
@injectable()
export default class AddonEnabledUseCase {
constructor(
private indicatorPresentor: IndicatorPresenter,
@inject("TabPresenter") private tabPresenter: TabPresenter,
- private contentMessageClient: ContentMessageClient,
+ private contentMessageClient: ContentMessageClient
) {
this.indicatorPresentor.onClick((tab) => {
if (tab.id) {
this.onIndicatorClick(tab.id);
}
});
- this.tabPresenter.onSelected(info => this.onTabSelected(info.tabId));
+ this.tabPresenter.onSelected((info) => this.onTabSelected(info.tabId));
}
indicate(enabled: boolean): Promise<void> {
diff --git a/src/background/usecases/CommandUseCase.ts b/src/background/usecases/CommandUseCase.ts
index d2d707e..811ec77 100644
--- a/src/background/usecases/CommandUseCase.ts
+++ b/src/background/usecases/CommandUseCase.ts
@@ -1,29 +1,29 @@
-import { injectable, inject } from 'tsyringe';
-import * as operations from '../../shared/operations';
-import * as parsers from './parsers';
-import * as urls from '../../shared/urls';
-import TabPresenter from '../presenters/TabPresenter';
-import WindowPresenter from '../presenters/WindowPresenter';
-import HelpPresenter from '../presenters/HelpPresenter';
-import CachedSettingRepository from '../repositories/CachedSettingRepository';
-import BookmarkRepository from '../repositories/BookmarkRepository';
-import ConsoleClient from '../infrastructures/ConsoleClient';
-import ContentMessageClient from '../infrastructures/ContentMessageClient';
-import RepeatUseCase from '../usecases/RepeatUseCase';
+import { injectable, inject } from "tsyringe";
+import * as operations from "../../shared/operations";
+import * as parsers from "./parsers";
+import * as urls from "../../shared/urls";
+import TabPresenter from "../presenters/TabPresenter";
+import WindowPresenter from "../presenters/WindowPresenter";
+import HelpPresenter from "../presenters/HelpPresenter";
+import CachedSettingRepository from "../repositories/CachedSettingRepository";
+import BookmarkRepository from "../repositories/BookmarkRepository";
+import ConsoleClient from "../infrastructures/ConsoleClient";
+import ContentMessageClient from "../infrastructures/ContentMessageClient";
+import RepeatUseCase from "../usecases/RepeatUseCase";
@injectable()
export default class CommandIndicator {
constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
+ @inject("TabPresenter") private tabPresenter: TabPresenter,
private windowPresenter: WindowPresenter,
private helpPresenter: HelpPresenter,
- @inject("CachedSettingRepository") private cachedSettingRepository: CachedSettingRepository,
+ @inject("CachedSettingRepository")
+ private cachedSettingRepository: CachedSettingRepository,
private bookmarkRepository: BookmarkRepository,
private consoleClient: ConsoleClient,
private contentMessageClient: ContentMessageClient,
- private repeatUseCase: RepeatUseCase,
- ) {
- }
+ private repeatUseCase: RepeatUseCase
+ ) {}
async open(keywords: string): Promise<browser.tabs.Tab> {
const url = await this.urlOrSearch(keywords);
@@ -67,14 +67,14 @@ export default class CommandIndicator {
throw new RangeError(`tab ${index + 1} does not exist`);
}
return this.tabPresenter.select(tabs[index].id as number);
- } else if (keywords.trim() === '%') {
+ } else if (keywords.trim() === "%") {
// Select current window
return;
- } else if (keywords.trim() === '#') {
+ } else if (keywords.trim() === "#") {
// Select last selected window
const lastId = await this.tabPresenter.getLastSelectedId();
- if (typeof lastId === 'undefined' || lastId === null) {
- throw new Error('No last selected tab');
+ if (typeof lastId === "undefined" || lastId === null) {
+ throw new Error("No last selected tab");
}
return this.tabPresenter.select(lastId);
}
@@ -82,7 +82,7 @@ export default class CommandIndicator {
const current = await this.tabPresenter.getCurrent();
const tabs = await this.tabPresenter.getByKeyword(keywords, false);
if (tabs.length === 0) {
- throw new RangeError('No matching buffer for ' + keywords);
+ throw new RangeError("No matching buffer for " + keywords);
}
for (const tab of tabs) {
if (tab.index > current.index) {
@@ -96,9 +96,9 @@ export default class CommandIndicator {
const excludePinned = !force;
const tabs = await this.tabPresenter.getByKeyword(keywords, excludePinned);
if (tabs.length === 0) {
- throw new Error('No matching buffer for ' + keywords);
+ throw new Error("No matching buffer for " + keywords);
} else if (tabs.length > 1) {
- throw new Error('More than one match for ' + keywords);
+ throw new Error("More than one match for " + keywords);
}
return this.tabPresenter.remove([tabs[0].id as number]);
}
@@ -106,7 +106,7 @@ export default class CommandIndicator {
async bdeletes(force: boolean, keywords: string): Promise<any> {
const excludePinned = !force;
const tabs = await this.tabPresenter.getByKeyword(keywords, excludePinned);
- const ids = tabs.map(tab => tab.id as number);
+ const ids = tabs.map((tab) => tab.id as number);
return this.tabPresenter.remove(ids);
}
@@ -117,14 +117,14 @@ export default class CommandIndicator {
async quitAll(): Promise<any> {
const tabs = await this.tabPresenter.getAll();
- const ids = tabs.map(tab => tab.id as number);
+ const ids = tabs.map((tab) => tab.id as number);
this.tabPresenter.remove(ids);
}
async addbookmark(title: string): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
const item = await this.bookmarkRepository.create(title, tab.url as string);
- const message = 'Saved current page: ' + item.url;
+ const message = "Saved current page: " + item.url;
return this.consoleClient.showInfo(tab.id as number, message);
}
diff --git a/src/background/usecases/ConsoleUseCase.ts b/src/background/usecases/ConsoleUseCase.ts
index 2de5bc1..195c70f 100644
--- a/src/background/usecases/ConsoleUseCase.ts
+++ b/src/background/usecases/ConsoleUseCase.ts
@@ -1,59 +1,57 @@
-import { inject, injectable } from 'tsyringe';
-import TabPresenter from '../presenters/TabPresenter';
-import ConsoleClient from '../infrastructures/ConsoleClient';
+import { inject, injectable } from "tsyringe";
+import TabPresenter from "../presenters/TabPresenter";
+import ConsoleClient from "../infrastructures/ConsoleClient";
@injectable()
export default class ConsoleUseCase {
-
constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
- private consoleClient: ConsoleClient,
- ) {
- }
+ @inject("TabPresenter") private tabPresenter: TabPresenter,
+ private consoleClient: ConsoleClient
+ ) {}
async showCommand(): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
- return this.consoleClient.showCommand(tab.id as number, '');
+ return this.consoleClient.showCommand(tab.id as number, "");
}
async showOpenCommand(alter: boolean): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
- let command = 'open ';
+ let command = "open ";
if (alter) {
- command += tab.url || '';
+ command += tab.url || "";
}
return this.consoleClient.showCommand(tab.id as number, command);
}
async showTabopenCommand(alter: boolean): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
- let command = 'tabopen ';
+ let command = "tabopen ";
if (alter) {
- command += tab.url || '';
+ command += tab.url || "";
}
return this.consoleClient.showCommand(tab.id as number, command);
}
async showWinopenCommand(alter: boolean): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
- let command = 'winopen ';
+ let command = "winopen ";
if (alter) {
- command += tab.url || '';
+ command += tab.url || "";
}
return this.consoleClient.showCommand(tab.id as number, command);
}
async showBufferCommand(): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
- const command = 'buffer ';
+ const command = "buffer ";
return this.consoleClient.showCommand(tab.id as number, command);
}
async showAddbookmarkCommand(alter: boolean): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
- let command = 'addbookmark ';
+ let command = "addbookmark ";
if (alter) {
- command += tab.title || '';
+ command += tab.title || "";
}
return this.consoleClient.showCommand(tab.id as number, command);
}
diff --git a/src/background/usecases/FindUseCase.ts b/src/background/usecases/FindUseCase.ts
index cb41cd5..facc461 100644
--- a/src/background/usecases/FindUseCase.ts
+++ b/src/background/usecases/FindUseCase.ts
@@ -1,16 +1,15 @@
-import { inject, injectable } from 'tsyringe';
-import FindRepository from '../repositories/FindRepository';
-import TabPresenter from '../presenters/TabPresenter';
-import ConsoleClient from '../infrastructures/ConsoleClient';
+import { inject, injectable } from "tsyringe";
+import FindRepository from "../repositories/FindRepository";
+import TabPresenter from "../presenters/TabPresenter";
+import ConsoleClient from "../infrastructures/ConsoleClient";
@injectable()
export default class FindUseCase {
constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
+ @inject("TabPresenter") private tabPresenter: TabPresenter,
private findRepository: FindRepository,
- private consoleClient: ConsoleClient,
- ) {
- }
+ private consoleClient: ConsoleClient
+ ) {}
getKeyword(): Promise<string> {
return this.findRepository.getKeyword();
diff --git a/src/background/usecases/LinkUseCase.ts b/src/background/usecases/LinkUseCase.ts
index be076c7..d2cd464 100644
--- a/src/background/usecases/LinkUseCase.ts
+++ b/src/background/usecases/LinkUseCase.ts
@@ -1,24 +1,23 @@
-import { inject, injectable } from 'tsyringe';
-import TabPresenter from '../presenters/TabPresenter';
+import { inject, injectable } from "tsyringe";
+import TabPresenter from "../presenters/TabPresenter";
@injectable()
export default class LinkUseCase {
- constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
- ) {
- }
+ constructor(@inject("TabPresenter") private tabPresenter: TabPresenter) {}
openToTab(url: string, tabId: number): Promise<any> {
return this.tabPresenter.open(url, tabId);
}
async openNewTab(
- url: string, openerId: number, background: boolean,
+ url: string,
+ openerId: number,
+ background: boolean
): Promise<any> {
const properties: any = { active: !background };
const platform = await browser.runtime.getPlatformInfo();
- if (platform.os !== 'android') {
+ if (platform.os !== "android") {
// openerTabId not supported on Android
properties.openerTabId = openerId;
}
diff --git a/src/background/usecases/MarkUseCase.ts b/src/background/usecases/MarkUseCase.ts
index 2c0bc13..9da9a21 100644
--- a/src/background/usecases/MarkUseCase.ts
+++ b/src/background/usecases/MarkUseCase.ts
@@ -1,18 +1,17 @@
-import { inject, injectable } from 'tsyringe';
-import TabPresenter from '../presenters/TabPresenter';
-import MarkRepository from '../repositories/MarkRepository';
-import ConsoleClient from '../infrastructures/ConsoleClient';
-import ContentMessageClient from '../infrastructures/ContentMessageClient';
+import { inject, injectable } from "tsyringe";
+import TabPresenter from "../presenters/TabPresenter";
+import MarkRepository from "../repositories/MarkRepository";
+import ConsoleClient from "../infrastructures/ConsoleClient";
+import ContentMessageClient from "../infrastructures/ContentMessageClient";
@injectable()
export default class MarkUseCase {
constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
+ @inject("TabPresenter") private tabPresenter: TabPresenter,
private markRepository: MarkRepository,
private consoleClient: ConsoleClient,
- private contentMessageClient: ContentMessageClient,
- ) {
- }
+ private contentMessageClient: ContentMessageClient
+ ) {}
async setGlobal(key: string, x: number, y: number): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
@@ -26,7 +25,9 @@ export default class MarkUseCase {
const mark = await this.markRepository.getMark(key);
if (!mark) {
return this.consoleClient.showError(
- current.id as number, 'Mark is not set');
+ current.id as number,
+ "Mark is not set"
+ );
}
try {
await this.contentMessageClient.scrollTo(mark.tabId, mark.x, mark.y);
@@ -34,7 +35,10 @@ export default class MarkUseCase {
} catch (e) {
const tab = await this.tabPresenter.create(mark.url);
return this.markRepository.setMark(key, {
- tabId: tab.id as number, url: mark.url, x: mark.x, y: mark.y,
+ tabId: tab.id as number,
+ url: mark.url,
+ x: mark.x,
+ y: mark.y,
});
}
}
diff --git a/src/background/usecases/NavigateUseCase.ts b/src/background/usecases/NavigateUseCase.ts
index 3aa1ed6..2e887e7 100644
--- a/src/background/usecases/NavigateUseCase.ts
+++ b/src/background/usecases/NavigateUseCase.ts
@@ -1,14 +1,13 @@
-import { inject, injectable } from 'tsyringe';
-import NavigateClient from '../clients/NavigateClient';
-import TabPresenter from '../presenters/TabPresenter';
+import { inject, injectable } from "tsyringe";
+import NavigateClient from "../clients/NavigateClient";
+import TabPresenter from "../presenters/TabPresenter";
@injectable()
export default class NavigateUseCase {
constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
- private navigateClient: NavigateClient,
- ) {
- }
+ @inject("TabPresenter") private tabPresenter: TabPresenter,
+ private navigateClient: NavigateClient
+ ) {}
async openHistoryNext(): Promise<void> {
const tab = await this.tabPresenter.getCurrent();
@@ -34,16 +33,16 @@ export default class NavigateUseCase {
const tab = await this.tabPresenter.getCurrent();
const url = new URL(tab.url!!);
if (url.hash.length > 0) {
- url.hash = '';
+ url.hash = "";
} else if (url.search.length > 0) {
- url.search = '';
+ url.search = "";
} else {
const basenamePattern = /\/[^/]+$/;
const lastDirPattern = /\/[^/]+\/$/;
if (basenamePattern.test(url.pathname)) {
- url.pathname = url.pathname.replace(basenamePattern, '/');
+ url.pathname = url.pathname.replace(basenamePattern, "/");
} else if (lastDirPattern.test(url.pathname)) {
- url.pathname = url.pathname.replace(lastDirPattern, '/');
+ url.pathname = url.pathname.replace(lastDirPattern, "/");
}
}
await this.tabPresenter.open(url.href);
diff --git a/src/background/usecases/RepeatUseCase.ts b/src/background/usecases/RepeatUseCase.ts
index d78de34..d7235ee 100644
--- a/src/background/usecases/RepeatUseCase.ts
+++ b/src/background/usecases/RepeatUseCase.ts
@@ -1,15 +1,12 @@
-import { injectable } from 'tsyringe';
-import * as operations from '../../shared/operations';
-import RepeatRepository from '../repositories/RepeatRepository';
+import { injectable } from "tsyringe";
+import * as operations from "../../shared/operations";
+import RepeatRepository from "../repositories/RepeatRepository";
type Operation = operations.Operation;
@injectable()
export default class RepeatUseCase {
- constructor(
- private repeatRepository: RepeatRepository,
- ) {
- }
+ constructor(private repeatRepository: RepeatRepository) {}
storeLastOperation(op: Operation): void {
this.repeatRepository.setLastOperation(op);
@@ -22,28 +19,28 @@ export default class RepeatUseCase {
// eslint-disable-next-line complexity
isRepeatable(op: Operation): boolean {
switch (op.type) {
- case operations.NAVIGATE_HISTORY_PREV:
- case operations.NAVIGATE_HISTORY_NEXT:
- case operations.NAVIGATE_LINK_PREV:
- case operations.NAVIGATE_LINK_NEXT:
- case operations.NAVIGATE_PARENT:
- case operations.NAVIGATE_ROOT:
- case operations.PAGE_SOURCE:
- case operations.PAGE_HOME:
- case operations.TAB_CLOSE:
- case operations.TAB_CLOSE_FORCE:
- case operations.TAB_CLOSE_RIGHT:
- case operations.TAB_REOPEN:
- case operations.TAB_RELOAD:
- case operations.TAB_PIN:
- case operations.TAB_UNPIN:
- case operations.TAB_TOGGLE_PINNED:
- case operations.TAB_DUPLICATE:
- case operations.ZOOM_IN:
- case operations.ZOOM_OUT:
- case operations.ZOOM_NEUTRAL:
- case operations.INTERNAL_OPEN_URL:
- return true;
+ case operations.NAVIGATE_HISTORY_PREV:
+ case operations.NAVIGATE_HISTORY_NEXT:
+ case operations.NAVIGATE_LINK_PREV:
+ case operations.NAVIGATE_LINK_NEXT:
+ case operations.NAVIGATE_PARENT:
+ case operations.NAVIGATE_ROOT:
+ case operations.PAGE_SOURCE:
+ case operations.PAGE_HOME:
+ case operations.TAB_CLOSE:
+ case operations.TAB_CLOSE_FORCE:
+ case operations.TAB_CLOSE_RIGHT:
+ case operations.TAB_REOPEN:
+ case operations.TAB_RELOAD:
+ case operations.TAB_PIN:
+ case operations.TAB_UNPIN:
+ case operations.TAB_TOGGLE_PINNED:
+ case operations.TAB_DUPLICATE:
+ case operations.ZOOM_IN:
+ case operations.ZOOM_OUT:
+ case operations.ZOOM_NEUTRAL:
+ case operations.INTERNAL_OPEN_URL:
+ return true;
}
return false;
}
diff --git a/src/background/usecases/SettingUseCase.ts b/src/background/usecases/SettingUseCase.ts
index 69b4572..ccee227 100644
--- a/src/background/usecases/SettingUseCase.ts
+++ b/src/background/usecases/SettingUseCase.ts
@@ -1,20 +1,21 @@
-import {inject, injectable} from 'tsyringe';
-import CachedSettingRepository from '../repositories/CachedSettingRepository';
-import SettingData, {DefaultSettingData} from '../../shared/SettingData';
-import Settings from '../../shared/settings/Settings';
-import Notifier from '../presenters/Notifier';
+import { inject, injectable } from "tsyringe";
+import CachedSettingRepository from "../repositories/CachedSettingRepository";
+import SettingData, { DefaultSettingData } from "../../shared/SettingData";
+import Settings from "../../shared/settings/Settings";
+import Notifier from "../presenters/Notifier";
import SettingRepository from "../repositories/SettingRepository";
@injectable()
export default class SettingUseCase {
-
constructor(
- @inject("LocalSettingRepository") private localSettingRepository: SettingRepository,
- @inject("SyncSettingRepository") private syncSettingRepository: SettingRepository,
- @inject("CachedSettingRepository") private cachedSettingRepository: CachedSettingRepository,
- @inject("Notifier") private notifier: Notifier,
- ) {
- }
+ @inject("LocalSettingRepository")
+ private localSettingRepository: SettingRepository,
+ @inject("SyncSettingRepository")
+ private syncSettingRepository: SettingRepository,
+ @inject("CachedSettingRepository")
+ private cachedSettingRepository: CachedSettingRepository,
+ @inject("Notifier") private notifier: Notifier
+ ) {}
getCached(): Promise<Settings> {
return this.cachedSettingRepository.get();
@@ -42,7 +43,7 @@ export default class SettingUseCase {
private async loadSettings(): Promise<SettingData> {
const sync = await this.syncSettingRepository.load();
if (sync) {
- return sync;
+ return sync;
}
const local = await this.localSettingRepository.load();
if (local) {
@@ -52,7 +53,7 @@ export default class SettingUseCase {
}
private showUnableToLoad(e: Error) {
- console.error('unable to load settings', e);
+ console.error("unable to load settings", e);
this.notifier.notifyInvalidSettings(() => {
browser.runtime.openOptionsPage();
});
diff --git a/src/background/usecases/TabSelectUseCase.ts b/src/background/usecases/TabSelectUseCase.ts
index 271bb6c..663ceb8 100644
--- a/src/background/usecases/TabSelectUseCase.ts
+++ b/src/background/usecases/TabSelectUseCase.ts
@@ -1,19 +1,16 @@
-import { inject, injectable } from 'tsyringe';
-import TabPresenter from '../presenters/TabPresenter';
+import { inject, injectable } from "tsyringe";
+import TabPresenter from "../presenters/TabPresenter";
@injectable()
export default class TabSelectUseCase {
- constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
- ) {
- }
+ constructor(@inject("TabPresenter") private tabPresenter: TabPresenter) {}
async selectPrev(count: number): Promise<any> {
const tabs = await this.tabPresenter.getAll();
if (tabs.length < 2) {
return;
}
- const tab = tabs.find(t => t.active);
+ const tab = tabs.find((t) => t.active);
if (!tab) {
return;
}
@@ -26,7 +23,7 @@ export default class TabSelectUseCase {
if (tabs.length < 2) {
return;
}
- const tab = tabs.find(t => t.active);
+ const tab = tabs.find((t) => t.active);
if (!tab) {
return;
}
@@ -46,7 +43,7 @@ export default class TabSelectUseCase {
async selectPrevSelected(): Promise<any> {
const tabId = await this.tabPresenter.getLastSelectedId();
- if (tabId === null || typeof tabId === 'undefined') {
+ if (tabId === null || typeof tabId === "undefined") {
return Promise.resolve();
}
return this.tabPresenter.select(tabId);
diff --git a/src/background/usecases/TabUseCase.ts b/src/background/usecases/TabUseCase.ts
index 418dde5..1439107 100644
--- a/src/background/usecases/TabUseCase.ts
+++ b/src/background/usecases/TabUseCase.ts
@@ -1,16 +1,15 @@
-import {inject, injectable} from 'tsyringe';
-import TabPresenter from '../presenters/TabPresenter';
-import WindowPresenter from '../presenters/WindowPresenter';
-import BrowserSettingRepository from '../repositories/BrowserSettingRepository';
+import { inject, injectable } from "tsyringe";
+import TabPresenter from "../presenters/TabPresenter";
+import WindowPresenter from "../presenters/WindowPresenter";
+import BrowserSettingRepository from "../repositories/BrowserSettingRepository";
@injectable()
export default class TabUseCase {
constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
+ @inject("TabPresenter") private tabPresenter: TabPresenter,
private windowPresenter: WindowPresenter,
- private browserSettingRepository: BrowserSettingRepository,
- ) {
- }
+ private browserSettingRepository: BrowserSettingRepository
+ ) {}
async close(force: boolean, selectLeft = false): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
@@ -27,7 +26,7 @@ export default class TabUseCase {
async closeRight(): Promise<any> {
const tabs = await this.tabPresenter.getAll();
tabs.sort((t1, t2) => t1.index - t2.index);
- const index = tabs.findIndex(t => t.active);
+ const index = tabs.findIndex((t) => t.active);
if (index < 0) {
return;
}
@@ -65,16 +64,18 @@ export default class TabUseCase {
async openPageSource(): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
- const url = 'view-source:' + tab.url;
+ const url = "view-source:" + tab.url;
return this.tabPresenter.create(url);
}
async openHome(newTab: boolean): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
const urls = await this.browserSettingRepository.getHomepageUrls();
- if (urls.length === 1 && urls[0] === 'about:home') {
+ if (urls.length === 1 && urls[0] === "about:home") {
// eslint-disable-next-line max-len
- throw new Error('Cannot open Firefox Home (about:home) by WebExtensions, set your custom URLs');
+ throw new Error(
+ "Cannot open Firefox Home (about:home) by WebExtensions, set your custom URLs"
+ );
}
if (urls.length === 1 && !newTab) {
return this.tabPresenter.open(urls[0], tab.id);
@@ -85,7 +86,9 @@ export default class TabUseCase {
}
async openURL(
- url: string, newTab?: boolean, newWindow?: boolean,
+ url: string,
+ newTab?: boolean,
+ newWindow?: boolean
): Promise<void> {
if (newWindow) {
await this.windowPresenter.create(url);
diff --git a/src/background/usecases/VersionUseCase.ts b/src/background/usecases/VersionUseCase.ts
index 21a5e2c..74df8a8 100644
--- a/src/background/usecases/VersionUseCase.ts
+++ b/src/background/usecases/VersionUseCase.ts
@@ -1,14 +1,13 @@
-import { injectable, inject } from 'tsyringe';
-import TabPresenter from '../presenters/TabPresenter';
-import Notifier from '../presenters/Notifier';
+import { injectable, inject } from "tsyringe";
+import TabPresenter from "../presenters/TabPresenter";
+import Notifier from "../presenters/Notifier";
@injectable()
export default class VersionUseCase {
constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
- @inject("Notifier") private notifier: Notifier,
- ) {
- }
+ @inject("TabPresenter") private tabPresenter: TabPresenter,
+ @inject("Notifier") private notifier: Notifier
+ ) {}
notify(): Promise<void> {
const manifest = browser.runtime.getManifest();
@@ -22,6 +21,6 @@ export default class VersionUseCase {
if (version) {
return `https://github.com/ueokande/vim-vixen/releases/tag/${version}`;
}
- return 'https://github.com/ueokande/vim-vixen/releases/';
+ return "https://github.com/ueokande/vim-vixen/releases/";
}
}
diff --git a/src/background/usecases/ZoomUseCase.ts b/src/background/usecases/ZoomUseCase.ts
index ca1368d..173e4d7 100644
--- a/src/background/usecases/ZoomUseCase.ts
+++ b/src/background/usecases/ZoomUseCase.ts
@@ -1,23 +1,32 @@
-import { inject, injectable } from 'tsyringe';
-import TabPresenter from '../presenters/TabPresenter';
+import { inject, injectable } from "tsyringe";
+import TabPresenter from "../presenters/TabPresenter";
const ZOOM_SETTINGS: number[] = [
- 0.33, 0.50, 0.66, 0.75, 0.80, 0.90, 1.00,
- 1.10, 1.25, 1.50, 1.75, 2.00, 2.50, 3.00
+ 0.33,
+ 0.5,
+ 0.66,
+ 0.75,
+ 0.8,
+ 0.9,
+ 1.0,
+ 1.1,
+ 1.25,
+ 1.5,
+ 1.75,
+ 2.0,
+ 2.5,
+ 3.0,
];
@injectable()
export default class ZoomUseCase {
- constructor(
- @inject('TabPresenter') private tabPresenter: TabPresenter,
- ) {
- }
+ constructor(@inject("TabPresenter") private tabPresenter: TabPresenter) {}
async zoomIn(): Promise<any> {
const tab = await this.tabPresenter.getCurrent();
const tabId = tab.id as number;
const current = await this.tabPresenter.getZoom(tabId);
- const factor = ZOOM_SETTINGS.find(f => f > current);
+ const factor = ZOOM_SETTINGS.find((f) => f > current);
if (factor) {
return this.tabPresenter.setZoom(tabId as number, factor);
}
@@ -27,7 +36,9 @@ export default class ZoomUseCase {
const tab = await this.tabPresenter.getCurrent();
const tabId = tab.id as number;
const current = await this.tabPresenter.getZoom(tabId);
- const factor = ZOOM_SETTINGS.slice(0).reverse().find(f => f < current);
+ const factor = ZOOM_SETTINGS.slice(0)
+ .reverse()
+ .find((f) => f < current);
if (factor) {
return this.tabPresenter.setZoom(tabId as number, factor);
}
diff --git a/src/background/usecases/parsers.ts b/src/background/usecases/parsers.ts
index 99ff2eb..23a6193 100644
--- a/src/background/usecases/parsers.ts
+++ b/src/background/usecases/parsers.ts
@@ -1,36 +1,39 @@
-import Properties from '../../shared/settings/Properties';
+import Properties from "../../shared/settings/Properties";
const mustNumber = (v: any): number => {
const num = Number(v);
if (isNaN(num)) {
- throw new Error('Not number: ' + v);
+ throw new Error("Not number: " + v);
}
return num;
};
-const parseSetOption = (
- args: string,
-): any[] => {
- let [key, value]: any[] = args.split('=');
+const parseSetOption = (args: string): any[] => {
+ let [key, value]: any[] = args.split("=");
if (value === undefined) {
- value = !key.startsWith('no');
+ value = !key.startsWith("no");
key = value ? key : key.slice(2);
}
const def = Properties.def(key);
if (!def) {
- throw new Error('Unknown property: ' + key);
+ throw new Error("Unknown property: " + key);
}
- if (def.type === 'boolean' && typeof value !== 'boolean' ||
- def.type !== 'boolean' && typeof value === 'boolean') {
- throw new Error('Invalid argument: ' + args);
+ if (
+ (def.type === "boolean" && typeof value !== "boolean") ||
+ (def.type !== "boolean" && typeof value === "boolean")
+ ) {
+ throw new Error("Invalid argument: " + args);
}
switch (def.type) {
- case 'string': return [key, value];
- case 'number': return [key, mustNumber(value)];
- case 'boolean': return [key, value];
- default:
- throw new Error('Unknown property type: ' + def.type);
+ case "string":
+ return [key, value];
+ case "number":
+ return [key, mustNumber(value)];
+ case "boolean":
+ return [key, value];
+ default:
+ throw new Error("Unknown property type: " + def.type);
}
};