jaydata
Version:
Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)
44 lines (32 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _core = require("jaydata/core");
var _core2 = _interopRequireDefault(_core);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(function ($data) {
$data.Array.prototype.toQueryable = function () {
if (this.length > 0) {
var firtsItem = this[0];
var type = _core.Container.resolveType(_core.Container.getTypeName(firtsItem));
if (!type.isAssignableTo || !type.isAssignableTo($data.Entity)) _core.Guard.raise(new _core.Exception("Type '" + _core.Container.resolveName(type) + "' is not subclass of $data.Entity", "Not supported", type));
for (var i = 0; i < this.length; i++) {
_core.Guard.requireType('array item check', this[i], type);
}
}
var typeName = 'inMemoryArray_' + type.name;
if (!_core.Container.isTypeRegistered(typeName)) {
$data.EntityContext.extend(typeName, {
Source: {
type: $data.EntitySet,
elementType: type
}
});
}
var context = _core.Container['create' + typeName]({ name: 'InMemory', source: { Source: this } });
return context.Source;
};
})(_core2.default);
exports.default = _core2.default;
module.exports = exports['default'];