jaydata-mongodb
Version:
Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)
22 lines (20 loc) • 890 B
JavaScript
$C('$data.storageProviders.mongoDB.mongoDBPagingCompiler', $data.Expressions.EntityExpressionVisitor, null, {
constructor: function (provider) {
this.provider = provider;
},
compile: function (expression, context) {
this.Visit(expression, context);
},
VisitPagingExpression: function (expression, context) {
var pagingContext = { data: 0 };
this.Visit(expression.amount, pagingContext);
switch (expression.nodeType) {
case $data.Expressions.ExpressionType.Skip: context.options.skip = pagingContext.data; break;
case $data.Expressions.ExpressionType.Take: context.options.limit = pagingContext.data; break;
default: Guard.raise("Not supported nodeType"); break;
}
},
VisitConstantExpression: function (expression, context) {
context.data += expression.value;
}
});