ee-soa-transport-rewrite
Advanced tools
Comparing version 0.1.0 to 0.1.1
@@ -12,11 +12,29 @@ "use strict"; | ||
, _comparator: null | ||
, _loaderKeyFun: null | ||
, _filterKeyFun: null | ||
, init: function initialize(comparator, loader) { | ||
, init: function initialize(comparator, loader, options) { | ||
this._loader = loader; | ||
this._comparator = Comparator.createComparator(comparator); | ||
options = options || {}; | ||
this._loaderKeyFun = options.prepareLoaderKey || null; | ||
this._filterKeyFun = options.prepareFilterKey || null; | ||
} | ||
, _prepareLoaderKey: function(key){ | ||
return Types.function(this._loaderKeyFun) | ||
? this._loaderKeyFun.call(null, key) : key; | ||
} | ||
, _prepareFilterKey: function(key){ | ||
return Types.function(this._filterKeyFun) | ||
? this._filterKeyFun.call(null, key) : key; | ||
} | ||
, load: function(key, callback){ | ||
this._loader.load(key, function(error, rules){ | ||
var loaderKey = this._prepareLoaderKey(key); | ||
this._loader.load(loaderKey, function(error, rules){ | ||
if(error){ | ||
@@ -27,7 +45,7 @@ return callback(error, null); | ||
try { | ||
var filtered = rules.filter(function(current){ | ||
var filterKey = this._prepareFilterKey(key), | ||
filtered = rules.filter(function(current){ | ||
var result = this._comparator.call(null, filterKey, current); | ||
return result === true; | ||
var result = this._comparator.call(null, key, current); | ||
return result === true; | ||
}.bind(this)); | ||
@@ -34,0 +52,0 @@ callback(null, filtered); |
@@ -5,3 +5,4 @@ module.exports.InMemoryLoader = require('./InMemoryLoader'); | ||
module.exports.TransformingLoader = require('./TransformingLoader'); | ||
module.exports.RequestRewriteLoader = require('./RequestRewriteLoader'); | ||
module.exports.RewriteLoader = require('./RewriteLoader'); | ||
module.exports.FilterLoader = require('./FilterLoader'); |
@@ -5,5 +5,3 @@ "use strict"; | ||
var TransformingLoader = require('./TransformingLoader'), | ||
FilterLoader = require('./FilterLoader'), | ||
transformers = require('../transformer'), | ||
var FilterLoader = require('./FilterLoader'), | ||
Comparator = require('../comparator'); | ||
@@ -13,17 +11,5 @@ | ||
/*inherits: TransformingLoader | ||
inherits: FilterLoader | ||
, init : function initialize(rules, comp){ | ||
comp = comp || 'key'; | ||
var transformer = new transformers.FilterTransformer(comp); | ||
initialize.super.call(this, transformer, { | ||
load: function(key, callback){ | ||
return callback(null, rules); | ||
} | ||
}); | ||
}*/ | ||
inherits: FilterLoader | ||
, init: function initialize(rules, comp){ | ||
var comparator = Comparator.createComparator(comp); | ||
initialize.super.call(this, comp, { | ||
@@ -30,0 +16,0 @@ load: function(key, callback){ |
"use strict"; | ||
var Class = require('ee-class'), | ||
TransformingLoader = require('./TransformingLoader'); | ||
var Class = require('ee-class'); | ||
var rewrites = require('../rewrite'); | ||
var TransformingLoader = require('./TransformingLoader'), | ||
transformers = require('../transformer'), | ||
rewrites = require('../rewrite'); | ||
@@ -12,7 +13,7 @@ var RewriteLoader = { | ||
, _map: null | ||
, init: function initialize(loader, classMapExtension){ | ||
var map = this._createMap(classMapExtension), | ||
factory = new transformers.FactoryTransformer(map); | ||
, init: function initialize(loader, classMapExtension){ | ||
initialize.super.call(this, this, loader); | ||
this._map = this._createMap(classMapExtension); | ||
initialize.super.call(this, factory, loader); | ||
} | ||
@@ -28,2 +29,3 @@ | ||
, extend: rewrites.Extend | ||
, path: rewrites.Path | ||
}; | ||
@@ -37,27 +39,4 @@ | ||
} | ||
, _transform: function(key, result, callback){ | ||
var len = result.length; | ||
var last = null; | ||
for(var i=0;i<len;i++){ | ||
var rule = result[i]; | ||
var rew = this._createInstance(rule); | ||
if(last === null){ | ||
last = rew; | ||
} else { | ||
last.then(rew); | ||
} | ||
} | ||
callback(null, last); | ||
} | ||
, _createInstance: function(rule){ | ||
var mapped = this._map[rule.name]; | ||
if(!(rule.name in this._map)){ | ||
mapped = rewrites.Rewrite; | ||
} | ||
return new mapped(rule, this); | ||
} | ||
}; | ||
module.exports = new Class(RewriteLoader); |
@@ -30,3 +30,3 @@ "use strict"; | ||
if(err){ | ||
callback(err, null); | ||
return callback(err, null); | ||
} | ||
@@ -33,0 +33,0 @@ this._transform(key, result, callback); |
@@ -17,3 +17,3 @@ "use strict"; | ||
, init: function initialize(loader) { | ||
this.loader = new loaders.RewriteLoader(loader); | ||
this.loader = new loaders.RewriteLoader(new loaders.RequestRewriteLoader(loader)); | ||
} | ||
@@ -26,5 +26,3 @@ | ||
, request: function(request, response, next){ | ||
var key = request.hostname; | ||
this.loader.load(key, function(err, result){ | ||
this.loader.load(request, function(err, result){ | ||
if(err){ | ||
@@ -31,0 +29,0 @@ throw err; |
"use strict"; | ||
var Class = require('ee-class'), | ||
Rewrite = require('./Rewrite'); | ||
Types = require('ee-types'); | ||
var Rewrite = require('./Rewrite'); | ||
var Path = { | ||
inherits: Rewrite | ||
, pattern: null | ||
, _name: 'path' | ||
, init: function initialize (rule, loader){ | ||
initialize.super.call(this, rule, loader); | ||
this.pattern = new RegExp(this.field); | ||
} | ||
, _execute: function(request, callback){ | ||
var pathname = request.pathname, | ||
path = this.path, | ||
target = this.value; | ||
, _execute: function(request, callback){ | ||
var pathname = request.pathname; | ||
request.pathname = pathname.replace(this.pattern, this.value); | ||
if(Types.regexp(path)){ | ||
target = pathname.replace(path, this.value); | ||
} | ||
request.pathname = target; | ||
callback(null); | ||
@@ -21,0 +24,0 @@ } |
@@ -11,3 +11,3 @@ "use strict"; | ||
, _value: null | ||
, _url: null | ||
, _path: null | ||
, _priority: null | ||
@@ -38,4 +38,4 @@ , _loader: null | ||
, url: { | ||
get: function() {return this._url; } | ||
, path: { | ||
get: function() {return this._path; } | ||
} | ||
@@ -49,3 +49,3 @@ , init: function(rule, loader){ | ||
this._priority = rule.priority; | ||
this._url = rule.url; | ||
this._path = rule.path; | ||
this._loader = loader; | ||
@@ -52,0 +52,0 @@ this._children = []; |
var Class = require('ee-class'); | ||
module.exports.FilterTransformer = require('./FilterTransformer'); | ||
/* | ||
module.exports.ComposedTransformer = new Class({ | ||
_transformers: null | ||
, init: function(transformers){ | ||
this._transformers = transformers || []; | ||
} | ||
, transform: function(key, result, callback){ | ||
var original = callback, | ||
len = this._transformers.length; | ||
var last = callback, | ||
current = last; | ||
for(var i=len-1;i>=0; i--){ | ||
var trans = this._transformers[i]; | ||
current = (function(last){ | ||
return function(err, result){ | ||
if(err){ | ||
return callback(err, null); | ||
} | ||
trans.transform.call(null, key, result, last); | ||
}; | ||
})(last); | ||
last = current; | ||
} | ||
current.call(null, null, result); | ||
} | ||
});*/ | ||
module.exports.FactoryTransformer = require('./FactoryTransformer'); |
{ | ||
"name" : "ee-soa-transport-rewrite" | ||
, "description" : "Rewriting middleware for the ee-soa-transports" | ||
, "version" : "0.1.0" | ||
, "version" : "0.1.1" | ||
, "homepage" : "https://github.com/eventEmitter/ee-soa-transport-rewrite" | ||
@@ -24,5 +24,7 @@ , "author" : { | ||
, "ee-types" : "0.1.*" | ||
, "mocha" : "1.18.*" | ||
, "ee-event-emitter" : "0.1.*" | ||
} | ||
, "devDependencies": { | ||
"mocha" : "1.18.*" | ||
} | ||
, "optionalDependencies" : {} | ||
@@ -29,0 +31,0 @@ , "keywords" : ["ee", "soa", "transport", "rest"] |
var assert = require('assert'); | ||
var loaders = require('./../lib/loader'); | ||
var loaders = require('../lib/loader'); | ||
@@ -5,0 +5,0 @@ /** |
@@ -9,10 +9,11 @@ var assert = require('assert'); | ||
[ | ||
{domain: 'test1.com', name: 'ensure', field: 'range', value: '1-10'}, | ||
{domain: 'test1.com', name: 'append', field: 'filter', value: ', deleted=null' }, | ||
{domain: 'test1.com', name: 'override', field: 'select', value: '*' }, | ||
{domain: 'test1.com', name: 'template', field: '', value: 'index.html' }, | ||
{domain: 'test2.com', name: 'alias', field: '', value: 'rewritten.com' }, | ||
{domain: 'rewritten.com', name: 'ensure', field: 'range', value: '1-20'}, | ||
{domain: 'rewritten.com', name: 'append', field: 'filter', value: ', deleted!=null'}, | ||
{domain: 'test2.com', name: 'append', field: 'filter', value: ', nonsense' }, | ||
{domain: 'test1.com', path: null, name: 'ensure', field: 'range', value: '1-10'}, | ||
{domain: 'test1.com', path: null, name: 'append', field: 'filter', value: ', deleted=null' }, | ||
{domain: 'test1.com', path: null, name: 'override', field: 'select', value: '*' }, | ||
{domain: 'test1.com', path: null, name: 'template', field: '', value: 'index.html' }, | ||
{domain: 'test1.com', path: /\/somewhere\/(\d+)/, name: 'path', field: '', value: '/somewhere-else/$1' }, | ||
{domain: 'test2.com', path: null, name: 'alias', field: '', value: 'rewritten.com' }, | ||
{domain: 'rewritten.com', path: null, name: 'ensure', field: 'range', value: '1-20'}, | ||
{domain: 'rewritten.com', path: null, name: 'append', field: 'filter', value: ', deleted!=null'}, | ||
{domain: 'test2.com', path: null, name: 'append', field: 'filter', value: ', nonsense' }, | ||
] | ||
@@ -43,4 +44,8 @@ , 'domain'); | ||
}); | ||
it('should rewrite a matching path', function(){ | ||
assert.equal(req.pathname, '/somewhere-else/10'); | ||
}); | ||
}); | ||
}); | ||
}); |
@@ -25,3 +25,3 @@ var assert = require('assert'); | ||
template = new rewrites.Template({domain:'test.com', field:'template', value:'index.nunjucks.hmtl'}), | ||
path = new rewrites.Path({domain:'test.com', field:'/somewhere/(\\d+)', value:'/somewhere-else/$1'}); | ||
path = new rewrites.Path({domain:'test.com', path:/\/somewhere\/(\d+)/, value: '/somewhere-else/$1' }); | ||
@@ -28,0 +28,0 @@ |
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
41080
3
36
958
1
1
- Removedmocha@1.18.*
- Removedcommander@0.6.12.0.0(transitive)
- Removeddebug@4.4.0(transitive)
- Removeddiff@1.0.7(transitive)
- Removedglob@3.2.3(transitive)
- Removedgraceful-fs@2.0.3(transitive)
- Removedgrowl@1.7.0(transitive)
- Removedinherits@2.0.4(transitive)
- Removedjade@0.26.3(transitive)
- Removedlru-cache@2.7.3(transitive)
- Removedminimatch@0.2.14(transitive)
- Removedmkdirp@0.3.00.3.5(transitive)
- Removedmocha@1.18.2(transitive)
- Removedms@2.1.3(transitive)
- Removedsigmund@1.0.1(transitive)