mirror of
https://github.com/gorhill/uBlock.git
synced 2024-10-06 09:37:12 +02:00
[mv3] Have one rule per line in ruleset files
This commit is contained in:
parent
7e44db763e
commit
af0a3f4abb
@ -295,9 +295,15 @@ function pruneHostnameArray(hostnames) {
|
|||||||
return assemble(rootMap, '', []);
|
return assemble(rootMap, '', []);
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* One rule per line for compromise between size and readability. This also
|
||||||
|
* means that the number of lines in resulting file representative of the
|
||||||
|
* number of rules in the ruleset.
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
async function processNetworkFilters(assetDetails, network) {
|
function toJSONRuleset(ruleset) {
|
||||||
const replacer = (k, v) => {
|
const replacer = (k, v) => {
|
||||||
if ( k.startsWith('_') ) { return; }
|
if ( k.startsWith('_') ) { return; }
|
||||||
if ( Array.isArray(v) ) {
|
if ( Array.isArray(v) ) {
|
||||||
@ -312,7 +318,16 @@ async function processNetworkFilters(assetDetails, network) {
|
|||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
};
|
};
|
||||||
|
const out = [];
|
||||||
|
for ( const rule of ruleset ) {
|
||||||
|
out.push(JSON.stringify(rule, replacer));
|
||||||
|
}
|
||||||
|
return `[\n${out.join(',\n')}\n]\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
async function processNetworkFilters(assetDetails, network) {
|
||||||
const { ruleset: rules } = network;
|
const { ruleset: rules } = network;
|
||||||
log(`Input filter count: ${network.filterCount}`);
|
log(`Input filter count: ${network.filterCount}`);
|
||||||
log(`\tAccepted filter count: ${network.acceptedFilterCount}`);
|
log(`\tAccepted filter count: ${network.acceptedFilterCount}`);
|
||||||
@ -394,38 +409,36 @@ async function processNetworkFilters(assetDetails, network) {
|
|||||||
log(`\tUnsupported: ${bad.length}`);
|
log(`\tUnsupported: ${bad.length}`);
|
||||||
log(bad.map(rule => rule._error.map(v => `\t\t${v}`)).join('\n'), true);
|
log(bad.map(rule => rule._error.map(v => `\t\t${v}`)).join('\n'), true);
|
||||||
|
|
||||||
const jsonIndent = platform !== 'firefox' ? 1 : undefined;
|
|
||||||
|
|
||||||
writeFile(
|
writeFile(
|
||||||
`${rulesetDir}/main/${assetDetails.id}.json`,
|
`${rulesetDir}/main/${assetDetails.id}.json`,
|
||||||
`${JSON.stringify(plainGood, replacer, jsonIndent)}\n`
|
toJSONRuleset(plainGood)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( regexes.length !== 0 ) {
|
if ( regexes.length !== 0 ) {
|
||||||
writeFile(
|
writeFile(
|
||||||
`${rulesetDir}/regex/${assetDetails.id}.json`,
|
`${rulesetDir}/regex/${assetDetails.id}.json`,
|
||||||
`${JSON.stringify(regexes, replacer, 1)}\n`
|
toJSONRuleset(regexes)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( removeparamsGood.length !== 0 ) {
|
if ( removeparamsGood.length !== 0 ) {
|
||||||
writeFile(
|
writeFile(
|
||||||
`${rulesetDir}/removeparam/${assetDetails.id}.json`,
|
`${rulesetDir}/removeparam/${assetDetails.id}.json`,
|
||||||
`${JSON.stringify(removeparamsGood, replacer, 1)}\n`
|
toJSONRuleset(removeparamsGood)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( redirects.length !== 0 ) {
|
if ( redirects.length !== 0 ) {
|
||||||
writeFile(
|
writeFile(
|
||||||
`${rulesetDir}/redirect/${assetDetails.id}.json`,
|
`${rulesetDir}/redirect/${assetDetails.id}.json`,
|
||||||
`${JSON.stringify(redirects, replacer, 1)}\n`
|
toJSONRuleset(redirects)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( modifyHeaders.length !== 0 ) {
|
if ( modifyHeaders.length !== 0 ) {
|
||||||
writeFile(
|
writeFile(
|
||||||
`${rulesetDir}/modify-headers/${assetDetails.id}.json`,
|
`${rulesetDir}/modify-headers/${assetDetails.id}.json`,
|
||||||
`${JSON.stringify(modifyHeaders, replacer, 1)}\n`
|
toJSONRuleset(modifyHeaders)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user