public static T UseHttpApi <T>(this T kernel, StartupOptions startupOptions, HttpProbingSettings httpProbingSettings) where T : Kernel { var initApiCommand = new Command("#!enable-http") { IsHidden = true, Handler = CommandHandler.Create((KernelInvocationContext context) => { if (context.Command is SubmitCode submitCode) { var probingUrls = httpProbingSettings != null ? httpProbingSettings.AddressList : new[] { new Uri($"http://localhost:{startupOptions.HttpPort}") }; var html = HttpApiBootstrapper.GetHtmlInjection(probingUrls, startupOptions.HttpPort?.ToString() ?? Guid.NewGuid().ToString("N")); context.Display(html, "text/html"); context.Complete(submitCode); } }) }; kernel.AddDirective(initApiCommand); return(kernel); }
public static T UseHttpApi <T>(this T kernel, StartupOptions startupOptions) where T : KernelBase { var initApiCommand = new Command("#!enable-http") { Handler = CommandHandler.Create((KernelInvocationContext context) => { if (context.Command is SubmitCode submitCode) { var scriptContent = HttpApiBootstrapper.GetJSCode(new Uri($"http://localhost:{startupOptions.HttpPort}")); string value = script[type: "text/javascript"]( scriptContent.ToHtmlContent()) .ToString(); context.Publish(new DisplayedValueProduced( scriptContent, context.Command, formattedValues: new[] { new FormattedValue("text/html", value) })); context.Complete(submitCode); } }) }; kernel.AddDirective(initApiCommand); return(kernel); }