Skip to content

Commit c04aab0

Browse files
Move UseReactWithEnvironment to separate namespace
1 parent 5ec768d commit c04aab0

File tree

5 files changed

+38
-18
lines changed

5 files changed

+38
-18
lines changed

src/React.AspNet.Middleware/ReactBuilderExtensions.cs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using Microsoft.AspNetCore.Builder;
1010
using Microsoft.AspNetCore.Hosting;
1111
using Microsoft.AspNetCore.Http;
12-
using React.Exceptions;
1312
using React.TinyIoC;
1413
using Microsoft.Extensions.DependencyInjection;
1514
using Newtonsoft.Json.Serialization;
@@ -27,21 +26,19 @@ namespace React.AspNet
2726
/// <summary>
2827
/// Handles registering ReactJS.NET middleware in an ASP.NET <see cref="IApplicationBuilder"/>.
2928
/// </summary>
30-
public static class ReactBuilderExtensions
31-
{
29+
public static class ReactBuilderExtensions
30+
{
3231
/// <summary>
3332
/// Initialises ReactJS.NET for this application
3433
/// </summary>
3534
/// <param name="app">ASP.NET application builder</param>
3635
/// <param name="configure">ReactJS.NET configuration</param>
3736
/// <param name="fileOptions">Options to use for serving files</param>
38-
/// <param name="useNodeEnvironment"></param>
3937
/// <returns>The application builder (for chaining)</returns>
4038
public static IApplicationBuilder UseReact(
4139
this IApplicationBuilder app,
4240
Action<IReactSiteConfiguration> configure,
43-
BabelFileOptions fileOptions = null,
44-
bool useNodeEnvironment = false
41+
BabelFileOptions fileOptions = null
4542
)
4643
{
4744
RegisterAspNetServices(React.AssemblyRegistration.Container, app.ApplicationServices);
@@ -57,12 +54,6 @@ public static IApplicationBuilder UseReact(
5754

5855
configure(ReactSiteConfiguration.Configuration);
5956

60-
if (useNodeEnvironment)
61-
{
62-
TinyIoCContainer.Current.Unregister<IReactEnvironment>();
63-
TinyIoCContainer.Current.Register<IReactEnvironment, ReactWithNodeEnvironment>();
64-
}
65-
6657
// Allow serving of .jsx files
6758
app.UseMiddleware<BabelFileMiddleware>(fileOptions ?? new BabelFileOptions());
6859

src/React.NodeServices/React.NodeServices.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
</ItemGroup>
1010

1111
<ItemGroup>
12+
<ProjectReference Include="..\React.AspNet.Middleware\React.AspNet.Middleware.csproj" />
1213
<ProjectReference Include="..\React.Core\React.Core.csproj" />
1314
</ItemGroup>
1415
</Project>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System;
2+
using Microsoft.AspNetCore.Builder;
3+
using React.AspNet;
4+
using React.TinyIoC;
5+
6+
namespace React.NodeServices
7+
{
8+
public static class ReactNodeEnvironmentExtensions
9+
{
10+
/// <summary>
11+
///
12+
/// </summary>
13+
/// <typeparam name="T"></typeparam>
14+
/// <param name="app"></param>
15+
/// <param name="configure"></param>
16+
/// <param name="fileOptions"></param>
17+
/// <returns></returns>
18+
public static IApplicationBuilder UseReactWithEnvironment<T>(
19+
this IApplicationBuilder app,
20+
Action<IReactSiteConfiguration> configure,
21+
BabelFileOptions fileOptions = null
22+
) where T : class, IReactEnvironment
23+
{
24+
var appInstance = app.UseReact(configure, fileOptions);
25+
TinyIoCContainer.Current.Unregister<IReactEnvironment>();
26+
TinyIoCContainer.Current.Register<IReactEnvironment, T>();
27+
28+
return appInstance;
29+
}
30+
}
31+
}

src/React.Core/ReactWithNodeEnvironment.cs renamed to src/React.NodeServices/ReactWithNodeEnvironment.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,13 @@
77

88
using System;
99
using System.Collections.Generic;
10-
using System.Diagnostics;
1110
using System.IO;
1211
using System.Linq;
1312
using System.Reflection;
14-
using System.Text;
15-
using System.Threading;
1613
using React.Exceptions;
1714
using React.TinyIoC;
1815

19-
namespace React
16+
namespace React.NodeServices
2017
{
2118
/// <summary>
2219
/// Request-specific ReactJS.NET environment. This is unique to the individual request and is

src/React.Sample.Webpack.CoreMvc/Startup.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void ConfigureServices(IServiceCollection services)
4141
public void Configure(IApplicationBuilder app)
4242
{
4343
// Initialise ReactJS.NET. Must be before static files.
44-
app.UseReact(config =>
44+
app.UseReactWithEnvironment<ReactWithNodeEnvironment>(config =>
4545
{
4646
config
4747
.SetReuseJavaScriptEngines(true)
@@ -51,7 +51,7 @@ public void Configure(IApplicationBuilder app)
5151
.AddScriptWithoutTransform("~/dist/runtime.js")
5252
.AddScriptWithoutTransform("~/dist/vendor.js")
5353
.AddScriptWithoutTransform("~/dist/components.js");
54-
}, useNodeEnvironment: true);
54+
});
5555

5656
app.UseStaticFiles();
5757

0 commit comments

Comments
 (0)