diff options
Diffstat (limited to 'src/background/usecases')
| -rw-r--r-- | src/background/usecases/AddonEnabledUseCase.ts | 12 | ||||
| -rw-r--r-- | src/background/usecases/CommandUseCase.ts | 54 | ||||
| -rw-r--r-- | src/background/usecases/ConsoleUseCase.ts | 34 | ||||
| -rw-r--r-- | src/background/usecases/FindUseCase.ts | 15 | ||||
| -rw-r--r-- | src/background/usecases/LinkUseCase.ts | 15 | ||||
| -rw-r--r-- | src/background/usecases/MarkUseCase.ts | 26 | ||||
| -rw-r--r-- | src/background/usecases/NavigateUseCase.ts | 21 | ||||
| -rw-r--r-- | src/background/usecases/RepeatUseCase.ts | 55 | ||||
| -rw-r--r-- | src/background/usecases/SettingUseCase.ts | 29 | ||||
| -rw-r--r-- | src/background/usecases/TabSelectUseCase.ts | 15 | ||||
| -rw-r--r-- | src/background/usecases/TabUseCase.ts | 29 | ||||
| -rw-r--r-- | src/background/usecases/VersionUseCase.ts | 15 | ||||
| -rw-r--r-- | src/background/usecases/ZoomUseCase.ts | 31 | ||||
| -rw-r--r-- | src/background/usecases/parsers.ts | 35 | 
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);    }  }; | 
