Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
app.get('/sitemap.xml', function(req, res) {
res.header('Content-Type', 'application/xml');
res.header('Content-Encoding', 'gzip');
// if we have a cached entry send it
if (sitemap) {
res.send(sitemap)
return
}
try {
// this could just as easily be a db response
const gzippedStream = fs.createReadStream(resolve(__dirname, '..', 'tests', 'mocks', 'perf-data.json'))
.pipe(parser())
.pipe(streamArray()) // replace with streamValues for JSONStream
.pipe(map.obj(chunk => chunk.value))
.pipe(new SitemapStream({ hostname: 'https://example.com/' }))
.pipe(createGzip())
// cache the response
streamToPromise(gzippedStream).then(sm => sitemap = sm)
// stream the response
gzippedStream.pipe(res).on('error', (e) => {throw e})
} catch (e) {
console.error(e)
res.status(500).end()
}
});
const host = argv.h;
const port = argv.p;
const { filename } = argv;
const startTime = new Date();
let key;
let value;
let keysCount = 0;
const promises = [];
const redis = new Redis({
host,
port
});
const pipeline = fs.createReadStream(filename).pipe(parser());
pipeline.on('data', (data) => {
switch (data.name) {
case 'keyValue':
key = data.value;
break;
case 'stringValue':
({ value } = data);
process.stdout.clearLine();
process.stdout.cursorTo(0);
keysCount += 1;
process.stdout.write(`Adding ${keysCount} keys`);
promises.push(redis.set(key, value));
break;
// no default
}
});
function compose(ctx) {
let pipeline = [
parser({jsonStreaming: true}),
streamValues()
];
if (sanityCheck(CUSTOM_PIPELINE)) {
pipeline.push(..._injectCtx(CUSTOM_PIPELINE,ctx));
} else {
console.log(`Default Pipeline setup...[Skipping custom pipeline]`);
if (CUSTOM_PIPELINE.length > 0) {
console.warn(`Something is wrong : Please review your custom pipeline`);
process.exit(12);
}
}
return pipeline;
}