@adguard/agtree
Version:
Tool set for working with adblock filter lists
43 lines (40 loc) • 1.3 kB
JavaScript
/*
* AGTree v4.1.1 (build date: Thu, 23 Apr 2026 09:15:37 GMT)
* (c) 2026 Adguard Software Ltd.
* Released under the MIT license
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
*/
import { NetworkRuleType, RuleCategory } from '../nodes/index.js';
import { AdblockSyntax } from '../utils/adblockers.js';
import { clone } from '../utils/clone.js';
import { isUndefined } from '../utils/type-guards.js';
/**
* @file Utility functions for working with network rule nodes.
*/
/**
* Creates a network rule node.
*
* @param pattern Rule pattern.
* @param modifiers Rule modifiers (optional, default: undefined).
* @param exception Exception rule flag (optional, default: false).
* @param syntax Adblock syntax (optional, default: Common).
*
* @returns Network rule node.
*/
function createNetworkRuleNode(pattern, modifiers = undefined, exception = false, syntax = AdblockSyntax.Common) {
const result = {
category: RuleCategory.Network,
type: NetworkRuleType.NetworkRule,
syntax,
exception,
pattern: {
type: 'Value',
value: pattern,
},
};
if (!isUndefined(modifiers)) {
result.modifiers = clone(modifiers);
}
return result;
}
export { createNetworkRuleNode };