v0.59.0 - gaskets: BookGasket and SheetGasket (2026-03-29)¶
What Changed?¶
This release introduces BookGasket and expands SheetGasket in the new gaskets module.
BookGasket provides cached access to multiple Spreadsheet objects by ID, URL, or active context.
SheetGasket now offers getById, getByUrl, and getActive methods alongside the existing getByName, getOrCreate, and getSheets.
Legacy gaslets classes (BookArtisan, SheetArtisan, sheet-dataframe) are marked as will-be-deprecated.
What's New¶
Main Feature: BookGasket¶
What it does:
Manages multiple Spreadsheet objects with caching and logging.
Avoids repeated SpreadsheetApp.openById() calls by storing results in a JunkPocket cache keyed by spreadsheet ID.
How to use it:
const gasket = new BookGasket({ name: "MyBooks" });
const byId = gasket.getById("1ABC...XYZ");
const byUrl = gasket.getByUrl("https://docs.google.com/spreadsheets/d/1ABC...XYZ/edit");
const active = gasket.getActive();
Main Feature: SheetGasket — new methods¶
What it does:
Adds getById(book, gid), getByUrl(url), and getActive(book) to SheetGasket,
mirroring the access patterns of BookGasket.
How to use it:
const gasket = new SheetGasket({ name: "MySheets" });
const book = SpreadsheetApp.getActiveSpreadsheet();
const byName = gasket.getByName(book, "Sales");
const byId = gasket.getById(book, 123456789);
const byUrl = gasket.getByUrl("https://docs.google.com/spreadsheets/d/1ABC...XYZ/edit#gid=123456789");
const active = gasket.getActive(book);
Added¶
gaskets/BookGasket— cachedSpreadsheetmanagement (getById,getByUrl,getActive)gaskets/SheetGasket.getById— open sheet by numeric gid with cachinggaskets/SheetGasket.getByUrl— open sheet from URL (extracts spreadsheet ID and gid)gaskets/SheetGasket.getActive— returns active sheet cached under"__active__"gaskets/lighter— AfterGlow logging added togetOrNullandgetOrCache
Changed¶
gaskets/SheetGasket.get→ renamed togetByNamegaskets/SheetGasket.getAll→ renamed togetSheetsgaskets/lighter— now depends onAfterGlowfor structured logging
Fixed¶
- Nothing
Is It Safe to Upgrade?¶
- Breaking Changes: Yes —
SheetGasket.get()renamed togetByName(),getAll()renamed togetSheets() - Backward Compatible: No — update call sites using
SheetGasket
Release Details¶
- Date: 2026-03-29
- Version: v0.59.0
- gaslamp: 118
- pilotlamp: 76
- Files Changed: 6
- Commits:
- 64365b49 chore: update VERSIONS.toml for v0.59.0 and uv.lock
- d1e071a6 bump: version 0.58.0 → 0.59.0
- b39920ed docs(gaslets): mark all BookArtisan methods as will-be-deprecated
- 4aeba4fc docs(gaskets): update SheetGasket docstrings with method overview and fixes
- d11e2ee0 refactor(gaskets): rename get to getByName and getAll to getSheets in SheetGasket
- e4ef6a2e feat(gaskets): add getById, getByUrl, and getActive to SheetGasket
- 54410f54 refactor(gaskets): remove duplicate logs from SheetGasket and update docstrings
- e2085b0e docs(gaskets): fix BookGasket docstrings
- 6edc67d9 refactor(gaskets): simplify BookGasket methods using getOrCache from lighter
- 30584e40 feat(gaskets): add AfterGlow logging to getOrNull and getOrCache in lighter
- bae5900b refactor(gaskets): improve BookGasket caching and rename get to getById
- cdc64be2 feat(gaskets): add BookGasket class for cached Spreadsheet management
- 29c911fc docs(gaslets): mark all sheet-dataframe functions as will-be-deprecated
- cf3f7e5a docs(gaslets): mark all SheetArtisan methods as will-be-deprecated
Known Issues¶
- None
Next Steps¶
- Deprecate and remove legacy
gasletsclasses (BookArtisan,SheetArtisan,sheet-dataframe) in a future release - Consider adding
DriveGasketand other GAS service gaskets