2015-12-22 11:48:06 +00:00
|
|
|
# List of notable changes made between 2.x and 3.0
|
|
|
|
|
|
|
|
All breaking changes must be described here. When adding a new entry,
|
|
|
|
always describe the impact on users and instructions for upgrading
|
|
|
|
applications from 2.x to 3.0.
|
|
|
|
|
|
|
|
See also https://github.com/strongloop/loopback/blob/master/3.0-DEVELOPING.md
|
2015-12-14 22:16:20 +00:00
|
|
|
|
|
|
|
## Always use bluebird as promise library
|
|
|
|
|
|
|
|
In version 3.0, we always use bluebird as our promise library
|
|
|
|
instead of `global.Promise`.
|
|
|
|
We consider Bluebird API a part of LoopBack API from now on,
|
|
|
|
you are welcome to use any Bluebird-specific methods in your applications.
|
|
|
|
|
|
|
|
If you are using LoopBack with a custom promise implementation provided
|
|
|
|
via `global.Promise`,
|
|
|
|
you will have to check all places where you are using non-standard promise API
|
|
|
|
and update them to use Bluebird API instead.
|
|
|
|
|
2016-04-28 11:23:50 +00:00
|
|
|
Please see [Related code change](https://github.com/strongloop/loopback-datasource-juggler/pull/790) here.
|
|
|
|
|
|
|
|
## DAO.find provides ctx.data in "loaded" hook
|
|
|
|
|
|
|
|
When implementing "loaded" hook for `DAO.find` method, we have mistakenly
|
|
|
|
implemented a version that sets `ctx.instance` instead of `ctx.data`. This
|
|
|
|
defeats the purpose of the "loaded" hook, which is to allow hooks to modify
|
|
|
|
the raw data provided by the datasource before it's used to build a model
|
|
|
|
instance.
|
|
|
|
|
|
|
|
This has been fixed in 3.0 and the "loaded" hook now consistently provides
|
|
|
|
`ctx.data` for all operations. If you have a "loaded" hook handler that
|
|
|
|
checks `if (ctx.instance)` then you can remove this condition together with
|
|
|
|
the branch that follows.
|
|
|
|
|
|
|
|
See also the commit [30283291](https://github.com/strongloop/loopback-datasource-juggler/commit/30283291?w=1)
|