uts2puerts
Version:
A tool to convert uts project to puerts project.
32 lines (31 loc) • 1.15 kB
JavaScript
import fs from 'fs-extra';
export class RuleParser {
async read(ruleFile) {
const out = [];
const content = await fs.readFile(ruleFile, 'utf-8');
const parts = content.split(/(?:\r?\n)+-{12}(?:\r?\n)*/);
for (const p of parts) {
if (p === '')
continue;
const ruleset = p.split(/(?:\r?\n)+>{12}(?:\r?\n)+/);
const head = ruleset[0].split(/(?:\r?\n)+/);
const file = head[0];
if (file === 'file')
continue;
let imports = undefined;
if (head.length > 1) {
imports = head.slice(1);
}
const rules = [];
for (let i = 1, len = ruleset.length; i < len; i++) {
const pair = ruleset[i].split(/(?:\r?\n)+<{12}(?:\r?\n)+/);
const searchValue = pair[0];
const replaceValue = pair[1];
rules.push({ searchValue, replaceValue });
}
if (rules.length > 0)
out.push({ file, imports, rules });
}
return out;
}
}