@alekstar79/template-loader
v1.0.2
Published
Universal template loading system with caching, metrics and multi-strategy support
Maintainers
Readme
Template Loader
Universal template loading system with caching, metrics and multi-strategy support.
Features
- 🚀 Universal - Works in browser and Node.js environments
- 💾 Smart Caching - TTL-based caching with configurable expiration
- 📊 Metrics - Performance monitoring and cache statistics
- 🔄 Retry Mechanism - Automatic retry with exponential backoff
- 🎯 Multi-Strategy - Support for sync/async template sources
- 🔧 TypeScript - Fully typed API
Installation
npm install @alekstar79/template-loaderUsage
Basic Usage
import { TemplateLoader, TemplateRegistry } from '@alekstar79/template-loader'
const registry = new TemplateRegistry()
const loader = new TemplateLoader(registry)
// Register templates
registry.register({ name: 'header', source: '<header>Welcome</header>' })
registry.register({
name: 'footer',
source: async () => {
const response = await fetch('/templates/footer.html')
return response.text()
}
})
// Load templates
const header = await loader.loadTemplate('header')
const footer = await loader.loadTemplate('footer')Advanced Configuration
const loader = new TemplateLoader(registry, {
environment: 'production',
cache: true,
cacheTTL: 3600000, // 1 hour
enableMetrics: true,
fallbackTemplate: '<div>Template not found</div>',
onError: (error) => console.error('Template error:', error),
onWarn: (message) => console.warn('Template warning:', message)
})Metrics
const metrics = loader.getMetrics()
console.log('Cache hit rate:', metrics.cacheHitRate)
console.log('Average load time:', metrics.averageLoadTime)API Reference
TemplateRegistry
- register(config: TemplateConfig): void
- get(name: string): TemplateConfig | undefined
- has(name: string): boolean
- list(): string[]
TemplateLoader
- loadTemplate(name: string, maxRetries?: number): Promise
- loadTemplates(names: string[]): Promise<Record<string, string>>
- getMetrics(): LoaderMetrics
- clearCache(): void
Testing
Start tests
yarn test
yarn run test:ui # Visual test runner
yarn run coverage # Coverage reportCoverage
| File | % Stmts | % Branch | % Funcs | % Lines | |---------------------|---------|----------|---------|---------| | All files | 100 | 98.8 | 97.14 | | | TemplateCache.ts | 100 | 100 | 100 | | | TemplateLoader.ts | 100 | 98.24 | 94.73 | | | TemplateRegistry.ts | 100 | 100 | 100 | | | index.ts | 100 | 100 | 100 | 100 |
License
MIT © 2025 @alekstar79
