diff --git a/.travis.yml b/.travis.yml index bfab96323..03f3f5e3e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,10 @@ sudo: false + +before_install: + - "export DISPLAY=:99.0" + - "sh -e /etc/init.d/xvfb start" + language: node_js + node_js: - "0.12" diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index c2f544f8f..f4c572206 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog +##### 1.0.0-alpha.13 (2015-06-27) +- Implemented IndexedDB adapter for browser build. + + ##### 1.0.0-alpha.12 (2015-06-19) - Change how `inflectType` option works for JSON API serializer. Now it inflects types everywhere, not just the URI. - Rename `inflectType` to `inflectPath` in the Micro API serializer to reflect this difference. diff --git a/doc/TODO.md b/doc/TODO.md index 999ed2978..1acf5000f 100644 --- a/doc/TODO.md +++ b/doc/TODO.md @@ -2,9 +2,9 @@ *This file is marked for deletion after 1.0.* -- Consider writing default adapter with Loki.js (?) - Website layout redux (?) - Consider using ES7 features (?) +- IndexedDB adapter. - Test create/update payloads that link to each other within the payload. - Improve inflection to also use dasherize. - Test the default serializer. @@ -14,6 +14,7 @@ ### Done +- Consider writing default adapter with Loki.js (decided: go straight for IndexedDB). - There are some validations that could be added to record field definitions since Fortune is already concerned with them, such as `isUnique` and `isNullable` (decided: this should be done on a per adapter basis). - Core build. - Support record types with arbitrary fields (decided: no) diff --git a/lib/adapter/adapters/index.js b/lib/adapter/adapters/index.js index 438bc5b22..7ad1546a9 100644 --- a/lib/adapter/adapters/index.js +++ b/lib/adapter/adapters/index.js @@ -1 +1,2 @@ export { default as NeDB } from './nedb' +export { default as IndexedDB } from './indexeddb' diff --git a/lib/adapter/adapters/indexeddb/index.js b/lib/adapter/adapters/indexeddb/index.js new file mode 100644 index 000000000..ec257f149 --- /dev/null +++ b/lib/adapter/adapters/indexeddb/index.js @@ -0,0 +1,7 @@ +/** + * IndexedDB adapter, optimized for browser. + */ +export default Adapter => class IndexedDBAdapter extends Adapter { + + +} diff --git a/package.json b/package.json index 71f02204e..9ba8646ac 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fortune", "description": "An I/O library for web applications.", - "version": "1.0.0-alpha.12", + "version": "1.0.0-alpha.13", "license": "MIT", "author": "Dali Zheng (http://daliwa.li)", "contributors": [], @@ -22,13 +22,15 @@ "build:website": "babel-node website/build", "prepublish": "npm run build && npm run build:core", "postpublish": "npm run deploy:website", - "test": "npm run test:lint && npm run build && node dist/test | tap-dot", + "test": "npm run test:server && npm run test:browser", + "test:server": "npm run test:lint && npm run build && node dist/test | tap-dot", + "test:browser": "browserify test/browser.js -t babelify | tape-run -b firefox | tap-dot", "test:lint": "eslint lib test website", "test:coverage": "npm run build && istanbul cover dist/test", "test:website": "npm run build:website && http-server -p 8890 dist/web" }, "dependencies": { - "babel-runtime": "5.6.1", + "babel-runtime": "5.6.3", "chalk": "1.0.0", "inflection": "1.7.1", "nedb": "1.1.2", @@ -37,7 +39,7 @@ "uri-templates": "0.1.7" }, "devDependencies": { - "babel": "5.6.1", + "babel": "5.6.3", "babelify": "6.1.2", "browserify": "10.2.4", "docchi": "0.10.2", @@ -52,7 +54,8 @@ "myth": "1.4.0", "node-fetch": "1.3.0", "rimraf": "2.4.0", - "tap-dot": "1.0.0" + "tap-dot": "1.0.0", + "tape-run": "1.0.0" }, "files": [ "dist/lib", diff --git a/test/browser.js b/test/browser.js new file mode 100644 index 000000000..d80919586 --- /dev/null +++ b/test/browser.js @@ -0,0 +1 @@ +import './integration/adapters/indexeddb' diff --git a/test/index.js b/test/index.js index 2e652492b..f8a2b3d8d 100644 --- a/test/index.js +++ b/test/index.js @@ -1,5 +1,4 @@ // Unit tests. -import './unit/adapters' import './unit/record_type' // Integration tests. @@ -9,3 +8,4 @@ import './integration/methods/update' import './integration/methods/delete' import './integration/serializers/micro_api' import './integration/serializers/json_api' +import './integration/adapters/nedb' diff --git a/test/integration/adapters/indexeddb.js b/test/integration/adapters/indexeddb.js new file mode 100644 index 000000000..3b0df4aea --- /dev/null +++ b/test/integration/adapters/indexeddb.js @@ -0,0 +1,5 @@ +import testAdapter from '../../unit/adapter' +import IndexedDB from '../../../lib/adapter/adapters/indexeddb' + + +testAdapter(IndexedDB, {}) diff --git a/test/integration/adapters/nedb.js b/test/integration/adapters/nedb.js new file mode 100644 index 000000000..32a768b7e --- /dev/null +++ b/test/integration/adapters/nedb.js @@ -0,0 +1,5 @@ +import testAdapter from '../../unit/adapter' +import NeDB from '../../../lib/adapter/adapters/nedb' + + +testAdapter(NeDB, {}) diff --git a/website/assets/piggu_logo.png b/website/assets/piggu_logo.png index 5ae75fd54..9374740b1 100644 Binary files a/website/assets/piggu_logo.png and b/website/assets/piggu_logo.png differ diff --git a/website/assets/piggu_logo.svg b/website/assets/piggu_logo.svg index 36ec3c073..8845879ec 100644 --- a/website/assets/piggu_logo.svg +++ b/website/assets/piggu_logo.svg @@ -46,9 +46,9 @@ gridtolerance="10.0" pagecolor="#ffffff" bordercolor="#666666" - inkscape:cx="-178.51665" - inkscape:cy="149.33096" - inkscape:zoom="0.72243055" + inkscape:cx="-1.7200208" + inkscape:cy="74.163439" + inkscape:zoom="1.0216711" borderopacity="1.0" showguides="true" id="base" />
PackageRepositoryIssues + -->Repository
{{{content}}}