Skip to content

Commit 833b369

Browse files
Merge pull request #554 from TimeWarpEngineering/Cramer/2025-08-12/032migrate-from-mediatr-to-timewarp-mediator
Task 032: Migrate from MediatR to TimeWarp.Mediator
2 parents ff139b1 + c847bdb commit 833b369

53 files changed

Lines changed: 5590 additions & 5841 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.ai/other/nugets.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
nuget_categories:
33
General:
4-
- name: MediatR
4+
- name: TimeWarp.Mediator
55
for: CQRS and mediator pattern
66
- name: Riok.Mapperly
77
for: object-object mapping

.ai/other/references.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ references:
3333
resources:
3434
- Official Documentation: https://playwright.dev/dotnet/docs/intro
3535

36-
- name: MediatR NuGet Library
36+
- name: TimeWarp.Mediator NuGet Library
3737
relationship: Used extensively by TimeWarp.State
3838
resources:
39-
- Official Documentation: https://github.com/jbogard/MediatR/wiki
40-
- Authors Blog: https://www.jimmybogard.com/
39+
- Official Repository: https://github.com/TimeWarpEngineering/timewarp-mediator
4140

4241
- name: AnyClone NuGet Library
4342
relationship: Used as the default cloning ability if ICloneable has not been implemented.

Claude.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## Project Overview
66

7-
**TimeWarp.State** is a state management library for Blazor applications implementing the Flux pattern using MediatR pipeline. It handles both client-side (WebAssembly) and server-side Blazor with async state management.
7+
**TimeWarp.State** is a state management library for Blazor applications implementing the Flux pattern using Mediator pipeline. It handles both client-side (WebAssembly) and server-side Blazor with async state management.
88

99
## Development Commands
1010

@@ -74,7 +74,7 @@ dotnet build --project <ProjectPath> --configuration Release
7474

7575
### Key Patterns
7676
- **CQRS/Flux**: Unidirectional data flow with Actions/ActionHandlers
77-
- **MediatR Pipeline**: Middleware-driven architecture
77+
- **TimeWarp.Mediator Pipeline**: Middleware-driven architecture
7878
- **Async-First**: All operations are async by design
7979
- **TypeScript Integration**: Strong typing for JavaScript interop
8080

@@ -163,7 +163,7 @@ Follow structured task workflow using Kanban approach:
163163
## Essential Dependencies
164164

165165
- **Blazor**: UI framework (Server/WebAssembly)
166-
- **MediatR**: CQRS/mediator pattern implementation
166+
- **TimeWarp.Mediator**: CQRS/mediator pattern implementation
167167
- **Microsoft.JSInterop**: JavaScript interop for browser features
168168
- **Fixie**: Testing framework
169169
- **NetArchTest**: Architecture testing

Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<Project>
22
<!-- Set common properties regarding assembly information and nuget packages -->
33
<PropertyGroup>
4-
<TimeWarpStateVersion>11.0.3</TimeWarpStateVersion>
4+
<TimeWarpStateVersion>12.0.0-beta.1</TimeWarpStateVersion>
55
<Authors>Steven T. Cramer</Authors>
66
<Product>TimeWarp State</Product>
77
<PackageVersion>$(TimeWarpStateVersion)</PackageVersion>
88
<PackageProjectUrl>https://timewarpengineering.github.io/timewarp-state/</PackageProjectUrl>
9-
<PackageTags>TimeWarp.State; TimeWarp-State; TimeWarpState; BlazorState; Blazor; State; Blazor-State; MediatR; Mediator; Pipeline; Redux; Flux</PackageTags>
9+
<PackageTags>TimeWarp.State; TimeWarp-State; TimeWarpState; BlazorState; Blazor; State; Blazor-State; MediatR; Mediator; TimeWarp.Mediator; Pipeline; Redux; Flux</PackageTags>
1010
<PackageIcon>Logo.png</PackageIcon>
1111
<RepositoryUrl>https://github.com/TimeWarpEngineering/timewarp-state.git</RepositoryUrl>
1212
<RepositoryType>git</RepositoryType>

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<PackageVersion Include="Fixie.TestAdapter" Version="3.4.0" />
1010
<PackageVersion Include="FluentAssertions" Version="6.12.1" />
1111
<PackageVersion Include="JetBrains.Annotations" Version="2024.2.0" />
12-
<PackageVersion Include="MediatR" Version="12.4.1" />
12+
<PackageVersion Include="TimeWarp.Mediator" Version="13.0.0" />
1313
<PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="8.0.17" />
1414
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.17" />
1515
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.17" />

