Files
smartenv/readme.hints.md
Juergen Kunz ce338e27ea fix(documentation): update readme with comprehensive API documentation and hints file
- Updated readme.md with complete API reference and usage examples
- Added readme.hints.md with architecture and implementation details
- Improved documentation structure and clarity
- Version bump to 5.0.13
2025-07-28 12:00:51 +00:00

1.1 KiB

SmartEnv Hints

Architecture Overview

  • Single main class Smartenv that provides all functionality
  • Uses dependency injection pattern with plugins imported from smartenv.plugins.ts
  • Utilizes @push.rocks/smartpromise for async operations

Key Implementation Details

  • Runtime detection based on checking if process is defined
  • Dynamic module loading using Function constructor for Node.js modules
  • Script tag injection for browser module loading with duplicate prevention
  • OS detection uses the native Node.js 'os' module loaded dynamically

Testing Approach

  • Tests use @git.zone/tstest with tap-based testing
  • Test file demonstrates OS detection and CI environment detection
  • Tests can run in both Node.js and browser environments

Important Notes

  • The getSafeNodeModule uses dynamic import via Function constructor to avoid bundler issues
  • Browser module loading tracks loaded scripts to prevent duplicate loads
  • All OS detection methods are async and return false in browser environments
  • The package is isomorphic and designed for use in both Node.js and browser contexts