/
liveprogramma
/
liveprogrammav2
Обзор
Документация
Войти
/
liveprogramma
/
liveprogrammav2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
node_modules/fast-xml-parser/src/v5/OptionsBuilder.js
63 строки
2 KB
EPG Robot 🤖
🤖 EPG обновление [2026-06-21 19:53 UTC]
21 июн 2026, 22:53
21 июн 2026, 22:53
f913447
Код
Авторство
О чём код?
const JsObjOutputBuilder = require("./OutputBuilders/JsObjBuilder"); const defaultOptions = { preserveOrder: false, removeNSPrefix: false, // remove NS from tag name or attribute name if true //ignoreRootElement : false, stopNodes: [], //nested tags will not be parsed even for errors // isArray: () => false, //User will set it htmlEntities: false, // skipEmptyListItem: false tags:{ unpaired: [], nameFor:{ cdata: false, comment: false, text: '#text' }, separateTextProperty: false, }, attributes:{ ignore: false, booleanType: true, entities: true, }, // select: ["img[src]"], // stop: ["anim", "[ads]"] only: [], // rest tags will be skipped. It will result in flat array hierarchy: false, //will be used when a particular tag is set to be parsed. skip: [], // will be skipped from parse result. on('skip') will be triggered select: [], // on('select', tag => tag ) will be called if match stop: [], //given tagPath will not be parsed. innerXML will be set as string value OutputBuilder: new JsObjOutputBuilder(), }; const buildOptions = function(options) { const finalOptions = { ... defaultOptions}; copyProperties(finalOptions,options) return finalOptions; }; function copyProperties(target, source) { for (let key in source) { if (source.hasOwnProperty(key)) { if (key === 'OutputBuilder') { target[key] = source[key]; }else if (typeof source[key] === 'object' && !Array.isArray(source[key])) { // Recursively copy nested properties if (typeof target[key] === 'undefined') { target[key] = {}; } copyProperties(target[key], source[key]); } else { // Copy non-nested properties target[key] = source[key]; } } } } exports.buildOptions = buildOptions; exports.defaultOptions = defaultOptions;