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.
- Host: GitHub
- URL: https://github.com/dinoscapeprogramming/sheetstash
- Owner: DinoscapeProgramming
- License: apache-2.0
- Created: 2025-07-10T17:36:40.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-14T16:01:32.000Z (12 months ago)
- Last Synced: 2025-08-09T15:56:32.608Z (11 months ago)
- Language: JavaScript
- Size: 14 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.