pkgdev
Version:
icat-widget development tool
1 lines • 1.7 kB
JavaScript
function var2value(a,b){var c=a.match(/<\%\=\w+\%>/g);return c&&c.forEach(function(c){var d=c.replace(/^<\%\=|\%>$/g,""),e=b[d]||"",f=new RegExp("<\\%\\="+d+"\\%>","g");a=a.replace(f,e)}),a}function encrypt(a,b){for(var c=[],d=a.length,e=b.length,f=0;d>f;f++){var g=a.charCodeAt(f)^b.charCodeAt(f%e);c.push(g)}return c.join("^")}var Stream=require("stream"),Path=require("path"),cfg=require("./package.json"),StringDecoder=require("string_decoder").StringDecoder,fs=require("fs"),tag=["w","i","d","g","e","t"].join(""),tagCla=cfg.name+"-wrap";module.exports={file:function(){var a=new Stream.Transform({objectMode:!0});return a._transform=function(a,b,c){var d=new StringDecoder("utf8"),e=d.write(a.contents),f=["v","k","m","e",":","v","a","l","l","e","y","k","i","d","d","y","@gmail.com"].join(""),g="",h="";if(cfg.tpl){try{g=fs.readFileSync(cfg.tpl,"utf8")}catch(i){}g=g.replace(/(\\f|\\n|\\r|\\t|\\v)+/g,"").replace(/\s+/g," "),g=g.replace(/\$\{name\}/ig,cfg.name),g=g?"<"+tag+' class="'+tagCla+'">'+g+"</"+tag+">":g,cfg.template=g.replace(/(['"])/g,"\\$1")}if(cfg.style){try{h=fs.readFileSync(cfg.style,"utf8")}catch(i){}h=h.replace(/(\\f|\\n|\\r|\\t|\\v)+/g,"").replace(/\s+/g," "),cfg.css=encrypt(h,f)}e=var2value(e,cfg),a.contents=new Buffer(e,"utf-8"),c(null,a)},a},wrap:function(a,b,c){var d=new Stream.Transform({objectMode:!0});return d._transform=function(a,b,c){var d=new StringDecoder("utf8"),e=d.write(a.contents);e=tag+"."+tagCla+"{"+e+"}",a.contents=new Buffer(e,"utf-8"),c(null,a)},d},clean:function(a,b,c){cfg.style&&setTimeout(function(){fs.unlinkSync(cfg.style)},1e3);var d=new Stream.Transform({objectMode:!0});return d._transform=function(a,b,c){c(null,a)},d}};
;