domainset.ts 854 B

12345678910111213141516171819202122232425262728293031
  1. import type { Span } from '../../trace';
  2. import { AdGuardHome } from '../writing-strategy/adguardhome';
  3. import type { BaseWriteStrategy } from '../writing-strategy/base';
  4. import { ClashDomainSet } from '../writing-strategy/clash';
  5. import { SingboxSource } from '../writing-strategy/singbox';
  6. import { SurgeDomainSet } from '../writing-strategy/surge';
  7. import { FileOutput } from './base';
  8. export class DomainsetOutput extends FileOutput {
  9. strategies: Array<false | BaseWriteStrategy> = [
  10. new SurgeDomainSet(),
  11. new ClashDomainSet(),
  12. new SingboxSource('domainset')
  13. ];
  14. }
  15. export class AdGuardHomeOutput extends FileOutput {
  16. strategies: Array<false | BaseWriteStrategy>;
  17. constructor(
  18. span: Span,
  19. id: string,
  20. outputDir: string
  21. ) {
  22. super(span, id);
  23. this.strategies = [
  24. new AdGuardHome(outputDir)
  25. ];
  26. }
  27. }