map-filter-reduce
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -7,2 +7,3 @@ var u = require('./util') | ||
var isObject = u.isObject | ||
var isArray = u.isArray | ||
var has = u.has | ||
@@ -12,3 +13,2 @@ var map = u.map | ||
function exact(q) { | ||
console.log('Exact', q) | ||
return function (v) { | ||
@@ -19,4 +19,15 @@ return q === v | ||
function prefix(p) { | ||
return function (v) { | ||
return isString(v) && v.substring(0, p.length) === p | ||
if(isString(p)) | ||
return function (v) { | ||
return isString(v) && v.substring(0, p.length) === p | ||
} | ||
if(isArray(p)) { | ||
if(!p.every(isBasic)) | ||
throw new Error('{$prefix: array} must have exact elements in the array') | ||
return function (v) { | ||
if(!isArray(v) || v.length < p.length) return false | ||
for(var i = 0; i < p.length; i++) | ||
if(v[i] !== p[i]) return false | ||
return true | ||
} | ||
} | ||
@@ -69,3 +80,2 @@ } | ||
function make (q) { | ||
console.log('Make', q) | ||
return ( | ||
@@ -84,4 +94,1 @@ isBasic(q) ? exact(q) | ||
{ | ||
"name": "map-filter-reduce", | ||
"description": "", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"homepage": "https://github.com/dominictarr/map-filter-reduce", | ||
@@ -6,0 +6,0 @@ "repository": { |
@@ -12,3 +12,4 @@ var tape = require('tape') | ||
{source: 'a', dest: 'b', rel: ['name', '@bob']}, | ||
{source: 'b', dest: 'a', rel: ['name', '@alice']} | ||
{source: 'b', dest: 'a', rel: ['name', '@alice']}, | ||
{source: 'b', dest: 'a', rel: ['contact', true, false]} | ||
] | ||
@@ -22,3 +23,4 @@ | ||
{rel: ['name', {$prefix: '@'}]}, | ||
{rel: ['name', {$prefix: '@b'}]} | ||
{rel: ['name', {$prefix: '@b'}]}, | ||
{rel: {$prefix: ['contact', true]}} | ||
] | ||
@@ -35,3 +37,4 @@ | ||
], | ||
[{source: 'a', dest: 'b', rel: ['name', '@bob']}] | ||
[{source: 'a', dest: 'b', rel: ['name', '@bob']}], | ||
[{source: 'b', dest: 'a', rel: ['contact', true, false]}] | ||
] | ||
@@ -56,1 +59,2 @@ | ||
@@ -45,2 +45,3 @@ 'use strict' | ||
if(isObject(v)) { | ||
if(isArray(v.$prefix)) return v.$prefix.concat(exports.HI) | ||
if(isString(v.$prefix)) return v.$prefix | ||
@@ -56,2 +57,3 @@ if(has(v, '$lt')) return v.$lt | ||
if(isObject(v)) { | ||
if(isArray(v.$prefix)) return v.$prefix.concat(exports.LO) | ||
if(isString(v.$prefix)) return v.$prefix+'\uffff' | ||
@@ -58,0 +60,0 @@ if(has(v, '$gt')) return v.$gt |
22860
17
644