Documentation/Images/TimeWarpStateOneWayFlow.drawio

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
<mxCell id="pQi_TNxkMac2TIVI0rjQ-33" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=left;verticalAlign=middle;" vertex="1" parent="1">
8989
<mxGeometry x="110" y="280" width="20" height="440" as="geometry" />
9090
</mxCell>
91-
<mxCell id="pQi_TNxkMac2TIVI0rjQ-36" value="MediatR Pipeline" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
91+
<mxCell id="pQi_TNxkMac2TIVI0rjQ-36" value="Mediator Pipeline" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
9292
<mxGeometry y="485" width="110" height="30" as="geometry" />
9393
</mxCell>
9494
<mxCell id="pQi_TNxkMac2TIVI0rjQ-42" value="SubscriptionNotification" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">

Documentation/Images/TimeWarpStateOneWayFlow.drawio.svg

Lines changed: 1 addition & 1 deletion
Loading

Documentation/Overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ or move the GetState functionality into your component
3737

3838
### Pipeline
3939

40-
**TimeWarp.State** utilizes the MediatR pipeline which allows for middleware integration
40+
**TimeWarp.State** utilizes the TimeWarp.Mediator pipeline which allows for middleware integration
4141
by registering an interface with the dependency injection container [^4].
4242
TimeWarp.State provides the extension method [^5] , `AddTimeWarpState`, which registers behaviors on the pipeline.
4343

@@ -94,7 +94,7 @@ if the developer chose they could mark the Requests as such. For example **IActi
9494

9595
#### Footnotes:
9696

97-
[^1]: https://github.com/jbogard/MediatR
97+
[^1]: https://github.com/TimeWarpEngineering/timewarp-mediator
9898

9999
[^2]: https://redux.js.org/
100100

Documentation/Partials/Acknowledgements.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,12 @@ title: Acknowledgements
55

66
## Acknowledgements
77

8-
Jimmy Bogard ([MediatR](https://github.com/jbogard/MediatR)).
9-
Jimmy is an amazing developer and knowledge sharer.
10-
Through his course at [11x Engieering](https://11xengineering.com/),
11-
his many blog posts on Los Techies and now [JimmyBogard.com](https://jimmybogard.com/),
12-
I have learned a great amount.
13-
148
Peter Morris and I have been friends for many years.
159
He is an amazing developer and a person who has taught me a great deal.
16-
Not surprisingly, Pete and I think a lot alike.
10+
Not surprisingly, Pete and I think a lot a like.
1711
We both, independently, started working on our own State Management
1812
components. Although I started first. :P
1913
Pete's component attempts to solve most of the same problems.
20-
TimeWarp.State draws on the strengths of a proven async pipeline in MediatR, where as Fluxor
14+
TimeWarp.State draws on the strengths of a proven async pipeline in Mediator, where as Fluxor
2115
implements its own middleware.
2216
If TimeWarp.State does not meet your needs be sure to checkout Fluxor.

Documentation/Partials/Summary.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ title: Summary
77

88
**TimeWarp.State** (previously known as Blazor-State [![nuget](https://img.shields.io/nuget/dt/Blazor-State?logo=nuget)](https://www.nuget.org/packages/Blazor-State/) )
99
is a fully asynchronous state management library for Blazor applications,
10-
leveraging the MediatR pipeline to implement the Flux pattern.
10+
leveraging the Mediator pipeline to implement the Flux pattern.
1111
It handles both Reducers and Effects consistently using async Handlers,
1212
simplifying the management of asynchronous operations throughout your app.
1313

14-
By utilizing the MediatR pipeline, TimeWarp.State enables a flexible,
14+
By utilizing the Mediator pipeline, TimeWarp.State enables a flexible,
1515
middleware-driven architecture for managing state,
1616
similar to the request-processing pipeline in ASP.NET.
1717
This approach allows developers to inject custom behaviors, such as logging,

0 commit comments

Comments
 (0)