SukkaW 2035f5ea96
Some checks are pending
Build / Build (push) Waiting to run
Build / Diff output (push) Blocked by required conditions
Build / Deploy to Cloudflare Pages (push) Blocked by required conditions
Build / Deploy to GitHub and GitLab (push) Blocked by required conditions
Refactor: refine writing strategy
2025-02-01 00:04:09 +08:00

21 lines
711 B
TypeScript

import type { Span } from '../../trace';
import type { BaseWriteStrategy } from '../writing-strategy/base';
import { ClashClassicRuleSet, ClashIPSet } from '../writing-strategy/clash';
import { SingboxSource } from '../writing-strategy/singbox';
import { SurgeRuleSet } from '../writing-strategy/surge';
import { FileOutput } from './base';
export class IPListOutput extends FileOutput {
strategies: Array<false | BaseWriteStrategy>;
constructor(span: Span, id: string, private readonly clashUseRule = true) {
super(span, id);
this.strategies = [
new SurgeRuleSet('ip'),
this.clashUseRule ? new ClashClassicRuleSet('ip') : new ClashIPSet(),
new SingboxSource('ip')
];
}
}