ostrich-gcloud v3.0.0
Ostrich Gcloud
Utility belt to easily connect with Gcloud in a Node.js environment.
Set up
Install the module
npm i ostrich-gcloudAdd the gcloud keyfile and add the path as an environment variable
keyfile=../path/to/keyfile.json npm startOr, alternatively, add all keys seperately as environment variables
project_id=my_project_id bucket=bucket_name ... npm startStorage
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: "test@example.com",
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);3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago