Skip to content

[FEATURE]: Improve template configuration#76

Merged
bfarmer67 merged 8 commits intodevelopfrom
feature/75-feature-improve-template-configuration
May 1, 2025
Merged

[FEATURE]: Improve template configuration#76
bfarmer67 merged 8 commits intodevelopfrom
feature/75-feature-improve-template-configuration

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Original issue description

Tell us about your idea

Simplify rendering configuration and improve efficientcy.

Anything else?

No response

closes #75

@github-actions github-actions Bot added the feature New feature or request label Apr 30, 2025
@bfarmer67 bfarmer67 marked this pull request as ready for review May 1, 2025 00:53
@bfarmer67 bfarmer67 merged commit 1ae8d9e into develop May 1, 2025
4 checks passed
@bfarmer67 bfarmer67 deleted the feature/75-feature-improve-template-configuration branch May 1, 2025 16:38
@MattEdwardsWaggleBee MattEdwardsWaggleBee mentioned this pull request May 1, 2025
7 tasks
MattEdwardsWaggleBee added a commit that referenced this pull request May 1, 2025
* [FEATURE]: Improve template configuration (#76)
* Update nugets
* Update documentation
* Remove orphaned usings and adjust default buffer size

---------

Co-authored-by: Brenton Farmer <brent.farmer@wagglebee.net>
MattEdwardsWaggleBee added a commit that referenced this pull request May 9, 2025
* [FEATURE]: Improve template configuration (#76)
* Update nugets

* Update documentation

* Remove orphaned usings and adjust default buffer size

---------

Co-authored-by: Brenton Farmer <brent.farmer@wagglebee.net>

* Previous version was 'v3.0.2'. Version now 'v3.1.0'.

* [FEATURE]: Add XS Token Expression Provider (#79)

* Adds XS expression provider
 - Adds a new expression provider leveraging Hyperbee.XS for template processing.
 - This allows for more complex and flexible template expressions.
 - Also includes tests and benchmarks to validate and measure performance.

* Refactors XS expression compilation for flexibility
  Improves the XS expression compilation process by introducing a TypeResolver and allowing for more flexible expression definitions.
  The changes include:
  - Injecting a TypeResolver into the XsTokenExpressionProvider for better type management.
  - Modifying the MemberDictionaryParseExtension to accept a name, allowing the `vars` keyword to be configurable.
  - Updating the compilation logic to use the TypeResolver and configurable `vars` name when parsing expressions.

Updates the XS token expression compilation process for improved flexibility and extensibility.

- Introduces a `CompileLambda` delegate for customizing lambda compilation.
- Implements a `MemberTypeResolver` to handle member access within expressions, supporting properties, generic methods and indexers on member dictionaries.
- Uses `XsParser` directly for parsing XS expressions.
- Removes dependency on FastExpressionCompiler.
- Updates Hyperbee.XS package version.

This change also adapts a template parser test to use the new 'inject' and 'config' extensions. The test now retrieves a registered service and a configuration value within the template, demonstrating the functionality of these extensions.

Updates the Hyperbee.XS dependency to version 1.3.3 across the templating provider, benchmark project, and tests.

---------

Co-authored-by: Matt Edwards <matthew.edwards@wagglebee.net>

* Previous version was 'v3.1.1'. Version now 'v3.2.0'.

---------

Co-authored-by: annette.findley <annette.varndell@wagglebee.net>
Co-authored-by: Brenton Farmer <brent.farmer@wagglebee.net>
Co-authored-by: MattEdwardsWaggleBee <MattEdwardsWaggleBee@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant