ostrich-gcloud
v3.0.0
Published
Gcloud utils
Downloads
33
Readme
Ostrich Gcloud
Utility belt to easily connect with Gcloud in a Node.js environment.
Set up
Install the module
npm i ostrich-gcloud
Add the gcloud keyfile and add the path as an environment variable
keyfile=../path/to/keyfile.json npm start
Or, alternatively, add all keys seperately as environment variables
project_id=my_project_id bucket=bucket_name ... npm start
Storage
import { Storage } from "ostrich-gcloud";
Storage.uploadFileToBucket
Uploads a file to the defined bucket. All files will automatically be made publicly available.
| Argument | Type | | ---------- | ------ | | fileName | string | | folderPath | string |
Example:
await uploadFileToBucket("index.html", "/tmp/path");
Storage.uploadFolderToBucket
Uploads an entire folder to the defined bucket. All files will automatically be made publicly available.
| Argument | Type | | ---------- | ------ | | folderPath | string |
Example:
await uploadFolderToBucket("/tmp/path");
DataStore
import { DataStore } from "ostrich-gcloud";
DataStore.findInDatabase
Find one single result in a certain collection.
All options are the same as DataStore.findMultipleInDatabase
.
Example:
await DataStore.findInDatabase("Todo", { id: "todo1" }, options);
DataStore.findMultipleInDatabase
Find multiple results of a certain selection.
Possible queries:
- equals:
{ id: 'some_id' }
- greater than:
{ startTime: { gt: new Date().toISOString() } }
- lower than:
{ startTime: { lt: new Date().toISOString() } }
Example:
await DataStore.findMultipleInDatabase("User", {
email: "[email protected]",
options,
});
Options:
| Name | Type | Default | Description | | ------------- | ------- | ---------------------- | ----------------------------------- | | limit | number | 50 | Limit of results. Hard limit is 500 | | offset | number | 0 | Index to start counting from | | orderBy | string | created_at | Which property to order by | | orderAsc | boolean | false | Sort ascending instead of desending | | createdBefore | Date | Adds created_at filter | | createdAfter | Date | Adds created_at filter |
DataStore.saveToDatabase
Create new item in the DataStore
Example:
const id = await DataStore.saveToDatabase(
"Todo",
{ content: "Buy milk" },
options
);
Options:
| Name | Type | Description | | ------------------ | ------ | ----------------------------------------------------------------------- | | excludeFromIndexes | string | When you want to add a large value, you should exclude it from indexes |
These properties will be added automatically:
- created_at
- updated_at
- id
- _deleted
DataStore.updateInDatabase
Update a value in the DataStore
Example:
await DataStore.updateInDatabase(
"Todo",
todoId,
{ content: "Buy cereal" },
options
);
Options:
| Name | Type | Description | | ------------------ | ------ | ----------------------------------------------------------------------- | | excludeFromIndexes | string | When you want to add a large value, you should exclude it from indexes |
This command will automatically update the updated_at
property.
DataStore.upsertToDatabase
Either update the value or create a new item in the DataStore
Example:
await DataStore.upsertToDatabase(
"Todo",
{ id: todoId },
{ content: "Buy cereal" }
);
Options: see options from saveToDatabase
DataStore.softDeleteInDatabase
This command will set the _deleted
property of an item to true
. It will also update updated_at
.
Example:
await DataStore.softDeleteInDatabase("Todo", todoId);