What is mvcct-odata?
mvcct-odata is a alightweight JavaScript OData client. It supports just queries, with filter or free search,
sorting, and gtouping+aggregation.
Queries are represented as nested objects with JavasCript methods to get their corresponding OData string representation.
This way queries are easily built and modified by adding, removing substituting and editing plain JavaScript objects.
OData objects with all they methods can be easily extracted from their Json representations,
so queries can be easily exchanged with the server and stored in all browser storage types
(cookies, local storage, etc.).
Json representation is compatible with the query representation of the MvcControlsToolkit.Core.OData
Asp.net core package.
Supported filters
Filter conditions may contain main entity properties and properties of entities directly or indirectly connected with the main entity through a chain of one-to-one or
many-to-one relations.
Conditions may be nested not/and/or combinations of "leaf conditions" containing a relation between a property
and a constant. The following relations are supported:
,<, >=, <=, ==, !=, startsWith, endsWith, contains.
Supported free search
No limitation.
Supported sorting
Any sorting involving main entity properties and properties of entities directly or indirectly connected with the main entity through a chain of one-to-one or
many-to-one relations is supported.
Supported grouping/aggregations
The library supports grouping of the type (see here for more infos on OData aggregations):
apply=groupby((properti1, property2, ...),
aggregate(aproperty1 with <operator1> as res1, aproperty2 with <operator2> as res2,...))
Where:
- property1, property2,..., and aproperty1, aproperty2, ..., may be main entity properties and properties of entities directly or indirectly connected with the main entity through a chain of one-to-one or
many-to-one relations.
- res1, res2, ... may be just properties of the main destination object (the object used to return all results of the grouping).
- op1, op2, .., are one of: countdistinct, average, sum, min, max.
Public Api
The distribution contains .js and TypeScript declaration files (d.ts) for three environments, namely:
- umd distribution that covers both AMD and Node.js commonjs modules.
- ES6 distribution suitable for both ES6 modules and WebPack. This distribution doesnt require full es6 but just ES6 modules, so it may be succesfully used also with previous JavaScript versions bundled with WebPack 2 that supports ES6 modules.
- mvcct.odata global namespace.
Queries are prepared by building an object tree rooted in a QueryDescription
instance. Then one may call QueryDescription methods like toString()
to get the whole ODATA compatible Url of the server request, or toQuery
that returns a funtion from an array to a an array that executes the query on the JavaScript input array.
QueryDescription class
Under construction
Building filters
Under construction
building free search
Under construction
building sorting
Under construction
Grouping and aggregations
Under construction