oakdatastore v0.4.0
oakdatastore
A partial gcloud-node (google cloud) datastore wrapper with bluebird promises in functional style. Only does minimally what we need, no guarantees expressed or implied. Pull Requests for expanded functions/features are welcome.
See tests for usage.
Tested with node v4 LTS
API Reference
oakdatastore module.
- oakdatastore
- .getDataStore(options) ⇒ Object
- .makeKey(datastore, path_list) ⇒ Object
- .save_P(datastore, entities, method,) ⇒ Promise
- .get_P(datastore, keys) ⇒ Promise
- .delete_P(datastore, keys) ⇒ Promise
- .deleteNamespace_P(datastore, namespace) ⇒ Promise
- .workOnQuery_P(datastore, gcloud-node, worker_P) ⇒ Promise
- .createQuery(datastore, kind, [namespace], [auto_paginate]) ⇒ Object
- .runQuery(handle, query, [callback])
- .makeEntity(key, data) ⇒ Object
oakdatastore.getDataStore(options) ⇒ Object
Make a datastore object from gcloud-node options
Kind: static method of oakdatastore
Returns: Object - gcloud-node datastore object
Param | Type | Description |
---|---|---|
options | Object | gcloud-node options |
oakdatastore.makeKey(datastore, path_list) ⇒ Object
Make a datastore key
Kind: static method of oakdatastore
Returns: Object - datastore key
Param | Type | Description |
---|---|---|
datastore | Object | gcloud-node datastore object |
path_list | Array | the datastore path in array form: 'root', 'sub1', 'sub2', 'id' |
oakdatastore.save_P(datastore, entities, method,) ⇒ Promise
Save multiple objects to datastore using the same method. nb if you "insert" 100 entities but 1 of them already exists, none of the entities will be written
Kind: static method of oakdatastore
Returns: Promise - resolving to apiResponse
Param | Type | Description |
---|---|---|
datastore | Object | gcloud-node datastore object |
entities | Array.<Object> | in form {key, data}, .. |
method, | string | one of: insert, update, upsert (default: insert) |
oakdatastore.get_P(datastore, keys) ⇒ Promise
Get multiple objects from datastore
Kind: static method of oakdatastore
Returns: Promise - resolving to apiResponse
Param | Type | Description |
---|---|---|
datastore | Object | gcloud-node datastore object |
keys | string | Array.<string> |
oakdatastore.delete_P(datastore, keys) ⇒ Promise
Delete multiple objects from datastore
Kind: static method of oakdatastore
Returns: Promise - resolving to apiResponse
Param | Type | Description |
---|---|---|
datastore | Object | gcloud-node datastore object |
keys | string | Array.<string> |
oakdatastore.deleteNamespace_P(datastore, namespace) ⇒ Promise
deletes all entities in a namespace
Kind: static method of oakdatastore
Returns: Promise - warning: this may take a long time to complete
Param | Type | Description |
---|---|---|
datastore | Object | gcloud-node datastore object |
namespace | string | to wipe |
oakdatastore.workOnQuery_P(datastore, gcloud-node, worker_P) ⇒ Promise
A helper function to process a query - warning: this may take a long time to complete
Kind: static method of oakdatastore
Returns: Promise - resolving to the final apiResponse
Param | Type | Description |
---|---|---|
datastore | Object | gcloud-node datastore object |
gcloud-node | Object | query object, as returned by createQuery() |
worker_P | function | callback worker function which takes args: (datastore, entities) and must return a promise - will be called serially for larger datasets |
oakdatastore.createQuery(datastore, kind, namespace, auto_paginate) ⇒ Object
Create datastore query
Kind: static method of oakdatastore
Returns: Object - gcloud-node datastore/query object
Param | Type | Description |
---|---|---|
datastore | Object | gcloud-node datastore object |
kind | string | |
namespace | string | optional namespace |
auto_paginate | bool | set false to manually page through results (default: true) |
oakdatastore.runQuery(handle, query, callback)
Run gcloud-node datastore query, a functional-style helper
Kind: static method of oakdatastore
Param | Type | Description |
---|---|---|
handle | Object | gcloud-node datastore or transaction object |
query | Object | created by createQuery() |
callback | function | optional callback to run with query results in form function(err, entities, nextQuery, apiResponse) |
oakdatastore.makeEntity(key, data) ⇒ Object
Make entity helper
Kind: static method of oakdatastore
Returns: Object - entity
Param | Type | Description |
---|---|---|
key | Object | gcloud-node datastore key |
data | Object | to be stored in entity value |
Update Docs
./doc/generate
Development
Either use the atom babel package, or use gulp and babel to transpile from src to build.
Test
npm test
or
npm run testwatch
or
npm test -- watch