String Template Engines - @isdk/template-engines
This package contains the following template engines: jinja2(hf used), golang, python(f-string), env.
Description
A versatile template engine library that supports multiple template formats including environment variables, HuggingFace templates, GoLang templates, and Python f-strings. The library provides a unified interface for working with different template systems.
Features
- Multiple template format support:
- Environment variable templates
- HuggingFace/Jinja templates
- GoLang templates
- Python f-string templates
- Dynamic template creation and formatting
- Partial data processing
- Template validation
- Extensible architecture
Installation
npm install @isdk/template-engines
Usage
Basic Example
import { StringTemplate } from '@isdk/template-engines';
// Create template instance, defaults to Jinja2 template if no templateFormat
const template = StringTemplate.from("Hello, {{name}}!");
// Format template
const result = await template.format({ name: "World" });
console.log(result); // Output: "Hello, World!"
API Documentation
StringTemplate Class
The main entry point for working with templates.
Static Methods
from(template: string|StringTemplateOptions, options?: StringTemplateOptions)
Creates a new template instance.
async format(options: StringTemplateOptions)
Formats a template using provided options.
async formatIf(options: StringTemplateOptions)
Formats a template if it's valid.
isTemplate(templateOpt: StringTemplateOptions)
Checks if given options represent a valid template.
Instance Methods
filterData(data: Record<string, any>)
Filters input data to include only specified variables.
partial(data: Record<string, any>)
Creates a new template instance with partially filled data.
async format(data?: Record<string, any>):
Formats a template using provided options.
toJSON()
Serializes the template instance to JSON.
Template Engines
The library supports multiple template engines:
- Environment Variable Templates
- Parses and interpolates environment variables
- Supports variable extraction
- HuggingFace Templates
- Jinja-based template engine
- Supports complex template structures
- Handles internal variables
- GoLang Templates
- Supports Go-style template syntax
- Extracts variables from template strings
- Python F-String Templates
- Parses Python-style f-strings
- Supports variable interpolation
Error Handling
The library uses CommonError
for error management with specific error codes:
- Invalid template formats
- Missing required parameters
- Template parsing errors
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (git checkout -b feature/fooBar)
- Commit your changes (git commit -am 'Add some fooBar')
- Push to the branch (git push origin feature/fooBar)
- Create a new Pull Request
License
MIT License