npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

kf-datacloud

v1.0.0

Published

A database based on google spreadsheets npm extension, working like KF-Database but persistent data is stored on google drive.

Downloads

4

Readme

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