Skip to content

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, getOrCache utilities
  • src/gaskets/sheet.ts: SheetGasket class with get, getOrCreate, getAll methods
  • src/gaskets/index.ts: module entry point with re-exports

Changed

  • Nothing changed in existing modules

Fixed

  • getOrCache: replaced unsafe as T cast with ?? null to preserve T | null return contract

Is It Safe to Upgrade?

  • Breaking Changes: No
  • Backward Compatible: Yes

  • gaslets module is unchanged and continues to work as before

  • gaskets is 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:
    • 65cb6ead feat(gaskets): add lighter utility module for safe GAS API calls
    • 8c2a1f37 fix(gaskets): replace unsafe cast with nullish coalescing in getOrCache
    • b5b954f3 docs(gaskets): add @module and @packageDocumentation to lighter.ts
    • 0589dc1b docs(gaskets): add @function tag to all top-level declarations in lighter.ts
    • 33e3e36a docs(gaskets): clarify @returns null conditions in getOrNull and getOrCache
    • 39a9f9a6 docs(gaskets): improve @example in getOrCache to show cache reuse behavior
    • 695d4d55 docs(gaskets): improve docstrings for lighter.ts utilities
    • a41dd4f0 docs(gaskets): add @remarks guiding users toward service classes in lighter.ts
    • d24427b1 fix(gaskets): correct afterglow import path in sheet.ts
    • 83aa783f fix(gaskets): export SheetGasket and SheetGasketOptions from sheet.ts and index.ts
    • 36193529 docs(gaskets): add docstrings to SheetGasket, SheetGasketOptions, and all methods

Known Issues

  • gaskets module is not yet integrated into src/index.ts — classes are not registered in GASGlobalThis
  • gaslets migration is in progress; gaskets does not yet cover all services (book, drive, calendar, trigger)

Next Steps

  • Add BookGasket, DriveGasket and other service classes to gaskets
  • Migrate gaslets users to gaskets equivalents
  • Register gaskets classes in GASGlobalThis once the API stabilizes