An open API service indexing awesome lists of open source software.

https://github.com/dinoscapeprogramming/sheetstash

Lightweight JS SDK for syncing JSON data with Google Sheets as a backend.
https://github.com/dinoscapeprogramming/sheetstash

Last synced: 5 months ago
JSON representation

Lightweight JS SDK for syncing JSON data with Google Sheets as a backend.

Awesome Lists containing this project

README

          

# SheetStash ๐Ÿ—‚๏ธโœจ

**SheetStash** is a simple and powerful SDK for managing and syncing baskets of JSON data using Google Sheets as a backend. It provides easy access to baskets, automatic synchronization with your Google Sheet, and allows developers to manage data in a clean and intuitive way - all without any server costs. ๐Ÿš€

## Installation ๐Ÿ“ฆ

To install **SheetStash**, use npm:

```bash
npm install sheetstash
```

## Usage ๐Ÿ› ๏ธ

### Initialize SheetStash SDK โš™๏ธ

```javascript
const SheetStash = require("sheetstash");
const auth = require("./auth"); // Your Google API auth setup

const pantry = new SheetStash("your-google-sheet-id", auth); // Initialize with Google Sheet ID
```

### Access and Modify a Basket ๐Ÿงบ

```javascript
// Access a basket (e.g., "store")
async function useBasket() {
const store = await pantry.store; // Access the basket named "store"

// Modify the basket (this will automatically trigger an update to Google Sheets)
store.someKey = "newValue"; // Automatically triggers an update to the Sheet! ๐Ÿ”„

console.log(store); // Output the store data ๐Ÿ“‹

// Access another basket (e.g., "cart")
const cart = await pantry.cart; // Dynamically fetch the basket named "cart"
console.log(cart);
};

useBasket().catch(console.error);
```

### Disable Caching ๐Ÿซธ

```js
process.env.SHEETSTASH_CHACHING = "0";
```

Disables in-memory caching so every basket fetch hits the backing Google Sheet. Useful for development or when real-time accuracy is more important than speed.

## Features โœจ

* **Auto-sync** ๐Ÿ”„: When you modify basket data, it automatically syncs with your Google Sheet.
* **Lazy Loading** โณ: Baskets are fetched and initialized only when accessed for the first time.
* **Dynamic Basket Access** ๐Ÿงบ: Access baskets directly using `pantry.store`, `pantry.cart`, etc., without explicit function calls.
* **No server or backend costs** ๐Ÿ’ธ: Uses Google Sheets as a free, cloud-hosted JSON store.

## License ๐Ÿ“„

Apache License 2.0. See LICENSE file for details.