Skip to content

gaslamp v0.20.0 Release Notes

Released: 2025-09-05

๐ŸŽ‰ Major Changes

โœจ New Gears Module Architecture

Major architectural improvement - Introduced the new gears module to consolidate general-purpose utilities:

  • JunkPocket: Generic caching and key-value storage utility with lazy initialization and conditional clearing
  • ClockSmith & Clock: Performance timing and measurement tools for tracking execution time
  • Unified Map Infrastructure: Consistent caching strategy across all gaslamp modules
TypeScript
// New gears module usage
import { JunkPocket, ClockSmith } from 'gaslamp';

// Caching utility
const cache = new JunkPocket<string>("myCache");
const value = cache.getOrCreate("key", () => "computed value");

// Performance timing
const smith = new ClockSmith();
smith.start("task1");
// ... your code ...
smith.stop("task1");
console.log(`Task duration: ${smith.elapsed("task1")}ms`);

๐Ÿ—๏ธ Module Reorganization

Before (v0.19.0):

Text Only
src/torch/          # Data processing + utilities (mixed)

After (v0.20.0):

Text Only
src/torch/          # Pure data processing (DataFrame, Series)
src/gears/          # General-purpose utilities (JunkPocket, ClockSmith)

This separation improves: - Logical organization: Clear separation between data processing and utilities - Reusability: Utilities can be used independently across projects - Maintainability: Focused modules with single responsibilities

โœจ Features

FlameWright Enhancements

  • Strict Mode Validation: Enhanced FlameForge with strict validation options
  • GAS Type Safety: Improved globalThis type safety for Google Apps Script compatibility

Build & Development

  • Comprehensive Format Tasks: New task groups for organized development workflow
  • Improved Task Naming: Shortened frequently used task names for better developer experience

๐Ÿ› Bug Fixes

  • FlameWright: Enhanced globalThis type safety for better GAS compatibility

๐Ÿ”ง Refactoring

  • Import Path Updates: All modules updated to use new gears module paths
  • FlameForge Implementation: Updated for improved performance and reliability
  • Build System: Organized tasks with standardized group:name naming convention

๐Ÿ“– Documentation

  • TypeDoc API Docs: Complete API documentation regenerated with new gears module
  • Module Structure: Updated documentation to reflect new architecture

๐Ÿš€ Migration Guide

For Existing Users

If you were importing utilities directly from torch module:

Before:

TypeScript
import { JunkPocket } from 'gaslamp/torch';
import { ClockSmith } from 'gaslamp/torch';

After:

TypeScript
import { JunkPocket, ClockSmith } from 'gaslamp';
// or specifically:
import { JunkPocket, ClockSmith } from 'gaslamp/gears';

Google Apps Script Users

No changes required for GAS users - global exports remain available:

JavaScript
// Still works in GAS
const cache = new JunkPocket("myCache");
const timer = new ClockSmith();

๐Ÿงช Testing & Compatibility

  • โœ… All 45 test suites pass (432 individual tests)
  • โœ… TypeScript compilation successful
  • โœ… Google Apps Script compatibility maintained
  • โœ… Rollup bundling successful

๐Ÿ“Š Performance

No performance regressions introduced. The architectural changes are purely organizational and maintain all existing functionality.

๐Ÿ‘ฅ Contributors

  • @shotakaha - Architecture redesign and implementation
  • Documentation: https://gaslamp.readthedocs.io/
  • Repository: https://gitlab.com/qumasan/gaslamp
  • Issues: https://gitlab.com/qumasan/gaslamp/-/issues
  • API Documentation: Generated TypeDoc available in docs/api/

Full Changelog: v0.19.0...v0.20.0