Releases: adonisjs/lucid
Releases · adonisjs/lucid
Improving model serialization process by allowing fields to pick or omit
The serialization process accepts a tree of fields to pick and omit for the model and its relationships. Example:
const user = await User.find(1)
user.serialize({
fields: ['username', 'email', 'id'],
})
// Verbose mode
user.serialize({
fields: {
pick: ['username', 'email', 'id'],
omit: ['id']
},
})
When pick and omit both have the same set of properties, the omit
will win.
Relationships
Quite often you would want to also cherry pick fields for relationships as well.
user.serialize({
fields: {
pick: ['username', 'email', 'id'],
omit: ['id']
},
relations: {
posts: {
fields: ['title', 'body', 'published_at']
}
}
})
Feels verbose?
Well, you will never type these fields to pick or omit manually. Usually, you will be following an API standard like JSONAPI, which allows the consumer of your API to specify the fields. There we will be a preprocessor in between the model.serialize
the user defined query string
options. That preprocessor will convert the query string to this tree.
Commits
- improvement: adding support to pick and omit fields during serialize process d3d4f92
Handful of bug fixes
- improvement: allow whereNot contraints for the unique and the exists rules 1bdf5e6
- feat: add
useTransaction
anduseConnection
methods 789f038 - improvement: making ddl queries compute the query method and not the pretty printer 7d40daf
- fix: update mysql config type to accept mysql2 as a client 2623e66
- fix: use for of loop to iterate over registered connections bfdf53a
Improvements to migrations dry run output
Improvements to logging and some new additions
Bug Fixes
- Fix
SimplePaginator.toJSON
static type
Improvements
- Do not register health checker, until one or more connections have health checks enabled
- Improvements to the query debugging. Now debugging can be control globally, at connection level or at query level.
Additions
- Added
findBy
andfindByOrFail
methods to model
Commits
- improvement: serialize datetime to iso string 7091bab
- feat: query.delete method, it is an alias for the existing .del method ea7166c
- improvement: protect preload method to be called from a deleted instance eaff60a
- feat: add findBy and findByOrFail methods 3d3a8f4
- improvement: streamline query logging by disabling knex logger and user event emitter 21f01d6
- improvement: register health checker only when one or more connections are using it 117ec61
- chore: update dependencies 7611427
- fix(types): fix type returned by SimplePaginator.toJSON (#535) e386e94
Removing redundant log statement
- fix: remove redundant console.log statement 1c1dd25
Improvements to the sync method, along with some bug fixes
- improvement: improve sync method to not select all pivot rows 76ebf32
- fix: always set updatedAt when model is dirty d7e5672
- fix: Database.transaction accept callback to be passed to the query client 5e07ed8
- chore: update dependencies 072c794
- fix(types): correct type of Model.createMany values parameter (#533) 6727f8e
Solidifying Lucid with bunch of new features and bug fixes
Highlights
- Support for query scopes with proper intellisense
- Option to define hooks by decorating functions
- A standard way to listen for database query events using the
Event
module of AdonisJS. - Helper function to pretty print SQL query logs
- Support for Pagination
- Support for Global transactions. Helpful during tests
- Added tests to run on MSSQL too.
Commits
- feat: allow defining hooks via decorators ae2f398
- style: fix after rebase c9b0e24
- improvement: use toSQL method directly, since knex has added it to their types b3f9917
- chore: cleanup dependencies f697a38
- style: improve log message in migrations command 2a0db32
- improvement: raise error when trying to merge or fill extra properties to model 003f1c4
- improvement: raise error when trying to merge or fill extra properties to model 1167b54
- refactor: use mustache syntax for stubs ebee5fb
- chore: update dependencies b20776a
- feat: accept custom data to set set on query event e9f944b
- refactor: pass model name to query reporter for updates, deletes and inserts 87f9599
- fix: return ModelQuery builder for update and deletes 4a6f165
- refactor: re-organize code f09f4f6
- fix: use fromSQL method to convert sql date times to luxon instances 40d528d
- chore: update database config template to drop Contract from config types f058141
- refactor: depreciate "debug" config property b536acc
- refactor: cleaning up migration commands b6dc1ce
- refactor: nest transaction queries inside profiler row 06f361a
- feat: add querylogs pretty printer 4281d1f
- feat: emit db queries 1466b31
- test: fix breaking test 297acd1
- fix: provider to export orm config 6bddf84
- feat: expose SimplePaginator on database object for manual construction f533fe5
- feat(paginator): add getUrlsForRange method 8cac552
- feat: add first and firstOrFail as static model methods 05f2422
- refactor: drop Contract keyword from everything except implmentable interfaces b5302d5
- refactor: extract Model.defineScope to its own helper method 5c150b8
- feat: implement fetch and find hooks 5e125f9
- refactor: serialize dates to ISODate string by default be8a9f8
- chore: update .env file d07d5ca
- feat: implement relationships onQuery hook 9b58684
- feat: implement query scopes 88cf86b
- refactor: huge cleanup to simplify things all around f268dea
- WIP 6c44456
- refactor: cleanup query builder types 0096e76
- test: add tests for clone method 6286276
- feat: implement standard offset,limit based pagination d3584fe
- feat(QueryBuilder): add clearLimit and clearOffset methods 6ba940f
- test: add tests for union queries 6293d2f
- refactor: add connection name to the query log messages a3a494b
- feat: add schema.raw to get an instance of knex query builder 5570d10
- test: use
client.context
overclient._context
after recent change in knex 2686a5c - fix: having method signature after knex upgrade 9ba7f89
- chore: update dependencies f13f503
- refactor: update code to work consistently with mssql 6874d59
- fix: add missing dev dependency mssql d338c93
- test: update tests to work cross database servers 8fa6cce
- refactor: fixing import case 8cd21d6
- chore: add support for running tests on mssql server 5c35853
- feat: add getAllTables method to get a list of all table names as an array e48709f
- feat: extend validator by adding unique and exists rules 4768c3c
- feat: add support for self managed transactions 0e2f6ee
- chore: update dependencies 3398653
Fixing make:model command
- fix(make model): create command inside the application source 31bcbb4