domainset.ts 894 B

123456789101112131415161718192021222324252627282930313233
  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. protected type = 'domainset' as const;
  10. strategies: Array<false | BaseWriteStrategy> = [
  11. new SurgeDomainSet(),
  12. new ClashDomainSet(),
  13. new SingboxSource(this.type)
  14. ];
  15. }
  16. export class AdGuardHomeOutput extends FileOutput {
  17. strategies: Array<false | BaseWriteStrategy>;
  18. constructor(
  19. span: Span,
  20. id: string,
  21. outputDir: string
  22. ) {
  23. super(span, id);
  24. this.strategies = [
  25. new AdGuardHome(outputDir)
  26. ];
  27. }
  28. }