testcafe
Version:
Automated browser testing for the modern web development stack.
47 lines • 6.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const child_process_1 = __importDefault(require("child_process"));
const graceful_fs_1 = __importDefault(require("graceful-fs"));
const pinkie_1 = __importDefault(require("pinkie"));
const pngjs_1 = require("pngjs");
const promisify_event_1 = __importDefault(require("promisify-event"));
const promisify_1 = __importDefault(require("./promisify"));
exports.readDir = promisify_1.default(graceful_fs_1.default.readdir);
exports.stat = promisify_1.default(graceful_fs_1.default.stat);
exports.writeFile = promisify_1.default(graceful_fs_1.default.writeFile);
exports.readFile = promisify_1.default(graceful_fs_1.default.readFile);
exports.deleteFile = promisify_1.default(graceful_fs_1.default.unlink);
exports.exec = promisify_1.default(child_process_1.default.exec);
exports.sendMessageToChildProcess = promisify_1.default((process, ...args) => process.send(...args));
function readPng(buffer) {
const png = new pngjs_1.PNG();
const parsedPromise = pinkie_1.default.race([
promisify_event_1.default(png, 'parsed'),
promisify_event_1.default(png, 'error')
]);
png.parse(buffer);
return parsedPromise
.then(() => png);
}
exports.readPng = readPng;
async function readPngFile(filePath) {
const buffer = await exports.readFile(filePath);
return await readPng(buffer);
}
exports.readPngFile = readPngFile;
function writePng(filePath, png) {
const outStream = graceful_fs_1.default.createWriteStream(filePath);
const pngStream = png.pack();
const finishPromise = pinkie_1.default.race([
promisify_event_1.default(outStream, 'finish'),
promisify_event_1.default(outStream, 'error'),
promisify_event_1.default(pngStream, 'error')
]);
pngStream.pipe(outStream);
return finishPromise;
}
exports.writePng = writePng;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzaWZpZWQtZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3Byb21pc2lmaWVkLWZ1bmN0aW9ucy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtFQUF5QztBQUN6Qyw4REFBNkI7QUFDN0Isb0RBQTZCO0FBQzdCLGlDQUE0QjtBQUM1QixzRUFBNkM7QUFDN0MsNERBQW9DO0FBR3ZCLFFBQUEsT0FBTyxHQUFNLG1CQUFTLENBQUMscUJBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxRQUFBLElBQUksR0FBUyxtQkFBUyxDQUFDLHFCQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEMsUUFBQSxTQUFTLEdBQUksbUJBQVMsQ0FBQyxxQkFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLFFBQUEsUUFBUSxHQUFLLG1CQUFTLENBQUMscUJBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNwQyxRQUFBLFVBQVUsR0FBRyxtQkFBUyxDQUFDLHFCQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFbEMsUUFBQSxJQUFJLEdBQUcsbUJBQVMsQ0FBQyx1QkFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXBDLFFBQUEseUJBQXlCLEdBQUcsbUJBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFaEcsU0FBZ0IsT0FBTyxDQUFFLE1BQU07SUFDM0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFHLEVBQUUsQ0FBQztJQUV0QixNQUFNLGFBQWEsR0FBRyxnQkFBTyxDQUFDLElBQUksQ0FBQztRQUMvQix5QkFBYyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7UUFDN0IseUJBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO0tBQy9CLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEIsT0FBTyxhQUFhO1NBQ2YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFaRCwwQkFZQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQUUsUUFBUTtJQUN2QyxNQUFNLE1BQU0sR0FBRyxNQUFNLGdCQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFeEMsT0FBTyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBSkQsa0NBSUM7QUFFRCxTQUFnQixRQUFRLENBQUUsUUFBUSxFQUFFLEdBQUc7SUFDbkMsTUFBTSxTQUFTLEdBQUcscUJBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFN0IsTUFBTSxhQUFhLEdBQUcsZ0JBQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0IseUJBQWMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQ25DLHlCQUFjLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztRQUNsQyx5QkFBYyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7S0FDckMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUxQixPQUFPLGFBQWEsQ0FBQztBQUN6QixDQUFDO0FBYkQsNEJBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hpbGRQcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGZzIGZyb20gJ2dyYWNlZnVsLWZzJztcbmltcG9ydCBQcm9taXNlIGZyb20gJ3BpbmtpZSc7XG5pbXBvcnQgeyBQTkcgfSBmcm9tICdwbmdqcyc7XG5pbXBvcnQgcHJvbWlzaWZ5RXZlbnQgZnJvbSAncHJvbWlzaWZ5LWV2ZW50JztcbmltcG9ydCBwcm9taXNpZnkgZnJvbSAnLi9wcm9taXNpZnknO1xuXG5cbmV4cG9ydCBjb25zdCByZWFkRGlyICAgID0gcHJvbWlzaWZ5KGZzLnJlYWRkaXIpO1xuZXhwb3J0IGNvbnN0IHN0YXQgICAgICAgPSBwcm9taXNpZnkoZnMuc3RhdCk7XG5leHBvcnQgY29uc3Qgd3JpdGVGaWxlICA9IHByb21pc2lmeShmcy53cml0ZUZpbGUpO1xuZXhwb3J0IGNvbnN0IHJlYWRGaWxlICAgPSBwcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuZXhwb3J0IGNvbnN0IGRlbGV0ZUZpbGUgPSBwcm9taXNpZnkoZnMudW5saW5rKTtcblxuZXhwb3J0IGNvbnN0IGV4ZWMgPSBwcm9taXNpZnkoY2hpbGRQcm9jZXNzLmV4ZWMpO1xuXG5leHBvcnQgY29uc3Qgc2VuZE1lc3NhZ2VUb0NoaWxkUHJvY2VzcyA9IHByb21pc2lmeSgocHJvY2VzcywgLi4uYXJncykgPT4gcHJvY2Vzcy5zZW5kKC4uLmFyZ3MpKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQbmcgKGJ1ZmZlcikge1xuICAgIGNvbnN0IHBuZyA9IG5ldyBQTkcoKTtcblxuICAgIGNvbnN0IHBhcnNlZFByb21pc2UgPSBQcm9taXNlLnJhY2UoW1xuICAgICAgICBwcm9taXNpZnlFdmVudChwbmcsICdwYXJzZWQnKSxcbiAgICAgICAgcHJvbWlzaWZ5RXZlbnQocG5nLCAnZXJyb3InKVxuICAgIF0pO1xuXG4gICAgcG5nLnBhcnNlKGJ1ZmZlcik7XG5cbiAgICByZXR1cm4gcGFyc2VkUHJvbWlzZVxuICAgICAgICAudGhlbigoKSA9PiBwbmcpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFBuZ0ZpbGUgKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgcmVhZEZpbGUoZmlsZVBhdGgpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHJlYWRQbmcoYnVmZmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlUG5nIChmaWxlUGF0aCwgcG5nKSB7XG4gICAgY29uc3Qgb3V0U3RyZWFtID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oZmlsZVBhdGgpO1xuICAgIGNvbnN0IHBuZ1N0cmVhbSA9IHBuZy5wYWNrKCk7XG5cbiAgICBjb25zdCBmaW5pc2hQcm9taXNlID0gUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgcHJvbWlzaWZ5RXZlbnQob3V0U3RyZWFtLCAnZmluaXNoJyksXG4gICAgICAgIHByb21pc2lmeUV2ZW50KG91dFN0cmVhbSwgJ2Vycm9yJyksXG4gICAgICAgIHByb21pc2lmeUV2ZW50KHBuZ1N0cmVhbSwgJ2Vycm9yJylcbiAgICBdKTtcblxuICAgIHBuZ1N0cmVhbS5waXBlKG91dFN0cmVhbSk7XG5cbiAgICByZXR1cm4gZmluaXNoUHJvbWlzZTtcbn1cblxuXG4iXX0=