ee-soa-transport-rest
Advanced tools
Comparing version 0.1.1 to 0.1.2
@@ -13,2 +13,3 @@ "use strict"; | ||
SOATransport = require('ee-soa-transport'), | ||
EEAsync = require('ee-async'), | ||
@@ -89,9 +90,7 @@ factory = require('./factory'), | ||
* todo: create a loader that loads from all the passed websites | ||
* todo: pass the websites to the templating middleware | ||
* todo: add a listener which listens to the templating middleware and passes requests generated there | ||
*/ | ||
var len = this.websites.length, | ||
counter = 0, | ||
environments = [], | ||
rewrites = []; | ||
environments = [], | ||
rewrites = []; | ||
@@ -102,39 +101,50 @@ if(len == 0){ | ||
for(var i=0; i<len; i++){ | ||
var current = this.websites[i]; | ||
var websitesWaiter = EEAsync.waiter(function(err){ | ||
if(err){ | ||
return callback(err); | ||
} | ||
this._finishLoading(rewrites, environments, callback); | ||
}.bind(this)) | ||
current.on('load', function(err){ | ||
, nunjucksWaiter = EEAsync.waiter(websitesWaiter()) | ||
, middlewaresWaiter = EEAsync.waiter(websitesWaiter()) | ||
, rewritesWaiter = EEAsync.waiter(websitesWaiter()); | ||
this.websites.forEach(function(current){ | ||
var nunjuckWaiter = nunjucksWaiter(); | ||
current.getNunjucksEnvironment(function(err, env){ | ||
if(err){ | ||
return callback(err, null); | ||
return nunjuckWaiter(err); | ||
} | ||
var map = new maps.MatchingMap(current.getDomains(), env); | ||
environments.push(map); | ||
nunjuckWaiter(); | ||
}); | ||
current.getNunjucksEnvironment(function(err, env){ | ||
if(err){ | ||
return callback(err, null); | ||
} | ||
var map = new maps.MatchingMap(current.getDomains(), env); | ||
environments.push(map); | ||
current.getMiddleware(function(err, middleware){ | ||
if(err){ | ||
return callback(err, null); | ||
} | ||
var len = middleware.length; | ||
for (var j = 0; j < len; j++) { | ||
var ware = middleware[j]; | ||
this.webservice.use(ware.middleware); | ||
} | ||
current.getRewriteRules(function(err, rules){ | ||
if(err){ | ||
return callback(err, null); | ||
} | ||
rewrites = rewrites.concat(rules); | ||
}); | ||
}.bind(this)); | ||
if(++counter == len){ | ||
this._finishLoading(rewrites, environments, callback); | ||
} | ||
var middlewareWaiter = middlewaresWaiter(); | ||
current.getMiddleware(function(err, middlewares){ | ||
if(err){ | ||
return middlewareWaiter(err); | ||
} | ||
middlewares.forEach(function(middleware){ | ||
this.webservice.use(middleware.hostnames, middleware.middleware); | ||
/*this.webservice.use(middleware.middleware);*/ | ||
}.bind(this)); | ||
middlewareWaiter(); | ||
}.bind(this)); | ||
} | ||
var rewriteWaiter = rewritesWaiter(); | ||
current.getRewriteRules(function(err, rules){ | ||
if(err){ | ||
return rewriteWaiter(err); | ||
} | ||
rewrites = rewrites.concat(rules); | ||
rewriteWaiter(); | ||
}); | ||
}.bind(this)); | ||
callback(); | ||
@@ -147,12 +157,14 @@ } catch(err){ | ||
, _finishLoading: function(rewrites, environments, callback){ | ||
this.webservice.use(new FormDataCollector()); | ||
this.webservice.use('*', new FormDataCollector()); | ||
var loader = new Rewrite.loader.InMemoryLoader(rewrites, 'domain'); | ||
this.webservice.use(new Rewrite.Middleware(loader)); | ||
this.webservice.use(new Parser.Middleware()); | ||
this.webservice.use('*', new Rewrite.Middleware(loader)); | ||
this.webservice.use('*', new Parser.Middleware()); | ||
var templating = new Templating(new maps.CompoundMatchingMap(environments)); | ||
this.webservice.use(templating); | ||
this.webservice.use(this); | ||
var map = new maps.CompoundMatchingMap(environments); | ||
var templating = new Templating(map); | ||
this.webservice.use('*', templating); | ||
this.webservice.use('*', this); | ||
this.isLoaded = true; | ||
@@ -195,2 +207,3 @@ this.emit('load'); | ||
var response = this._createEmptyResponse(); | ||
this._createInternalRequest(req, function(err, request){ | ||
@@ -197,0 +210,0 @@ if(err) { |
@@ -14,3 +14,2 @@ var Cornercard = require('cornercard-frontend'); | ||
transport.on('request', function(request, response) { | ||
// hook in your service here! | ||
response.send(response.statusCodes.OK, {message: 'Yaaay'}); | ||
@@ -17,0 +16,0 @@ }); |
{ | ||
"name" : "ee-soa-transport-rest" | ||
, "description" : "Rest specific transport implementation." | ||
, "version" : "0.1.1" | ||
, "version" : "0.1.2" | ||
, "homepage" : "https://github.com/eventEmitter/ee-soa-transport-rest" | ||
@@ -20,2 +20,3 @@ , "author" : "Michael Rüfenacht <ruefe@rcky.ch> (http://rcky.ch/)" | ||
"ee-class" : "1.0.*" | ||
, "ee-async" : "0.2.*" | ||
, "ee-event-emitter" : "0.1.*" | ||
@@ -22,0 +23,0 @@ , "ee-webservice" : "0.3.*" |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
50275
1269
14
1
+ Addedee-async@0.2.*
+ Addedee-async@0.2.11(transitive)