// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Builder; using System; namespace Microsoft.AspNetCore.SpaServices.AngularCli { /// /// Extension methods for enabling Angular CLI middleware support. /// public static class AngularCliMiddlewareExtensions { /// /// Handles requests by passing them through to an instance of the Angular CLI server. /// This means you can always serve up-to-date CLI-built resources without having /// to run the Angular CLI server manually. /// /// This feature should only be used in development. For production deployments, be /// sure not to enable the Angular CLI server. /// /// The . /// The name of the script in your package.json file that launches the Angular CLI process. public static void UseAngularCliServer( this ISpaBuilder spaBuilder, string npmScript) { if (spaBuilder == null) { throw new ArgumentNullException(nameof(spaBuilder)); } var spaOptions = spaBuilder.Options; if (string.IsNullOrEmpty(spaOptions.SourcePath)) { throw new InvalidOperationException($"To use {nameof(UseAngularCliServer)}, you must supply a non-empty value for the {nameof(SpaOptions.SourcePath)} property of {nameof(SpaOptions)} when calling {nameof(SpaApplicationBuilderExtensions.UseSpa)}."); } AngularCliMiddleware.Attach(spaBuilder, npmScript); } } }