Exoform
Exoform takes a module defined in CommonJS style, and recursively transforms it, and its dependencies into asynchronous content-addressed require calls.
This gives you the whole program, and its dependencies, in a content-addressable manner, that you could later require from other programs.
Exoform uses cdump, for now, to store its blobs
Example
Input: test/req/one.js
var a = var b = blorpvar c = var x = y: z: {} xyztwo = consoleconsoleconsoleconsole
exoform test/req/one.js | xargs cdump get
Output:
var __metaif typeof arguments !== 'undefined' __meta = arguments0 else __meta = exoform: {} refs: var exoform = __metaexoformvar exports = __metamodvar module = exports: exports ;__metaexoform
The dependency loaded (test/req/two.js):
cdump get 6aa7e2e45e38d55c765ac44dbd98f5ce09f27c60696b823e70cf547816c38d31
outputs:
var __metaif typeof arguments !== 'undefined' __meta = arguments0 else __meta = exoform: {} refs: var exoform = __metaexoformvar exports = __metamodvar module = exports: exports ;__metaexoform
Todo
Extended support for the browserify ecosystem and browser ports of node modules