update, text, response
This commit is contained in:
99
node_modules/fast-xml-parser/src/v5/OutputBuilders/ParserOptionsBuilder.js
generated
vendored
Normal file
99
node_modules/fast-xml-parser/src/v5/OutputBuilders/ParserOptionsBuilder.js
generated
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
const trimParser = require("../valueParsers/trim")
|
||||
const booleanParser = require("../valueParsers/booleanParser")
|
||||
const currencyParser = require("../valueParsers/currency")
|
||||
const numberParser = require("../valueParsers/number")
|
||||
|
||||
const defaultOptions={
|
||||
nameFor:{
|
||||
text: "#text",
|
||||
comment: "",
|
||||
cdata: "",
|
||||
},
|
||||
// onTagClose: () => {},
|
||||
// onAttribute: () => {},
|
||||
piTag: false,
|
||||
declaration: false, //"?xml"
|
||||
tags: {
|
||||
valueParsers: [
|
||||
// "trim",
|
||||
// "boolean",
|
||||
// "number",
|
||||
// "currency",
|
||||
// "date",
|
||||
]
|
||||
},
|
||||
attributes:{
|
||||
prefix: "@_",
|
||||
suffix: "",
|
||||
groupBy: "",
|
||||
|
||||
valueParsers: [
|
||||
// "trim",
|
||||
// "boolean",
|
||||
// "number",
|
||||
// "currency",
|
||||
// "date",
|
||||
]
|
||||
},
|
||||
dataType:{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//TODO
|
||||
const withJoin = ["trim","join", /*"entities",*/"number","boolean","currency"/*, "date"*/]
|
||||
const withoutJoin = ["trim", /*"entities",*/"number","boolean","currency"/*, "date"*/]
|
||||
|
||||
function buildOptions(options){
|
||||
//clone
|
||||
const finalOptions = { ... defaultOptions};
|
||||
|
||||
//add config missed in cloning
|
||||
finalOptions.tags.valueParsers.push(...withJoin)
|
||||
if(!this.preserveOrder)
|
||||
finalOptions.tags.valueParsers.push(...withoutJoin);
|
||||
|
||||
//add config missed in cloning
|
||||
finalOptions.attributes.valueParsers.push(...withJoin)
|
||||
|
||||
//override configuration
|
||||
copyProperties(finalOptions,options);
|
||||
return finalOptions;
|
||||
}
|
||||
|
||||
function copyProperties(target, source) {
|
||||
for (let key in source) {
|
||||
if (source.hasOwnProperty(key)) {
|
||||
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];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function registerCommonValueParsers(options){
|
||||
return {
|
||||
"trim": new trimParser(),
|
||||
// "join": this.entityParser.parse,
|
||||
"boolean": new booleanParser(),
|
||||
"number": new numberParser({
|
||||
hex: true,
|
||||
leadingZeros: true,
|
||||
eNotation: true
|
||||
}),
|
||||
"currency": new currencyParser(),
|
||||
// "date": this.entityParser.parse,
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
buildOptions : buildOptions,
|
||||
registerCommonValueParsers: registerCommonValueParsers
|
||||
}
|
||||
Reference in New Issue
Block a user