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
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) ⇒
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 |
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'] |
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) |
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> |
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> |
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 |
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 |
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) |
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) |
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 |
./doc/generate
Either use the atom babel package, or use gulp and babel to transpile from src to build.
npm test
or
npm run testwatch
or
npm test -- watch