v0.57.0 - Add gaskets module with lighter utilities and SheetGasket (2026-03-28)¶
What Changed?¶
This release introduces the gaskets module — a new GAS service integration layer intended to replace gaslets over time.
The initial implementation includes lighter.ts (safe/cached GAS API call utilities) and SheetGasket (cached sheet access).
No breaking changes to existing modules.
What's New¶
Main Feature: gaskets module¶
What it does:
Provides a lightweight, cached integration layer for Google Apps Script service APIs.
Each service corresponds to a single file and class.
lighter.ts supplies three low-level utilities used internally by service classes.
How to use it:
TypeScript
// Low-level utility (advanced use / custom wrappers)
const file = getOrNull(() => DriveApp.getFileById(fileId));
// Sheet access via SheetGasket
const gasket = new SheetGasket();
const book = SpreadsheetApp.getActiveSpreadsheet();
const sheet = gasket.get(book, "Sales");
if (sheet) {
console.log(sheet.getLastRow());
}
Added¶
src/gaskets/lighter.ts:collectIterator,getOrNull,getOrCacheutilitiessrc/gaskets/sheet.ts:SheetGasketclass withget,getOrCreate,getAllmethodssrc/gaskets/index.ts: module entry point with re-exports
Changed¶
- Nothing changed in existing modules
Fixed¶
getOrCache: replaced unsafeas Tcast with?? nullto preserveT | nullreturn contract
Is It Safe to Upgrade?¶
- Breaking Changes: No
-
Backward Compatible: Yes
-
gasletsmodule is unchanged and continues to work as before gasketsis a new, additive module with no side effects on existing code
Release Details¶
- Date: 2026-03-28
- Version: v0.57.0
- gaslamp: 116
- pilotlamp: 74
- Files Changed: 3
- Commits:
65cb6eadfeat(gaskets): add lighter utility module for safe GAS API calls8c2a1f37fix(gaskets): replace unsafe cast with nullish coalescing in getOrCacheb5b954f3docs(gaskets): add @module and @packageDocumentation to lighter.ts0589dc1bdocs(gaskets): add @function tag to all top-level declarations in lighter.ts33e3e36adocs(gaskets): clarify @returns null conditions in getOrNull and getOrCache39a9f9a6docs(gaskets): improve @example in getOrCache to show cache reuse behavior695d4d55docs(gaskets): improve docstrings for lighter.ts utilitiesa41dd4f0docs(gaskets): add @remarks guiding users toward service classes in lighter.tsd24427b1fix(gaskets): correct afterglow import path in sheet.ts83aa783ffix(gaskets): export SheetGasket and SheetGasketOptions from sheet.ts and index.ts36193529docs(gaskets): add docstrings to SheetGasket, SheetGasketOptions, and all methods
Known Issues¶
gasketsmodule is not yet integrated intosrc/index.ts— classes are not registered inGASGlobalThisgasletsmigration is in progress;gasketsdoes not yet cover all services (book, drive, calendar, trigger)
Next Steps¶
- Add
BookGasket,DriveGasketand other service classes togaskets - Migrate
gasletsusers togasketsequivalents - Register
gasketsclasses inGASGlobalThisonce the API stabilizes