odata-v4-inmemory
Advanced tools
Comparing version 0.1.6 to 0.1.7
@@ -27,3 +27,3 @@ "use strict"; | ||
floor: function (v) { return Math.floor(v); }, | ||
ceiling: function (v) { return Math.ceil(v); } | ||
ceiling: function (v) { return Math.ceil(v); }, | ||
}; | ||
@@ -272,1 +272,2 @@ var FilterVisitor = (function () { | ||
exports.FilterVisitor = FilterVisitor; | ||
//# sourceMappingURL=FilterVisitor.js.map |
import { Token } from 'odata-v4-parser/lib/lexer'; | ||
export { Token } from 'odata-v4-parser/lib/lexer'; | ||
export interface ExpressionFunction { | ||
@@ -9,5 +8,2 @@ (entity: any): any; | ||
} | ||
export declare namespace infrastructure { | ||
function createFilterAst(odataFilter: string): Token; | ||
} | ||
/** | ||
@@ -23,3 +19,4 @@ * Creates a filter function from an OData filter expression string | ||
*/ | ||
export declare function createFilter(odataFilter: string): FilterFunction; | ||
export declare function createFilter(filter: string): any; | ||
export declare function createFilter(filter: Token): any; | ||
/** | ||
@@ -35,2 +32,3 @@ * Compiles a value returning function from an OData expression string | ||
*/ | ||
export declare function compileExpression(odataExpression: string): ExpressionFunction; | ||
export declare function compileExpression(expression: string): any; | ||
export declare function compileExpression(expression: Token): any; |
"use strict"; | ||
var FilterVisitor_1 = require('./FilterVisitor'); | ||
var parser_1 = require('odata-v4-parser/lib/parser'); | ||
var lexer_1 = require('odata-v4-parser/lib/lexer'); | ||
exports.Token = lexer_1.Token; | ||
var odata_v4_parser_1 = require('odata-v4-parser'); | ||
var filterVisitor = new FilterVisitor_1.FilterVisitor(); | ||
var infrastructure; | ||
(function (infrastructure) { | ||
function createFilterAst(odataFilter) { | ||
//does parser have state - its a question to ask tomorrow | ||
var p = new parser_1.Parser(); | ||
var ast = p.filter(odataFilter); | ||
return ast; | ||
} | ||
infrastructure.createFilterAst = createFilterAst; | ||
})(infrastructure = exports.infrastructure || (exports.infrastructure = {})); | ||
/** | ||
* Creates a filter function from an OData filter expression string | ||
* @param {string} odataFilter - A filter expression in OData $filter format | ||
* @return {FilterFunction} JavaScript function that implements the filter predicate | ||
* @example | ||
* const filterFn = createFilter("Size eq 4 and startswith(Name,'Ch')") | ||
* const items = [{Size:1, Name:'Chai'}, {Size:4, Name:'Childrens book' }] | ||
* console.log(items.filter(filterFn)) | ||
* >> [{Size:4, Name:'Childrens book'}] | ||
*/ | ||
function createFilter(odataFilter) { | ||
return filterVisitor.Visit(infrastructure.createFilterAst(odataFilter), {}); | ||
function createFilter(filter) { | ||
var ast = (typeof filter == "string" ? odata_v4_parser_1.filter(filter) : filter); | ||
return filterVisitor.Visit(ast, {}); | ||
} | ||
exports.createFilter = createFilter; | ||
/** | ||
* Compiles a value returning function from an OData expression string | ||
* @param {string} odataExpression - An expression in OData expression format | ||
* @return {ExpressionFunction} JavaScript function that implements the expression | ||
* @example | ||
* const expression = compileExpression("concat((Size add 12) mul 3,Name)") | ||
* const item = {Size:1, Name:'Chai'} | ||
* console.log(expression(item)) | ||
* >> 39Chai | ||
*/ | ||
function compileExpression(odataExpression) { | ||
return filterVisitor.Visit(infrastructure.createFilterAst(odataExpression), {}); | ||
function compileExpression(expression) { | ||
var ast = (typeof expression == "string" ? odata_v4_parser_1.filter(expression) : expression); | ||
return filterVisitor.Visit(ast, {}); | ||
} | ||
exports.compileExpression = compileExpression; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "odata-v4-inmemory", | ||
"version": "0.1.6", | ||
"version": "0.1.7", | ||
"description": "Service OData requests from an inmemory data store", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
import { FilterVisitor } from './FilterVisitor' | ||
import { Parser } from 'odata-v4-parser/lib/parser' | ||
import { filter as parseFilter } from 'odata-v4-parser' | ||
import { Token } from 'odata-v4-parser/lib/lexer' | ||
export { Token } from 'odata-v4-parser/lib/lexer' | ||
@@ -13,15 +12,5 @@ export interface ExpressionFunction { | ||
} | ||
const filterVisitor = new FilterVisitor() | ||
const filterVisitor = new FilterVisitor(); | ||
export namespace infrastructure { | ||
export function createFilterAst(odataFilter: string): Token { | ||
//does parser have state - its a question to ask tomorrow | ||
const p = new Parser() | ||
const ast = p.filter(odataFilter) | ||
return ast | ||
} | ||
} | ||
/** | ||
@@ -37,4 +26,7 @@ * Creates a filter function from an OData filter expression string | ||
*/ | ||
export function createFilter(odataFilter: string): FilterFunction { | ||
return filterVisitor.Visit(infrastructure.createFilterAst(odataFilter), {}) | ||
export function createFilter(filter:string); | ||
export function createFilter(filter:Token); | ||
export function createFilter(filter: string | Token): FilterFunction { | ||
let ast:Token = <Token>(typeof filter == "string" ? parseFilter(<string>filter) : filter); | ||
return filterVisitor.Visit(ast, {}); | ||
} | ||
@@ -52,4 +44,7 @@ | ||
*/ | ||
export function compileExpression(odataExpression: string): ExpressionFunction { | ||
return filterVisitor.Visit(infrastructure.createFilterAst(odataExpression), {}) | ||
export function compileExpression(expression:string); | ||
export function compileExpression(expression:Token); | ||
export function compileExpression(expression: string | Token): ExpressionFunction { | ||
let ast:Token = <Token>(typeof expression == "string" ? parseFilter(<string>expression) : expression); | ||
return filterVisitor.Visit(ast, {}) | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
63898
1014