Use TSyringe on content script
This commit is contained in:
parent
71f3a1ea2d
commit
1666e626b0
35 changed files with 398 additions and 433 deletions
|
@ -1,19 +1,17 @@
|
|||
import AddonIndicatorClient, { AddonIndicatorClientImpl }
|
||||
from '../client/AddonIndicatorClient';
|
||||
import AddonEnabledRepository, { AddonEnabledRepositoryImpl }
|
||||
from '../repositories/AddonEnabledRepository';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import AddonIndicatorClient from '../client/AddonIndicatorClient';
|
||||
import AddonEnabledRepository from '../repositories/AddonEnabledRepository';
|
||||
|
||||
@injectable()
|
||||
export default class AddonEnabledUseCase {
|
||||
private indicator: AddonIndicatorClient;
|
||||
|
||||
private repository: AddonEnabledRepository;
|
||||
constructor(
|
||||
@inject('AddonIndicatorClient')
|
||||
private indicator: AddonIndicatorClient,
|
||||
|
||||
constructor({
|
||||
indicator = new AddonIndicatorClientImpl(),
|
||||
repository = new AddonEnabledRepositoryImpl(),
|
||||
} = {}) {
|
||||
this.indicator = indicator;
|
||||
this.repository = repository;
|
||||
@inject('AddonEnabledRepository')
|
||||
private repository: AddonEnabledRepository,
|
||||
) {
|
||||
}
|
||||
|
||||
async enable(): Promise<void> {
|
||||
|
|
|
@ -1,31 +1,18 @@
|
|||
import { injectable, inject } from 'tsyringe';
|
||||
import * as urls from '../../shared/urls';
|
||||
import ClipboardRepository, { ClipboardRepositoryImpl }
|
||||
from '../repositories/ClipboardRepository';
|
||||
import SettingRepository, { SettingRepositoryImpl }
|
||||
from '../repositories/SettingRepository';
|
||||
import TabsClient, { TabsClientImpl }
|
||||
from '../client/TabsClient';
|
||||
import ConsoleClient, { ConsoleClientImpl } from '../client/ConsoleClient';
|
||||
import ClipboardRepository from '../repositories/ClipboardRepository';
|
||||
import SettingRepository from '../repositories/SettingRepository';
|
||||
import TabsClient from '../client/TabsClient';
|
||||
import ConsoleClient from '../client/ConsoleClient';
|
||||
|
||||
@injectable()
|
||||
export default class ClipboardUseCase {
|
||||
private repository: ClipboardRepository;
|
||||
|
||||
private settingRepository: SettingRepository;
|
||||
|
||||
private client: TabsClient;
|
||||
|
||||
private consoleClient: ConsoleClient;
|
||||
|
||||
constructor({
|
||||
repository = new ClipboardRepositoryImpl(),
|
||||
settingRepository = new SettingRepositoryImpl(),
|
||||
client = new TabsClientImpl(),
|
||||
consoleClient = new ConsoleClientImpl(),
|
||||
} = {}) {
|
||||
this.repository = repository;
|
||||
this.settingRepository = settingRepository;
|
||||
this.client = client;
|
||||
this.consoleClient = consoleClient;
|
||||
constructor(
|
||||
@inject('ClipboardRepository') private repository: ClipboardRepository,
|
||||
@inject('SettingRepository') private settingRepository: SettingRepository,
|
||||
@inject('TabsClient') private client: TabsClient,
|
||||
@inject('ConsoleClient') private consoleClient: ConsoleClient,
|
||||
) {
|
||||
}
|
||||
|
||||
async yankCurrentURL(): Promise<string> {
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
import ConsoleFramePresenter, { ConsoleFramePresenterImpl }
|
||||
from '../presenters/ConsoleFramePresenter';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import ConsoleFramePresenter from '../presenters/ConsoleFramePresenter';
|
||||
|
||||
@injectable()
|
||||
export default class ConsoleFrameUseCase {
|
||||
private consoleFramePresenter: ConsoleFramePresenter;
|
||||
|
||||
constructor({
|
||||
consoleFramePresenter = new ConsoleFramePresenterImpl(),
|
||||
} = {}) {
|
||||
this.consoleFramePresenter = consoleFramePresenter;
|
||||
constructor(
|
||||
@inject('ConsoleFramePresenter')
|
||||
private consoleFramePresenter: ConsoleFramePresenter,
|
||||
) {
|
||||
}
|
||||
|
||||
unfocus() {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import FindMasterClient, { FindMasterClientImpl }
|
||||
from '../client/FindMasterClient';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import FindMasterClient from '../client/FindMasterClient';
|
||||
|
||||
@injectable()
|
||||
export default class FindSlaveUseCase {
|
||||
private findMasterClient: FindMasterClient;
|
||||
|
||||
constructor({
|
||||
findMasterClient = new FindMasterClientImpl(),
|
||||
} = {}) {
|
||||
this.findMasterClient = findMasterClient;
|
||||
constructor(
|
||||
@inject('FindMasterClient') private findMasterClient: FindMasterClient,
|
||||
) {
|
||||
}
|
||||
|
||||
findNext() {
|
||||
|
|
|
@ -1,28 +1,17 @@
|
|||
import FindPresenter, { FindPresenterImpl } from '../presenters/FindPresenter';
|
||||
import FindRepository, { FindRepositoryImpl }
|
||||
from '../repositories/FindRepository';
|
||||
import FindClient, { FindClientImpl } from '../client/FindClient';
|
||||
import ConsoleClient, { ConsoleClientImpl } from '../client/ConsoleClient';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import FindPresenter from '../presenters/FindPresenter';
|
||||
import FindRepository from '../repositories/FindRepository';
|
||||
import FindClient from '../client/FindClient';
|
||||
import ConsoleClient from '../client/ConsoleClient';
|
||||
|
||||
@injectable()
|
||||
export default class FindUseCase {
|
||||
private presenter: FindPresenter;
|
||||
|
||||
private repository: FindRepository;
|
||||
|
||||
private client: FindClient;
|
||||
|
||||
private consoleClient: ConsoleClient;
|
||||
|
||||
constructor({
|
||||
presenter = new FindPresenterImpl() as FindPresenter,
|
||||
repository = new FindRepositoryImpl(),
|
||||
client = new FindClientImpl(),
|
||||
consoleClient = new ConsoleClientImpl(),
|
||||
} = {}) {
|
||||
this.presenter = presenter;
|
||||
this.repository = repository;
|
||||
this.client = client;
|
||||
this.consoleClient = consoleClient;
|
||||
constructor(
|
||||
@inject('FindPresenter') private presenter: FindPresenter,
|
||||
@inject('FindRepository') private repository: FindRepository,
|
||||
@inject('FindClient') private client: FindClient,
|
||||
@inject('ConsoleClient') private consoleClient: ConsoleClient,
|
||||
) {
|
||||
}
|
||||
|
||||
async startFind(keyword?: string): Promise<void> {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import FocusPresenter, { FocusPresenterImpl }
|
||||
from '../presenters/FocusPresenter';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import FocusPresenter from '../presenters/FocusPresenter';
|
||||
|
||||
@injectable()
|
||||
export default class FocusUseCases {
|
||||
private presenter: FocusPresenter;
|
||||
|
||||
constructor({
|
||||
presenter = new FocusPresenterImpl(),
|
||||
} = {}) {
|
||||
this.presenter = presenter;
|
||||
constructor(
|
||||
@inject('FocusPresenter') private presenter: FocusPresenter,
|
||||
) {
|
||||
}
|
||||
|
||||
focusFirstInput() {
|
||||
|
|
|
@ -1,31 +1,26 @@
|
|||
import FollowKeyRepository, { FollowKeyRepositoryImpl }
|
||||
from '../repositories/FollowKeyRepository';
|
||||
import FollowMasterRepository, { FollowMasterRepositoryImpl }
|
||||
from '../repositories/FollowMasterRepository';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import FollowKeyRepository from '../repositories/FollowKeyRepository';
|
||||
import FollowMasterRepository from '../repositories/FollowMasterRepository';
|
||||
import FollowSlaveClient, { FollowSlaveClientImpl }
|
||||
from '../client/FollowSlaveClient';
|
||||
import SettingRepository from '../repositories/SettingRepository';
|
||||
import HintKeyProducer from './HintKeyProducer';
|
||||
import SettingRepository, { SettingRepositoryImpl }
|
||||
from '../repositories/SettingRepository';
|
||||
|
||||
@injectable()
|
||||
export default class FollowMasterUseCase {
|
||||
private followKeyRepository: FollowKeyRepository;
|
||||
|
||||
private followMasterRepository: FollowMasterRepository;
|
||||
|
||||
private settingRepository: SettingRepository;
|
||||
|
||||
// TODO Make repository
|
||||
private producer: HintKeyProducer | null;
|
||||
|
||||
constructor({
|
||||
followKeyRepository = new FollowKeyRepositoryImpl(),
|
||||
followMasterRepository = new FollowMasterRepositoryImpl(),
|
||||
settingRepository = new SettingRepositoryImpl(),
|
||||
} = {}) {
|
||||
this.followKeyRepository = followKeyRepository;
|
||||
this.followMasterRepository = followMasterRepository;
|
||||
this.settingRepository = settingRepository;
|
||||
constructor(
|
||||
@inject('FollowKeyRepository')
|
||||
private followKeyRepository: FollowKeyRepository,
|
||||
|
||||
@inject('FollowMasterRepository')
|
||||
private followMasterRepository: FollowMasterRepository,
|
||||
|
||||
@inject('SettingRepository')
|
||||
private settingRepository: SettingRepository,
|
||||
) {
|
||||
this.producer = null;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
import FollowSlaveRepository, { FollowSlaveRepositoryImpl }
|
||||
from '../repositories/FollowSlaveRepository';
|
||||
import FollowPresenter, { FollowPresenterImpl }
|
||||
from '../presenters/FollowPresenter';
|
||||
import TabsClient, { TabsClientImpl } from '../client/TabsClient';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import FollowSlaveRepository from '../repositories/FollowSlaveRepository';
|
||||
import FollowPresenter from '../presenters/FollowPresenter';
|
||||
import TabsClient from '../client/TabsClient';
|
||||
import FollowMasterClient from '../client/FollowMasterClient';
|
||||
import { LinkHint, InputHint } from '../presenters/Hint';
|
||||
import FollowMasterClient, { FollowMasterClientImpl }
|
||||
from '../client/FollowMasterClient';
|
||||
import Key from '../domains/Key';
|
||||
|
||||
interface Size {
|
||||
|
@ -18,25 +16,21 @@ interface Point {
|
|||
y: number;
|
||||
}
|
||||
|
||||
@injectable()
|
||||
export default class FollowSlaveUseCase {
|
||||
private presenter: FollowPresenter;
|
||||
constructor(
|
||||
@inject('FollowPresenter')
|
||||
private presenter: FollowPresenter,
|
||||
|
||||
private tabsClient: TabsClient;
|
||||
@inject('TabsClient')
|
||||
private tabsClient: TabsClient,
|
||||
|
||||
private followMasterClient: FollowMasterClient;
|
||||
@inject('FollowMasterClient')
|
||||
private followMasterClient: FollowMasterClient,
|
||||
|
||||
private followSlaveRepository: FollowSlaveRepository;
|
||||
|
||||
constructor({
|
||||
presenter = new FollowPresenterImpl(),
|
||||
tabsClient = new TabsClientImpl(),
|
||||
followMasterClient = new FollowMasterClientImpl(window.top),
|
||||
followSlaveRepository = new FollowSlaveRepositoryImpl(),
|
||||
} = {}) {
|
||||
this.presenter = presenter;
|
||||
this.tabsClient = tabsClient;
|
||||
this.followMasterClient = followMasterClient;
|
||||
this.followSlaveRepository = followSlaveRepository;
|
||||
@inject('FollowSlaveRepository')
|
||||
private followSlaveRepository: FollowSlaveRepository,
|
||||
) {
|
||||
}
|
||||
|
||||
countTargets(viewSize: Size, framePosition: Point): void {
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
import KeymapRepository, { KeymapRepositoryImpl }
|
||||
from '../repositories/KeymapRepository';
|
||||
import SettingRepository, { SettingRepositoryImpl }
|
||||
from '../repositories/SettingRepository';
|
||||
import AddonEnabledRepository, { AddonEnabledRepositoryImpl }
|
||||
from '../repositories/AddonEnabledRepository';
|
||||
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import KeymapRepository from '../repositories/KeymapRepository';
|
||||
import SettingRepository from '../repositories/SettingRepository';
|
||||
import AddonEnabledRepository from '../repositories/AddonEnabledRepository';
|
||||
import * as operations from '../../shared/operations';
|
||||
import { Keymaps } from '../../shared/Settings';
|
||||
import Key from '../domains/Key';
|
||||
|
@ -17,22 +14,18 @@ const reservedKeymaps: Keymaps = {
|
|||
'<C-[>': { type: operations.CANCEL },
|
||||
};
|
||||
|
||||
|
||||
@injectable()
|
||||
export default class KeymapUseCase {
|
||||
private repository: KeymapRepository;
|
||||
constructor(
|
||||
@inject('KeymapRepository')
|
||||
private repository: KeymapRepository,
|
||||
|
||||
private settingRepository: SettingRepository;
|
||||
@inject('SettingRepository')
|
||||
private settingRepository: SettingRepository,
|
||||
|
||||
private addonEnabledRepository: AddonEnabledRepository;
|
||||
|
||||
constructor({
|
||||
repository = new KeymapRepositoryImpl(),
|
||||
settingRepository = new SettingRepositoryImpl(),
|
||||
addonEnabledRepository = new AddonEnabledRepositoryImpl(),
|
||||
} = {}) {
|
||||
this.repository = repository;
|
||||
this.settingRepository = settingRepository;
|
||||
this.addonEnabledRepository = addonEnabledRepository;
|
||||
@inject('AddonEnabledRepository')
|
||||
private addonEnabledRepository: AddonEnabledRepository,
|
||||
) {
|
||||
}
|
||||
|
||||
nextOp(key: Key): operations.Operation | null {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import MarkKeyRepository, { MarkKeyRepositoryImpl }
|
||||
from '../repositories/MarkKeyRepository';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import MarkKeyRepository from '../repositories/MarkKeyRepository';
|
||||
|
||||
@injectable()
|
||||
export default class MarkKeyUseCase {
|
||||
private repository: MarkKeyRepository;
|
||||
|
||||
constructor({
|
||||
repository = new MarkKeyRepositoryImpl()
|
||||
} = {}) {
|
||||
this.repository = repository;
|
||||
constructor(
|
||||
@inject('MarkKeyRepository') private repository: MarkKeyRepository,
|
||||
) {
|
||||
}
|
||||
|
||||
isSetMode(): boolean {
|
||||
|
|
|
@ -1,35 +1,19 @@
|
|||
import ScrollPresenter, { ScrollPresenterImpl }
|
||||
from '../presenters/ScrollPresenter';
|
||||
import MarkClient, { MarkClientImpl } from '../client/MarkClient';
|
||||
import MarkRepository, { MarkRepositoryImpl }
|
||||
from '../repositories/MarkRepository';
|
||||
import SettingRepository, { SettingRepositoryImpl }
|
||||
from '../repositories/SettingRepository';
|
||||
import ConsoleClient, { ConsoleClientImpl } from '../client/ConsoleClient';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import ScrollPresenter from '../presenters/ScrollPresenter';
|
||||
import MarkClient from '../client/MarkClient';
|
||||
import MarkRepository from '../repositories/MarkRepository';
|
||||
import SettingRepository from '../repositories/SettingRepository';
|
||||
import ConsoleClient from '../client/ConsoleClient';
|
||||
|
||||
@injectable()
|
||||
export default class MarkUseCase {
|
||||
private scrollPresenter: ScrollPresenter;
|
||||
|
||||
private client: MarkClient;
|
||||
|
||||
private repository: MarkRepository;
|
||||
|
||||
private settingRepository: SettingRepository;
|
||||
|
||||
private consoleClient: ConsoleClient;
|
||||
|
||||
constructor({
|
||||
scrollPresenter = new ScrollPresenterImpl(),
|
||||
client = new MarkClientImpl(),
|
||||
repository = new MarkRepositoryImpl(),
|
||||
settingRepository = new SettingRepositoryImpl(),
|
||||
consoleClient = new ConsoleClientImpl(),
|
||||
} = {}) {
|
||||
this.scrollPresenter = scrollPresenter;
|
||||
this.client = client;
|
||||
this.repository = repository;
|
||||
this.settingRepository = settingRepository;
|
||||
this.consoleClient = consoleClient;
|
||||
constructor(
|
||||
@inject('ScrollPresenter') private scrollPresenter: ScrollPresenter,
|
||||
@inject('MarkClient') private client: MarkClient,
|
||||
@inject('MarkRepository') private repository: MarkRepository,
|
||||
@inject('SettingRepository') private settingRepository: SettingRepository,
|
||||
@inject('ConsoleClient') private consoleClient: ConsoleClient,
|
||||
) {
|
||||
}
|
||||
|
||||
async set(key: string): Promise<void> {
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
import NavigationPresenter, { NavigationPresenterImpl }
|
||||
from '../presenters/NavigationPresenter';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import NavigationPresenter from '../presenters/NavigationPresenter';
|
||||
|
||||
@injectable()
|
||||
export default class NavigateUseCase {
|
||||
private navigationPresenter: NavigationPresenter;
|
||||
|
||||
constructor({
|
||||
navigationPresenter = new NavigationPresenterImpl(),
|
||||
} = {}) {
|
||||
this.navigationPresenter = navigationPresenter;
|
||||
constructor(
|
||||
@inject('NavigationPresenter')
|
||||
private navigationPresenter: NavigationPresenter,
|
||||
) {
|
||||
}
|
||||
|
||||
openHistoryPrev(): void {
|
||||
|
|
|
@ -1,19 +1,13 @@
|
|||
import ScrollPresenter, { ScrollPresenterImpl }
|
||||
from '../presenters/ScrollPresenter';
|
||||
import SettingRepository, { SettingRepositoryImpl }
|
||||
from '../repositories/SettingRepository';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import ScrollPresenter from '../presenters/ScrollPresenter';
|
||||
import SettingRepository from '../repositories/SettingRepository';
|
||||
|
||||
@injectable()
|
||||
export default class ScrollUseCase {
|
||||
private presenter: ScrollPresenter;
|
||||
|
||||
private settingRepository: SettingRepository;
|
||||
|
||||
constructor({
|
||||
presenter = new ScrollPresenterImpl(),
|
||||
settingRepository = new SettingRepositoryImpl(),
|
||||
} = {}) {
|
||||
this.presenter = presenter;
|
||||
this.settingRepository = settingRepository;
|
||||
constructor(
|
||||
@inject('ScrollPresenter') private presenter: ScrollPresenter,
|
||||
@inject('SettingRepository') private settingRepository: SettingRepository,
|
||||
) {
|
||||
}
|
||||
|
||||
scrollVertically(count: number): void {
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
import SettingRepository, { SettingRepositoryImpl }
|
||||
from '../repositories/SettingRepository';
|
||||
import SettingClient, { SettingClientImpl } from '../client/SettingClient';
|
||||
import { injectable, inject } from 'tsyringe';
|
||||
import SettingRepository from '../repositories/SettingRepository';
|
||||
import SettingClient from '../client/SettingClient';
|
||||
import Settings from '../../shared/Settings';
|
||||
|
||||
@injectable()
|
||||
export default class SettingUseCase {
|
||||
private repository: SettingRepository;
|
||||
|
||||
private client: SettingClient;
|
||||
|
||||
constructor({
|
||||
repository = new SettingRepositoryImpl(),
|
||||
client = new SettingClientImpl(),
|
||||
} = {}) {
|
||||
this.repository = repository;
|
||||
this.client = client;
|
||||
constructor(
|
||||
@inject('SettingRepository') private repository: SettingRepository,
|
||||
@inject('SettingClient') private client: SettingClient,
|
||||
) {
|
||||
}
|
||||
|
||||
async reload(): Promise<Settings> {
|
||||
|
|
Reference in a new issue