Skip to content

Releases: dexie/Dexie.js

Dexie v1.3.0

11 Mar 14:58
Compare
Choose a tag to compare

Dexie v1.3.0 was at last released, six months after the previous release, 1.2.0. There are a lot of news, check out!

New features

  • New WhereClause methods

    anyOfIgnoreCase()
    inAnyRange()
    startsWithAnyOfIgnoreCase()

  • Improved WhereClause methods:

    noneOf() Supports large array as argument
    notEqual() More efficient

  • Support for using yield (as await)

  • New method for improved performance when adding thousands of items into a table:

    bulkAdd()

  • Updated Typescript definition.

    Module based instead of global.
    Supports latest typescript compiler.
    typings attribute in package.json eliminates the need of DefinitelyTyped and tsd.
    "typescript.definitions"attribute in package.json makes tsd detect the typings in github.

  • Support for the new standard module format "es6" (separate output).

File Structure Update

  • The files in the dist directory has been moved. dist/latestis removed and files are put directly under dist and are all in lowercase.

  • Dist files are removed from the master branch. They are only checked in by the release.sh script in the releases branch so that each release will have them (so that our bower users get happy).

  • Addons are no more part of the npm package (or bower package). They are also ES6 based and have their own build system. They are released separately as their own npm modules

    npm install dexie-observable --save
    npm install dexie-syncable --save
    
  • Bower users can also install the npm modules through:

    bower install https://npmcdn.com/dexie-observable@SEMVER/bower.zip
    bower install https://npmcdn.com/dexie-syncable@SEMVER/bower.zip
    

    ...where SEMVER is a version query in semver format, such as 0.1.x, ~0.1.2, ^0.1.3 etc.

Bugfixes

Wow, there's been a lot of small little fixes. 6 months are hard to conclude here. Read the commit log to see the details.

Build-, Test and Release system

Introduced scripts for building, testing and releasing Dexie.js. Source code is migrated to the ES6 module format as a base for further refactoring of Dexie.js into separate modules. Now, to contribute to Dexie.js you will need to:

npm install
npm run build or npm run watch

And to test in command line (thanks to @YuriSolovyov)
npm test

There's a little guide in README#Contributing on how to use npm link to symlink you github clone to your app's node_modules/dexie, which works perfectly well on windows systems as well.

Dexie v1.2.0

22 Sep 16:32
Compare
Choose a tag to compare

New Features

API Changes

  • Resolving db.open() with the db instance instead of undefined: Pull request #129, commit 0103244

Solved Issues

  • Issue #125 Can't properly require with requirejs. Solved in pull Request #126 Do not define name for require.js
  • Issue #113 Can't define class when table with composite key
  • Issue #78 Workaround for chrome bug: Transaction promise never completes on low disk space in chrome apps
  • Issue #134 Safari Private Browsing
  • Issue #114 mapToClass() prototype mess ...
  • Issue #123 Mini bug on line 70 Full Text Search 2 Sample

Dexie v1.1.0

25 May 23:45
Compare
Choose a tag to compare

New Features

  • New addon Dexie.Yield gives support for ES6 yield for awaiting Promises in the exact same way as with synchronous multithreaded programming. Works TODAY on Chrome, Opera and Firefox without transpiling(!)
    // Include addon "Dexie.Yield", and simplify your application code dramatically:
    db.transaction('rw', db.friends, db.pets, function* () {
        var catId = yield db.pets.add({ name: "Tito", kind: "cat" });
        var dogId = yield db.pets.add({ name: "Josephina", kind: "dog" });
        var friendId = yield db.friends.add({ name: "Gurra G", pets: [catId, dogId] });

        var gurra = yield db.friends.where('name').equals("Gurra G").first();
        var gurrasPets = yield db.pets.where('id').anyOf(gurra.pets).toArray();
        console.log(JSON.stringify(gurrasPets));
    });

In short, any method that returns a promise can be yielded instead of .then():ed. See more samples in tests-yield.html

  • Typescript definition file added (nuget: Install-Package dexie.TypeScript.DefinitelyTyped)
  • Support for AMD Module Loading (see samples/requirejs)

API Changes

  • Dexie.spawn() deprecated and replaced by Dexie.ignoreTransaction(). Still backward compliant though.

Solved Issues

  • Fixed broken CommonJS support (browserify) with sample added.
  • #81: TypeError undefined not an object. Kind of a regression bug. Systems that lacks indexedDB should get a promise rejection on db.open() not a TypeError thrown at them.
  • #102 Empty array in anyOf()
  • Broken intellisense / code completion when using Visual Studio 2013.
  • Transaction/Promise issues #91, #95 and #97
  • A little bit more defensive to IndexedDBShim issues
  • #62 Performance improvement on mobile devices
  • #100 Must abort upgrade transaction if schema error

Dexie v1.0.4

24 Mar 10:45
Compare
Choose a tag to compare

Fixes since v1.0.3:

Features:

  • Global exception handler for promises #69 (Promise.on('error'))
  • Issue #77: Make Dexie adapt to IndexedDBShim without hacks when it's included
  • HTML5 web worker support #76
  • Commit 635c7f1: May create a Dexie instance with inactive addons

Bugs:

  • Exception can be thrown in WhereClause methods #67
  • If returning a Promise from from a sub transaction, parent transaction will abort #71
  • Neither this.onsuccess or this.onerror called for hook('updating') #72
  • Exception in a promise may result in loosing the callback totally #73
  • Issue #66 Using Dexie.js inside Chrome App
  • Possible stall if error in modify()/delete() (commit c889d84)
  • Support for using other db within a transaction (commit 8d9c062)

Bugs in addons:

  • Wrong order of changes Dexie.Observable/Syncable when using sub transactions #75
  • Dexie.Syncable may store changes in the wrong table #74

Dexie v1.0.3

11 Feb 10:19
Compare
Choose a tag to compare

Safari native indeedDB support.

  • This version contains workaround for Safari's native indexedDB. Note however, that a transaction must not include multiple stores since Safari has that limitation. But if you keep querying one object store at a time, it will work with native Safari.

Alternate Safari support using indexedDBShim:

  • For those prefering indexedDBShim, the shim became unfunctional since Safari released its native support. Latest version of indexedDBShim uses a workaround for that that this version of Dexie should be compatible with (untested).

Dexie v1.0.2

09 Dec 02:31
Compare
Choose a tag to compare
Released v1.0.2 and removed the ambigous 'allversions' dir

Dexie v1.0.1

28 Nov 21:01
Compare
Choose a tag to compare

Releasing patch version 1.0.1

Dexie v1.0

18 Nov 20:39
Compare
Choose a tag to compare

Dexie v1.0 testing