kf-datacloud v1.0.0
KF-Datacloud
A database based on google spreadsheets npm extension, working like KF-Database but persistent data is stored on google drive.
Getting Started
How to install KF-Datacloud npm package
Prerequisites
Simply type in the npm package command installer
npm install kf-datacloud --save
Create the database
First, you need to create a google OAuth2Client (on the google developpers console) then you can download the credentials or simply create your auth client that has the good scopes ('https://www.googleapis.com/auth/drive')
Then, you need to initialize the database
The database object inherits from the builtin Javascript Map object
Initialize the database
To run the database, you need to call the constructor with the following params
const Cloud = require('kf-datacloud')
async function main() {
const options = {
name: 'Your_Database_Name', // You can set whatever you want
key: 'The_Spreadsheet_Key', // The key in the url of the spreadsheet
}
const auth = YourGoogleOAuth2Client // Your OAuth2Client that has access to the right scopes
const database = new Cloud(options, { auth })
await database.isReady // You need the database to be ready to do any modification
await database.set('key', 'path.path1', 'value') // You need to use await to set a new value, to avoid a problem with the spreadsheet
await database.set('key1', 'value')
}
The constructor params
const database = new Cloud(options, authInformations)
options.name
string
The name of the database
options.key
string
The spreadsheet key of the database, in the link of your spreadsheet from google drive
options.saveToken
boolean
When we generate a new api token, whether the token has to be saved as a file (token.json) or not
default is false
authInformations.auth
GoogleOAuth2Client
Your google OAuth2Client with the right scopes if you have already one working
Note : if you don't have the OAuth2Client running, you can pass the credentials and the Cloud will create it for you
authInformations.credentials
GoogleOAuth2Credentials
The credentials of your google OAuth2Client created in the google developper console
Note : You don't need to put credentials if you already have a OAuth2Client
authInformations.token
GoogleOAuth2Token
The token of your google OAuth2Client generated by google
Note : You don't need to put the token if you already have a OAuth2Client
Note : If token is undefined, the cloud will ask you to generate a new token
Use the database
The methods
fetchEverything
Retrieve all the data from the rows of the spreadsheet and push it in the Map object
await database.fetchEverything()
get
Get a value from the Map object given the key and a path if it is an object
Note : path is optional, key has to be a string or a number, path needs to be following the model of lodash path
await database.get('key', 'path')
ensure
Get a value from the Map object given the key and a path if it is an object, if the value is undefined, return the defaultValue
Note : path is optional, key has to be a string or a number, path needs to be following the model of lodash path
Note : returning the defaultValue won't modify the spreadsheet
await database.ensure('key', 'path', 'defaultValue')
set
Set a value in the Map object given the key and a path if it is an object, will modify the spreadsheet
Note : path is optional, key has to be a string or a number, path needs to be following the model of lodash path
Note : giving a path when the current value is not an object will erase the current value to create an object
await database.set('key', 'path', 'value')
delete
Delete a value in the Map object given the key and the path if it is an object
Note : path is optional, key has to be a string or a number, path needs to be following the model of lodash path
await database.delete('key', 'path')
deleteAll
Delete all values from the Map object
await database.deleteAll()
4 years ago