Skip to content

Latest commit

 

History

History
279 lines (164 loc) · 10.8 KB

changelog.md

File metadata and controls

279 lines (164 loc) · 10.8 KB

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:')

Bug Fixes

  • always return promises in async functions (009f079)

Features

  • add support for in-memory database (8587f4b)
  • add getters & setters (ab5cd7b)
  • add getRaw() & setRaw() (5fe1f80)

Performance Improvements

  • model: use assignments in constructor (73e6ebd)
  • util: optimize each() and map() (040084d)

1.2.1 (2017-07-25)

Bug Fixes

  • immediately create db file for both clients (7423312)
  • fix .mjs module by removing module.exports usage (e1d57c3)

1.2.0 (2017-06-09)

Features

  • add initial Flow definitions (b9937b4)
  • add initial TypeScript definitions (3d9a2a5)
  • support multiple where clauses (ff481bb), closes #54

1.1.0 (2017-03-23)

Bug Fixes

  • findOne: error when no result and column provided (7394150)

Features

  • 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!

Bug Fixes

  • 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.

Bug Fixes

  • update: handle type definitions on update (eeda08c), closes #31

1.0.0-rc.4 (2017-02-24)

This is probably the last release candidate before 1.0.0!

Bug Fixes

  • 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.

Bug Fixes

  • 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)

Features

  • create: return the created object (e551bbd)

Performance Improvements

  • optimize findLastObject helper (e90cdff)

BREAKING CHANGES

  • 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)

Bug Fixes

  • only require sql.js if not using sqlite3 (123149d), closes #18

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.

Bug Fixes

  • enforcers: broken descriptor validation (459a485)

Features

  • types: add Array and Object 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.

Bug Fixes

  • 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)

Features

  • add hasModel(), dropModel(), and close() (00c0d66)
  • add raw() method for custom queries (2403e27)
  • change groupBy usages to group (772b252)
  • initial commit for rewrite (#14) (26f739f)
  • clear: add clear() method, safeguard remove() (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)

BREAKING CHANGES

Major breakage inbound. See #14 for more info and useful migration tips.

0.10.0 (2016-12-17)

Bug Fixes

  • build: revert babel config to es2015 base (0e67048)
  • tests: fix error in deletion tests (#4) (85160d8), closes #4
  • tests: working directory discrepancy (3330d92)

Features

  • addt'l createTable forms, coercion config, modularize, cjs export (d3bab02)
  • change schemaBuilder & queryBuilder to getters (4c82d3c)

BREAKING CHANGES

  • Any instances of retrieving knex's schema or query builder through trilogy must now use for example: db.queryBuilder.[method] instead of db.getQueryBuilder().[method]. The same applies to schema builder.
  • Any commonjs users requireing trilogy no longer need .default due to using commonjs export instead of Babel's export default fill.

0.9.2 (2016-09-14)