From 60849404a20dec7120166791bcb04a074daf4a86 Mon Sep 17 00:00:00 2001 From: Craig Condon Date: Wed, 30 Jul 2014 11:37:05 -0700 Subject: [PATCH] remove sardines - move into nexe. Use bundle.js --- lib/bundle.js | 75 ++++++++++++++++++++++++++++++++++++++++++++------- package.json | 3 +-- 2 files changed, 67 insertions(+), 11 deletions(-) diff --git a/lib/bundle.js b/lib/bundle.js index 4765ff3..ca11a78 100644 --- a/lib/bundle.js +++ b/lib/bundle.js @@ -1,6 +1,7 @@ var mdeps = require("module-deps"), through = require("through"), -async = require("async"); +async = require("async"), +path = require("path"); function bundle (input, complete) { @@ -9,21 +10,77 @@ function bundle (input, complete) { /** */ - function resolveDeps () { + function resolveDeps (next) { + var deps = []; - mdeps(input).pipe(through(function (chunk) { + + var md = mdeps(); + md.pipe(through(function (chunk) { deps.push(chunk); }, function () { - - for (var i = deps.length; i--;) { - console.log(deps); - } - + next(null, deps) })); + md.end({ file: input }) + + }, + + function bundleScript (deps, next) { + var buffer = [loader.toString()]; + + + var dbuffer = []; + + + for (var i = deps.length; i--;) { + var dep = deps[i]; + + + var req = "function (require, module, exports) { \n" + dep.source + "}" + + + dbuffer.push("'" + dep.id + "': ["+req+", "+!!dep.entry+", "+JSON.stringify(dep.deps)+"]") + } + + + buffer = ["(" + loader.toString() + ").call(null, {"+dbuffer.join(",")+"})"].toString(); + + + next(null, buffer); } - ]); + ], complete) +} + + +var loader = function (deps) { + + var darr = []; + + for (var key in deps) { + darr.push(deps[key]); + } + + function initModule (dep) { + if (dep.module) return dep.module; + dep.module = { exports: {} }; + + dep[0](function (path) { + var rdep = deps[dep[2][path]]; + var module = rdep.module || initModule(rdep); + return module.exports; + }, dep.module, dep.module.exports); + + return dep.module; + } + + darr.forEach(initModule); + + return darr.filter(function (dep) { + return dep[1]; + }).map(function (dep) { + return dep.module || {}; + }).pop(); } module.exports = bundle; \ No newline at end of file diff --git a/package.json b/package.json index 9571261..819f427 100644 --- a/package.json +++ b/package.json @@ -16,13 +16,12 @@ "request": "~2.12.0", "ncp": "~0.2.7", "mkdirp": "~0.3.5", - "sardines": "~0.4.5", "async": "~0.2.10", "colors": "~0.6.2", "glob": "~3.2.9", "progress": "~1.1.3", "tar.gz": "0.1.1", - "module-deps": "^3.5.4", + "module-deps": "^2.1.2", "through": "^2.3.4" }, "preferGlobal": "true",