UNPKG

spincycle

Version:

A reactive message router and object manager that lets clients subscribe to object property changes on the server

136 lines (117 loc) 4.44 kB
// Generated by CoffeeScript 1.12.6 (function() { var ResolveModule, debug, defer, dirname, bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; defer = require('node-promise').defer; debug = process.env["DEBUG"]; if (debug) { console.log('resolvemodule dirname is ' + __dirname); } if (debug) { console.log(__dirname); } dirname = __dirname.substring(0, __dirname.indexOf('/node_modules')); if (__dirname.indexOf('node_modules') === -1) { dirname = '..'; } if (debug) { console.log('starting module resolving from path ' + dirname); } ResolveModule = (function() { ResolveModule.modulecache = []; ResolveModule.modulepathcache = []; function ResolveModule() { this.createObjectFrom = bind(this.createObjectFrom, this); this.resolve = bind(this.resolve, this); if (debug) { console.log("+++ new ResolveModule created ++"); } process.on('resolvemodule', (function(_this) { return function(name, cb) { return _this.resolve(name, cb); }; })(this)); } ResolveModule.prototype.resolve = function(name, cb) { var finder, rv; rv = ResolveModule.modulepathcache[name]; if (rv) { return cb(rv); } else { if (!name) { throw new Error('ResolveModule was given an undefined type to resolve!!!'); } finder = require('findit')(dirname); finder.on('file', function(origfile) { var coffeecheck, file; file = "" + origfile; if (file.indexOf('node_modules') === -1 && file.indexOf('.csv') === -1 && file.indexOf('bower_components') === -1 && file.indexOf('.zip') === -1 && file.indexOf('.gz') === -1) { if (file.indexOf('/') > -1) { file = file.substring(file.lastIndexOf('/') + 1, file.length); } if (file.indexOf('.') > -1) { file = file.substring(0, file.indexOf('.')); } if (process.env['CHECK_COFFEE']) { coffeecheck = origfile.indexOf('.coffee') > -1; } else { coffeecheck = origfile.indexOf('.coffee') === -1; } if (file === name && (origfile.indexOf('.js') > -1 || coffeecheck) && origfile.indexOf('.map') === -1 && origfile.indexOf('.dump') === -1) { rv = origfile; ResolveModule.modulepathcache[name] = rv; finder.stop(); return cb(rv); } else { } } }); finder.on('end', function() {}); finder.on('error', function() {}); console.log('SpinCycle ResolveModule: Filesystem finder ERROR for "'); return console.dir(arguments); } }; ResolveModule.prototype.createObjectFrom = function(record) { var module, o, q; q = defer(); if (!record || (record[0] && (record[0] === null) || record[0] === 'null')) { if (debug) { console.log('ResolveModule.createObjectFrom ++++++++++++++!!!!!!!!!!!!!!!!!!! NULL RECORD!!'); } q.resolve(null); } else { if (!record[0]) { record = [record]; } module = ResolveModule.modulecache[record[0].type]; if (module) { o = Object.create(module.prototype); o._rev = record._rev; o.constructor(record[0]).then(function(finishedobj) { return q.resolve(finishedobj); }); } else { console.log('ResolveModule could not find module ' + record[0].type + ' in cache!'); console.dir(ResolveModule.modulecache); this.resolve(record[0].type, function(filename) { if (debug) { console.log('ResolveModule resolved module ' + record[0].type + " as " + filename); } module = ResolveModule.modulecache[record[0].type] || require(filename.replace('.js', '')); ResolveModule.modulecache[record[0].type] = module; o = Object.create(module.prototype); o._rev = record._rev; return o.constructor(record[0]).then(function(finishedobj) { return q.resolve(finishedobj); }); }); } } return q; }; return ResolveModule; })(); module.exports = ResolveModule; }).call(this); //# sourceMappingURL=ResolveModule.js.map