AirBnb only imports JavaScript rules and some fail for TypeScript files. This commit overrides those rules with TypeScript equivalents. Changes here can be mostly replaced when Vue natively support TypeScript for Airbnb (vuejs/eslint-config-airbnb#23). Enables @typescript-eslint/indent even though it's broken and it will not be fixed typescript-eslint/typescript-eslint#1824 until prettifier is used, because it is still useful. Change broken rules with TypeScript variants: - `no-useless-constructor` eslint/eslint#14118 typescript-eslint/typescript-eslint#873 - `no-shadow` eslint/eslint#13044 typescript-eslint/typescript-eslint#2483 typescript-eslint/typescript-eslint#325 typescript-eslint/typescript-eslint#2552 typescript-eslint/typescript-eslint#2484 typescript-eslint/typescript-eslint#2466
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import { IUserSelection } from '@/application/Context/State/Selection/IUserSelection';
|
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
|
import { IScript } from '@/domain/IScript';
|
|
import { IEventSource } from '@/infrastructure/Events/IEventSource';
|
|
import { EventSource } from '@/infrastructure/Events/EventSource';
|
|
|
|
export class UserSelectionStub implements IUserSelection {
|
|
public readonly changed: IEventSource<readonly SelectedScript[]> =
|
|
new EventSource<readonly SelectedScript[]>();
|
|
|
|
public selectedScripts: readonly SelectedScript[] = [];
|
|
|
|
constructor(private readonly allScripts: readonly IScript[]) {
|
|
|
|
}
|
|
|
|
public withSelectedScripts(selectedScripts: readonly SelectedScript[]) {
|
|
this.selectedScripts = selectedScripts;
|
|
}
|
|
|
|
public areAllSelected(): boolean {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public isAnySelected(): boolean {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public removeAllInCategory(): void {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public addOrUpdateAllInCategory(): void {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public addSelectedScript(): void {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public addOrUpdateSelectedScript(): void {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public removeSelectedScript(): void {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public selectOnly(scripts: ReadonlyArray<IScript>): void {
|
|
this.selectedScripts = scripts.map((s) => new SelectedScript(s, false));
|
|
}
|
|
|
|
public isSelected(): boolean {
|
|
throw new Error('Method not implemented.');
|
|
}
|
|
|
|
public selectAll(): void {
|
|
this.selectOnly(this.allScripts);
|
|
}
|
|
|
|
public deselectAll(): void {
|
|
this.selectedScripts = [];
|
|
}
|
|
}
|