1.3.0 (2017-08-24)
This release brings a pair of exciting features!
First up is the ability to define getters and setters when creating models. These are useful for things like formatting after selects and making sure conforming data before inserts.
const people = await db.model('people', {
name: String,
username: {
type: String,
get (username) {
return `username is: ${username}`
},
set (username) {
// remove anything that isn't alphanumeric or underscore
return username.replace(/[^\w]/gi, '')
}
}
})
await people.create({
name: 'Bo Lingen',
username: 'ci.ty]ci[d/e'
})
// -> { name: 'Bo Lingen', username: 'citycide' }
await people.get('username', { name: 'Bo Lingen' })
// -> 'username is: citycide'
// can use `getRaw()` and `setRaw()` to bypass getters / setters
// other methods may also accept a `raw` property in their options object
await people.getRaw('username', { name: 'Bo Lingen' })
// -> 'citycide'
There's also a new memory-only mode - if the file path is exactly ':memory:', no file will be created and an in-memory store will be used. This doesn't persist any data but is useful for speed and performance reasons. For example, most of trilogy's tests now use in-memory databases to avoid tons of disk usage.
const db = new Trilogy(':memory:')
- always return promises in async functions (009f079)
- add support for in-memory database (8587f4b)
- add getters & setters (ab5cd7b)
- add
getRaw()
&setRaw()
(5fe1f80)
1.2.1 (2017-07-25)
- immediately create db file for both clients (7423312)
- fix
.mjs
module by removingmodule.exports
usage (e1d57c3)
1.2.0 (2017-06-09)
- add initial Flow definitions (b9937b4)
- add initial TypeScript definitions (3d9a2a5)
- support multiple where clauses (ff481bb), closes #54
1.1.0 (2017-03-23)
- findOne: error when no result and column provided (7394150)
- drop fs-jetpack dependency (4a82ab6)
1.0.0 (2017-03-16)
We've officially arrived at 1.0.0!
But don't let that stop you from submitting issues if you come across problems, or pull requests if there's something that can be improved or added.
Thanks for the help getting here!
- incr|decr: do nothing with amounts of 0 (94dd9e0)
1.0.0-rc.5 (2017-02-26)
This is probably the last release candidate before 1.0.0!
...
I feel like I've said that before.
1.0.0-rc.4 (2017-02-24)
This is probably the last release candidate before 1.0.0!
- native: ensure directory exists (f142cf4)
- package: update fs-jetpack to version 0.11.0 (481a8d6)
- package: update fs-jetpack to version 0.12.0 (3157627)
1.0.0-rc.3 (2017-02-04)
This release contains a breaking change regarding the return value of create()
.
You can follow the discussion leading up to this change in
#21,
#22,
& #24.
Many thanks to @jonataswalker who put in a lot of effort for this one.
- create: last object when auto-increment key (6c8acc1)
- create: native vs
sql.js
last object handling (06cfca0) - model:
sql.js
not returning model on creations (06df94f) - tests.model:
create()
expected return value (baa6ad3)
- create: return the created object (e551bbd)
- optimize
findLastObject
helper (e90cdff)
- create: The return value of
create()
is no longer the number of created objects. Instead,create()
returns the created object.
1.0.0-rc.2 (2017-01-17)
1.0.0-rc.1 (2017-01-13)
🙌 Welcome to the very first official release candidate of Trilogy! 🙌
The next version will be v1.0.0 unless there are any significant issues discovered.
There have not been significant changes since v0.11.1.
- enforcers: broken descriptor validation (459a485)
- types: add
Array
andObject
as valid types (421d079)
0.11.1 (2017-01-10)
This is a small feature patch on top of v0.11.0 adding model()
options
that include the ability to set compound primary keys, multiple unique
properties, and add timestamp properties (created_at
and updated_at
).
Note: the changes below are mostly from v0.11.0.
- enforcers: verbose option validation (b000a5e)
- findOne: sqlite3 response is an object (2f71f5f)
- model: argument handling with no column (e76343c)
- model: make
model()
async (e3d57f6) - native: fix affected row return value for native queries (2233a0f)
- native: query return types (7519f9e)
- query: return type should always be Promise (31cfed7)
models
list type (f77aae5)- model existence check (5591860)
- add
hasModel()
,dropModel()
, andclose()
(00c0d66) - add
raw()
method for custom queries (2403e27) - change
groupBy
usages togroup
(772b252) - initial commit for rewrite (#14) (26f739f)
- clear: add
clear()
method, safeguardremove()
(ab671c1) - count: add ability to count tables in the database (de9a62d)
- create: make
create()
return # rows affected (695753e) - model: add model options (dcc874e)
- schema: add
index
as a valid column attribute (8873e34) - sql.js: add connection pool for managing sq.js backend (2df8381)
- types: add
'timestamp'
property type (6bd0710)
Major breakage inbound. See #14 for more info and useful migration tips.
0.10.0 (2016-12-17)
- build: revert babel config to es2015 base (0e67048)
- tests: fix error in deletion tests (#4) (85160d8), closes #4
- tests: working directory discrepancy (3330d92)
- addt'l createTable forms, coercion config, modularize, cjs export (d3bab02)
- change schemaBuilder & queryBuilder to getters (4c82d3c)
- Any instances of retrieving knex's schema or query builder through trilogy must now use for example:
db.queryBuilder.[method]
instead ofdb.getQueryBuilder().[method]
. The same applies to schema builder. - Any commonjs users
require
ing trilogy no longer need.default
due to using commonjs export instead of Babel'sexport default
fill.