using Microsoft.Dnx.Runtime; using Microsoft.Framework.DependencyInjection; namespace Microsoft.AspNet.NodeServices { public static class Configuration { public static void AddNodeServices(this IServiceCollection serviceCollection, NodeHostingModel hostingModel = NodeHostingModel.Http) { serviceCollection.AddSingleton(typeof(INodeServices), (serviceProvider) => { var appEnv = serviceProvider.GetRequiredService(); return CreateNodeServices(hostingModel, appEnv.ApplicationBasePath); }); } public static INodeServices CreateNodeServices(NodeHostingModel hostingModel, string projectPath) { switch (hostingModel) { case NodeHostingModel.Http: return new HttpNodeInstance(projectPath); case NodeHostingModel.InputOutputStream: return new InputOutputStreamNodeInstance(projectPath); default: throw new System.ArgumentException("Unknown hosting model: " + hostingModel.ToString()); } } } }