1.0.0 • Published 4 years ago

kf-datacloud v1.0.0

Weekly downloads
2
License
ISC
Repository
github
Last release
4 years ago

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()