| 109 | requires.resolve = resolves; |
| 110 | |
| 111 | function forEach(pattern,fn) { |
| 112 | var packageJSON = findup('package.json', {cwd:ss.root}); |
| 113 | if (packageJSON) { |
| 114 | var dependencies = require(packageJSON).dependencies; |
| 115 | dependencies = dependencies? Object.keys(dependencies) : []; |
| 116 | var matches = micromatch(dependencies,pattern); |
| 117 | var mod = {}; |
| 118 | matches.forEach(function(id) { |
| 119 | if (mod[id] === undefined) { |
| 120 | try { |
| 121 | mod[id] = resolve.sync(id, { package: packageJSON, basedir: ss.root}); |
| 122 | debug('matched '+id+' from pattern '+pattern); |
| 123 | fn(require(mod[id]),id); |
| 124 | } catch(ex) { |
| 125 | //TODO debug log failed to use SocketStream Add-On |
| 126 | } |
| 127 | } |
| 128 | }); |
| 129 | } |
| 130 | } |
| 131 | |
| 132 | requires.forEach = forEach; |
| 133 | |