import type { Span } from '../../trace'; import { AdGuardHome } from '../writing-strategy/adguardhome'; import type { BaseWriteStrategy } from '../writing-strategy/base'; import { ClashDomainSet } from '../writing-strategy/clash'; import { SingboxSource } from '../writing-strategy/singbox'; import { SurgeDomainSet } from '../writing-strategy/surge'; import { FileOutput } from './base'; export class DomainsetOutput extends FileOutput { protected type = 'domainset' as const; strategies: Array = [ new SurgeDomainSet(), new ClashDomainSet(), new SingboxSource(this.type) ]; } export class AdGuardHomeOutput extends FileOutput { strategies: Array; constructor( span: Span, id: string, outputDir: string ) { super(span, id); this.strategies = [ new AdGuardHome(outputDir) ]; } }