UNPKG

sicarii

Version:

The zero dependency http2 nodejs multithreading framework

55 lines (42 loc) 1.22 kB
const fs = require('fs'), utils = require('../utils'), engine = require('./' + process.env.template_engine); module.exports = function(stream, config){ stream.Duplex.prototype.render = function(src, data, cb){ let url = '/'+ src, $this = this; let cache_obj = { src: 'render', method: 'get_cache', data: { url: url } } utils.cache_stream(config.cache.url, cache_obj, function(err, cached){ if(err){ console.error(err) cached = {code: 500}; } let file = '.' + config.render.path + url; data = data || {}; if(typeof data === 'function'){ cb = data; data = {}; } if(cached.code === 200 && cached.data && cached.data.data && cached.data.headers){ data = cached.data.data; if(typeof data === 'object' && data.data){ data = Buffer.from(data.data) } let obj = {':status': 200}; obj = Object.assign(obj, cached.data.headers); $this.respond(obj); $this.end(data); utils.cc(['GET', url + ' 200 [cache]'],92); if(cb){cb(false)} return; } engine($this, file, src, url, data, cb) }) } }