Comparing version 0.0.9 to 0.0.10
@@ -0,1 +1,7 @@ | ||
//TODO(tuanderful): implement modifiers | ||
var constructRegex = function(str) { | ||
var expression = str.substr(1, str.length-2); | ||
return new RegExp(expression); | ||
}; | ||
var getChainEvaluator = function (chain) { | ||
@@ -5,2 +11,3 @@ var state = {}; | ||
if (chain === undefined) return true; | ||
var found; | ||
@@ -12,3 +19,12 @@ for (var i = 1; i < chain.length; i++) { | ||
case "id": | ||
if (step.args.indexOf(obj.id) === -1) { | ||
found = false; | ||
step.args.forEach(function(arg){ | ||
if ((arg === obj.id) || | ||
(arg.match(/^\/.*\/$/) && obj.id.match(constructRegex(arg)))) { | ||
found = true; | ||
} | ||
}); | ||
if (!found) { | ||
return false; | ||
@@ -15,0 +31,0 @@ } |
{ | ||
"name": "metastore", | ||
"description": "data metastore", | ||
"version": "0.0.9", | ||
"version": "0.0.10", | ||
"homepage": "https://github.com/azulus/metastore", | ||
@@ -6,0 +6,0 @@ "authors": [ |
@@ -47,4 +47,30 @@ var GraphQL = require('../index').GraphQL; | ||
}); | ||
filtered = GraphQLFilter.filter(obj, GraphQL.parse('Object{users.id(/2/){name}}')); | ||
test.deepEqual(filtered, { | ||
users:[ | ||
{ | ||
name:obj.users[1].name | ||
} | ||
] | ||
}); | ||
filtered = GraphQLFilter.filter(obj, GraphQL.parse('Object{users.id(/ser/){age}}')); | ||
test.deepEqual(filtered, { | ||
users:[ | ||
{ | ||
age:obj.users[0].age | ||
}, | ||
{ | ||
age:obj.users[1].age | ||
} | ||
] | ||
}); | ||
filtered = GraphQLFilter.filter(obj, GraphQL.parse('Object{users.id(/^2/){name}}')); | ||
test.deepEqual(filtered, { | ||
users:[] | ||
}); | ||
test.done(); | ||
}; |
23671
748