visible/visible

View on GitHub
packages/@visi/core/src/visible/visible.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Observable } from 'rxjs';

import { Driver } from '../driver';
import { Provider } from '../provider';
import { Progress, Rule } from '../rule';
import { Settings } from '../settings';
import { Capturer } from './capturer';
import { DiagnoseParam, Validator } from './validator';
import { Website } from './website';

// Facade
export class Visible {
  private readonly validator: Validator;
  private readonly capturer: Capturer;

  constructor(
    settings: Settings,
    readonly driver: Driver,
    rules: Rule[],
    provider: Provider,
  ) {
    this.validator = new Validator(settings, driver, rules, provider);
    this.capturer = new Capturer(settings, driver);
  }

  diagnose(params: DiagnoseParam): Observable<Progress> {
    return this.validator.diagnose(params);
  }

  capture(url: string): Promise<Website> {
    return this.capturer.capture(url);
  }

  /** @experimental */
  async quit(): Promise<void> {
    await this.driver.quit();
  }
}