@chtsinc/ch-playwright-report
Version:
Custom Playwright Reporter that logs test and execution results to MongoDB
57 lines • 2.02 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getExtension = getExtension;
exports.getContentType = getContentType;
exports.zipFolder = zipFolder;
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const archiver_1 = __importDefault(require("archiver"));
const ch_logger_1 = require("@chtsinc/ch-logger");
const logger = (0, ch_logger_1.getLogger)();
/**
* Extracts the file extension (without the dot) from a filename.
* @param filename - The name (or path) of the file.
* @returns The lowercase extension (e.g. "html"), or undefined if none.
*/
function getExtension(filename) {
const ext = path_1.default.extname(filename);
if (!ext) {
return undefined;
}
return ext.slice(1).toLowerCase();
}
function getContentType(ext) {
switch (ext.toLowerCase()) {
case "html":
return "text/html";
case "webm":
return "video/webm";
case "zip":
return "application/zip";
default:
return "application/octet-stream";
}
}
async function zipFolder(reportFolder, zipFile) {
try {
await new Promise((resolve, reject) => {
const output = fs_1.default.createWriteStream(zipFile);
const archive = (0, archiver_1.default)("zip", { zlib: { level: 9 } });
output.on("close", () => resolve());
output.on("error", (err) => reject(err));
archive.on("error", (err) => reject(err));
archive.pipe(output);
archive.directory(reportFolder, false);
archive.finalize().catch?.(reject);
});
return true;
}
catch (error) {
logger.error(`CHPlaywrightReporter: Error zipping folder: ${reportFolder}`, error);
return false;
}
}
//# sourceMappingURL=file-util.js.map