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
-
.getDataStore(options) ⇒
Object
oakdatastore.getDataStore(options) ⇒ 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 |
Object
oakdatastore.makeKey(datastore, path_list) ⇒ 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'] |
Promise
oakdatastore.save_P(datastore, entities, method,) ⇒ 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) |
Promise
oakdatastore.get_P(datastore, keys) ⇒ 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>
|
Promise
oakdatastore.delete_P(datastore, keys) ⇒ 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>
|
Promise
oakdatastore.deleteNamespace_P(datastore, namespace) ⇒ 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 |
Promise
oakdatastore.workOnQuery_P(datastore, gcloud-node, worker_P) ⇒ 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 |
Object
oakdatastore.createQuery(datastore, kind, [namespace], [auto_paginate]) ⇒ 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) |
Object
oakdatastore.makeEntity(key, data) ⇒ 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