UNPKG

@adguard/agtree

Version:
37 lines (34 loc) 1.48 kB
/* * AGTree v3.2.1 (build date: Wed, 28 May 2025 13:36:39 GMT) * (c) 2025 Adguard Software Ltd. * Released under the MIT license * https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme */ import { BaseSerializer } from '../../base-serializer.js'; import { ScriptletBodySerializer } from './scriptlet-body-serializer.js'; import { FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP } from '../../../marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js'; /** * `AdgScriptletInjectionBodySerializer` is responsible for serializing the body of an AdGuard-style scriptlet rule. * * Please note that the serializer will serialize any scriptlet rule if it is syntactically correct. * For example, it will serialize this: * ```adblock * example.com#%#//scriptlet('scriptlet0', 'arg0') * ``` * * but it doesn't check if the scriptlet `scriptlet0` is actually supported by any adblocker. * * @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#scriptlets} */ class AdgScriptletInjectionBodySerializer extends BaseSerializer { /** * Serializes a scriptlet call body node to binary format. * * @param node Node to serialize. * @param buffer ByteBuffer for writing binary data. */ static serialize(node, buffer) { ScriptletBodySerializer.serialize(node, buffer, FREQUENT_ADG_SCRIPTLET_ARGS_SERIALIZATION_MAP); } } export { AdgScriptletInjectionBodySerializer };