Thanks to our investors, we were able to get back to our product development track after long months of enterprise support and project-only focus. We achieved tons of results in a very short timeframe and we have tons of work ahead of us, but we wanted to give you a heads-up on the newest JayData functionalites.
Please welcome our new feature list and changes and download our CTP release.
Come and “watch” our jaystack/jaydata repository to be notified on updates. There will be a lot!
OData v4
- Implementing OData v4 features and giving you the best JavaScript OData lib on the market is our primary target. JayData already provides the following v4 capabilites:
- Protocol layer that leverages Olingo-OData4-js library – please use JayData 1.3.6 with datajs to consume v1-v2-v3 endpoints
- reading enums – writing and handling enum flags are still in progress
- JayData supports all primitive types in Oasis standard primitive EDM types in Oasis standard (except Stream)
- reading open types – filtering on open types will be implemented later
- OData actions: actions are supported on context, entity set and entity level
- Reading inherited entities
OData metadata utility
- OData-metadata utility is our New Year gift to the OData developer community. This open-source tool implements OData Common Schema Definition Language 4.0 and will be the ultimate tool to process OData metadata form JavaScript. You can follow our project in jaystack/odata-metadata repository.
JaySvcUtil for node
- JaySvcUtil.exe is/was our static model generator that discovers $metadata services of OData endpoints and builds client-side code with entities, fields and published service actions.
- This fantastic, must-have tool is available with all currently supported OData v4 features built on OData metadata utility on node.js!
JayData library improvements and changes
- ES6 compatibilty – we refactored our entire codebase on EcmaScript6, but rest assured, the library will be ES5-compatible
- Modular architecture – we breaking down our library into pieces, it will be a lengthy process but once’s we are done you can customize what gets loaded into jaydata
- Compatibility with require.js – YES, finally! Many of you had asked for it, now you can use JayData with module loader
- Cleaned-up global – no more unnecessary global variables, no more mess in memory. Although this could be a breaking change in your application, we prepared the necessary tools to cover the gaps between the old and new versions, so you won’t need to rewrite your app
- MongoDB 2.x compability – we will release our new server modules with MongoDB 2.x support
- Easy contribution from Linux and Windows– we restructured our repository and assembled our new build processes. You can build your jaydata for with 2 commands: npm install and gulp
- Source maps for debugging
- Repository cleanup – we moved our codebase into jaystack/jaydata repository, ancillary stuff like endpoints and server-side components were extracted
Compatibility tips
- $data.setModelContainer(window) – to access your JayData classes (like custom Entity and EntityContext) on the window object
- To access formerly global utilities of JayData, use this:window.Container = $data.Container
window.Guard = $data.Guard
window.$C = $data.$C
window.Exception = $data.Exception
window.MemberDefinition = $data.MemberDefinition - If your WebAPI endpoint doesn’t work correctly with double/decimal/float types, use this compatibility setting:
$data.defaults.oDataWebApi = true