patchwork-preloadconverter
Version:
A specialized converter for handling preload (.pld) files.
52 lines • 4.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PreloadConverter = void 0;
const fs_1 = require("fs");
const promises_1 = require("fs/promises");
const LoggerFactory_1 = require("../logging/LoggerFactory");
const readline_1 = require("readline");
const node_os_1 = require("node:os");
const log = LoggerFactory_1.LoggerFactory.createLogger("PreloadConverter");
const preloadRegex = /call Preload\(\s*\"(?<content>.*)\"\s*\)/gm;
async function extractPreloadLines(inputPath) {
const fileStream = (0, fs_1.createReadStream)(inputPath);
const readLine = (0, readline_1.createInterface)({ input: fileStream, crlfDelay: Infinity });
let lineNumber = 0;
let startFound = false;
const result = [];
for await (const line of readLine) {
if (line.includes("PreloadEnd")) {
break;
}
if (startFound) {
result.push(line);
}
if (line.includes("PreloadStart")) {
startFound = true;
}
lineNumber++;
}
fileStream.close();
return result;
}
function filterPreloadCalls(preloadLines) {
return preloadLines.map(it => {
preloadRegex.lastIndex = 0;
const result = preloadRegex.exec(it);
return result?.groups?.content;
}).map(it => (it == null) ? "" : it);
}
async function writeLinesToFile(lines, outputPath) {
await (0, promises_1.writeFile)(outputPath, lines.join(node_os_1.EOL));
}
exports.PreloadConverter = {
async convertPreloadFile(inputPath, outputPath) {
log.info(`Converting '${inputPath}' to '${outputPath}'`);
const preloadLines = await extractPreloadLines(inputPath);
log.info(`Found ${preloadLines.length} lines.`);
const contentLines = filterPreloadCalls(preloadLines);
await writeLinesToFile(contentLines, outputPath);
log.info(`Exported preload content to '${outputPath}'`);
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlbG9hZENvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0ZXIvUHJlbG9hZENvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBc0M7QUFDdEMsMENBQXdDO0FBQ3hDLDREQUF5RDtBQUN6RCx1Q0FBMkM7QUFDM0MscUNBQThCO0FBRTlCLE1BQU0sR0FBRyxHQUFHLDZCQUFhLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFM0QsTUFBTSxZQUFZLEdBQUcsNENBQTRDLENBQUM7QUFFbEUsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFNBQWlCO0lBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUEscUJBQWdCLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBQSwwQkFBZSxFQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM1RSxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNO1FBQ1YsQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxVQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLENBQUM7UUFFRCxVQUFVLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRW5CLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLFlBQXNCO0lBQzlDLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUN6QixZQUFZLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3BDLE9BQU8sTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUE7SUFDbEMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxLQUFlLEVBQUUsVUFBa0I7SUFDL0QsTUFBTSxJQUFBLG9CQUFTLEVBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBRyxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRVksUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtRQUMxRCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsU0FBUyxTQUFTLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsWUFBWSxDQUFDLE1BQU0sU0FBUyxDQUFDLENBQUM7UUFDaEQsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsTUFBTSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakQsR0FBRyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0osQ0FBQSJ9