NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/d3-geo-projection/bin/write.js
2023-09-14 14:47:11 +08:00

36 lines
934 B
JavaScript

var fs = require("fs");
function handleEpipe(error) {
if (error.code === "EPIPE" || error.errno === "EPIPE") {
process.exit(0);
}
}
module.exports = function(file) {
var output = (file === "-" ? process.stdout : fs.createWriteStream(file)).on("error", handleEpipe),
queue = Promise.resolve();
return {
write: function(data) {
return queue = queue.then(function() {
return new Promise(function(resolve, reject) {
output.write(data, function(error) {
if (error) reject(error);
else resolve();
});
});
});
},
end: function() {
if (output === process.stdout) return queue;
return queue = queue.then(function() {
return new Promise(function(resolve, reject) {
output.end(function(error) {
if (error) reject(error);
else resolve();
});
});
});
}
};
};