diff options
author | crupest <crupest@outlook.com> | 2021-01-07 16:36:57 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-07 16:36:57 +0800 |
commit | 5ad1b1f0191ee1131e7808c8fcb0484ba29c0d4d (patch) | |
tree | c483a2fff48ad952e787e5af1bb541d939a09f19 /BackEnd/Timeline/Startup.cs | |
parent | 20e9136a9f27a0b77f076ea5997b71d89ce3cfca (diff) | |
parent | df1ef1e21d8d889a2c9abd440039533c6a43818f (diff) | |
download | timeline-5ad1b1f0191ee1131e7808c8fcb0484ba29c0d4d.tar.gz timeline-5ad1b1f0191ee1131e7808c8fcb0484ba29c0d4d.tar.bz2 timeline-5ad1b1f0191ee1131e7808c8fcb0484ba29c0d4d.zip |
Merge pull request #198 from crupest/back-dev
Refactor back end.
Diffstat (limited to 'BackEnd/Timeline/Startup.cs')
-rw-r--r-- | BackEnd/Timeline/Startup.cs | 49 |
1 files changed, 28 insertions, 21 deletions
diff --git a/BackEnd/Timeline/Startup.cs b/BackEnd/Timeline/Startup.cs index 66c708ac..a706cf99 100644 --- a/BackEnd/Timeline/Startup.cs +++ b/BackEnd/Timeline/Startup.cs @@ -8,7 +8,6 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
-using Microsoft.Extensions.Hosting;
using NSwag;
using NSwag.Generation.Processors.Security;
using System;
@@ -29,16 +28,27 @@ namespace Timeline {
public class Startup
{
- private readonly bool disableFrontEnd;
- private readonly bool useMockFrontEnd;
+ private readonly FrontEndMode _frontEndMode;
public Startup(IConfiguration configuration, IWebHostEnvironment environment)
{
Environment = environment;
Configuration = configuration;
- disableFrontEnd = Configuration.GetValue<bool?>(ApplicationConfiguration.DisableFrontEndKey) ?? false;
- useMockFrontEnd = Configuration.GetValue<bool?>(ApplicationConfiguration.UseMockFrontEndKey) ?? false;
+ var frontEndModeString = Configuration.GetValue<string?>(ApplicationConfiguration.FrontEndKey);
+
+ if (frontEndModeString is null)
+ {
+ _frontEndMode = FrontEndMode.Normal;
+ }
+ else
+ {
+ if (!Enum.TryParse(frontEndModeString, true, out _frontEndMode))
+ {
+ _frontEndMode = FrontEndMode.Normal;
+ Console.WriteLine("Unknown FrontEnd configuaration value '{0}', fallback to normal.", frontEndModeString);
+ }
+ }
}
public IWebHostEnvironment Environment { get; }
@@ -130,23 +140,20 @@ namespace Timeline document.OperationProcessors.Add(new ByteDataRequestOperationProcessor());
});
- if (!disableFrontEnd)
+ if (_frontEndMode == FrontEndMode.Mock)
{
- if (useMockFrontEnd)
+ services.AddSpaStaticFiles(config =>
{
- services.AddSpaStaticFiles(config =>
- {
- config.RootPath = "MockClientApp";
- });
+ config.RootPath = "MockClientApp";
+ });
- }
- else if (!Environment.IsDevelopment()) // In development, we don't want to serve dist. Or it will take precedence than front end dev server.
+ }
+ else if (_frontEndMode == FrontEndMode.Normal)
+ {
+ services.AddSpaStaticFiles(config =>
{
- services.AddSpaStaticFiles(config =>
- {
- config.RootPath = "ClientApp";
- });
- }
+ config.RootPath = "ClientApp";
+ });
}
}
@@ -156,7 +163,7 @@ namespace Timeline {
app.UseRouting();
- if (!disableFrontEnd && (useMockFrontEnd || !Environment.IsDevelopment()))
+ if (_frontEndMode == FrontEndMode.Mock || _frontEndMode == FrontEndMode.Normal)
{
app.UseSpaStaticFiles(new StaticFileOptions
{
@@ -177,11 +184,11 @@ namespace Timeline UnknownEndpointMiddleware.Attach(app);
- if (!disableFrontEnd)
+ if (_frontEndMode != FrontEndMode.Disable)
{
app.UseSpa(spa =>
{
- if (!useMockFrontEnd && (Configuration.GetValue<bool?>(ApplicationConfiguration.UseProxyFrontEndKey) ?? false))
+ if (_frontEndMode == FrontEndMode.Proxy)
{
spa.UseProxyToSpaDevelopmentServer(new UriBuilder("http", "localhost", 3000).Uri);
}
|