reified
Version:
JS Binary Data API. Structs, arrays, bitfields, and numbers. Reify and Reference like nobody's business.
45 lines (36 loc) • 1.07 kB
JavaScript
var fs = require('fs');
function load(name){ return fs.readFileSync(name, 'utf8') }
var wrapper = load('./wrapper.js');
var libs = [
'utility',
'buffer',
'genesis',
'numeric',
'struct',
'array',
'bitfield',
'pointer',
'string',
'index',
].map(function(name){
return wrap('./'+name, load('../lib/'+name+'.js'));
});
function wrap(name, code){
return wrapper.replace(/\/\*NAME\*\//g, name).replace(/\/\*CONTENT\*\//g, code);
}
var output = [
'var reified = function(global, imports){',
libs.join('\n\n'),
'return imports["./index"];',
'}(this, {});',
'if (typeof module !=="undefined") module.exports = reified'
].join('\n');
output += '\n\n' + load('./DataView/DataView.js');
fs.writeFileSync('../reified-browser.js', output);
fs.writeFileSync('../reified-browser.min.js', compress(output));
function compress(src) {
var parse = require('uglify-js').parser.parse;
var ug = require('uglify-js').uglify;
var opts = { make_seqs: true };
return ug.gen_code(ug.ast_squeeze_more(ug.ast_squeeze(ug.ast_mangle(parse(src)), opts)));
}