Unveiling JayData 1.5 CTP features

Author: Robert Bonay January 19th, 2016


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

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