11using System . Text . Json ;
2+ using Microsoft . Extensions . Options ;
23using Microsoft . Extensions . Primitives ;
34using Core = StarFederation . Datastar . FSharp ;
45
@@ -60,16 +61,16 @@ public interface IDatastarService
6061 /// <summary>Update signals on the browser. Uses JsonSerializer.Serialize() to convert TType to JSON.</summary>
6162 Task PatchSignalsAsync < TType > ( TType signals , JsonSerializerOptions jsonSerializerOptions , PatchSignalsOptions patchSignalsOptions , CancellationToken cancellationToken ) ;
6263
63- /// <summary>Execute a Javascript snippet on the browser. Implicit CancellationToken = HttpContext.RequestAborted.</summary>
64+ /// <summary>Execute a JavaScript snippet on the browser. Implicit CancellationToken = HttpContext.RequestAborted.</summary>
6465 /// <param name="script">JS snippet; do not include <script> in string</param>
6566 Task ExecuteScriptAsync ( string script ) ;
66- /// <summary>Execute a Javascript snippet on the browser.</summary>
67+ /// <summary>Execute a JavaScript snippet on the browser.</summary>
6768 /// <param name="script">JS snippet; do not include <script> in string</param>
6869 Task ExecuteScriptAsync ( string script , CancellationToken cancellationToken ) ;
69- /// <summary>Execute a Javascript snippet on the browser. Implicit CancellationToken = HttpContext.RequestAborted.</summary>
70+ /// <summary>Execute a JavaScript snippet on the browser. Implicit CancellationToken = HttpContext.RequestAborted.</summary>
7071 /// <param name="script">JS snippet; do not include <script> in string</param>
7172 Task ExecuteScriptAsync ( string script , ExecuteScriptOptions options ) ;
72- /// <summary>Execute a Javascript snippet on the browser.</summary>
73+ /// <summary>Execute a JavaScript snippet on the browser.</summary>
7374 /// <param name="script">JS snippet; do not include <script> in string</param>
7475 Task ExecuteScriptAsync ( string script , ExecuteScriptOptions options , CancellationToken cancellationToken ) ;
7576
@@ -97,7 +98,7 @@ public interface IDatastarService
9798 Task < TType ? > ReadSignalsAsync < TType > ( JsonSerializerOptions options , CancellationToken cancellationToken ) ;
9899}
99100
100- internal class DatastarService ( Core . ServerSentEventGenerator serverSentEventGenerator ) : IDatastarService
101+ internal class DatastarService ( Core . ServerSentEventGenerator serverSentEventGenerator , IOptions < DatastarJsonOptions > datastarJsonOptions ) : IDatastarService
101102{
102103 public Task StartServerEventStreamAsync ( )
103104 => serverSentEventGenerator . StartServerEventStreamAsync ( ) ;
@@ -136,17 +137,17 @@ public Task RemoveElementAsync(string selector, RemoveElementOptions options, Ca
136137 => serverSentEventGenerator . RemoveElementAsync ( selector , options , cancellationToken ) ;
137138
138139 public Task PatchSignalsAsync < TType > ( TType signals )
139- => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , Core . JsonSerializerOptions . SignalsDefault ) ) ;
140+ => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , _signalsJsonSerializerOptions ) ) ;
140141 public Task PatchSignalsAsync < TType > ( TType signals , CancellationToken cancellationToken )
141- => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , Core . JsonSerializerOptions . SignalsDefault ) , cancellationToken ) ;
142+ => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , _signalsJsonSerializerOptions ) , cancellationToken ) ;
142143 public Task PatchSignalsAsync < TType > ( TType signals , JsonSerializerOptions jsonSerializerOptions )
143144 => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , jsonSerializerOptions ) ) ;
144145 public Task PatchSignalsAsync < TType > ( TType signals , JsonSerializerOptions jsonSerializerOptions , CancellationToken cancellationToken )
145146 => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , jsonSerializerOptions ) , cancellationToken ) ;
146147 public Task PatchSignalsAsync < TType > ( TType signals , PatchSignalsOptions patchSignalsOptions )
147- => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , Core . JsonSerializerOptions . SignalsDefault ) , patchSignalsOptions ) ;
148+ => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , _signalsJsonSerializerOptions ) , patchSignalsOptions ) ;
148149 public Task PatchSignalsAsync < TType > ( TType signals , PatchSignalsOptions patchSignalsOptions , CancellationToken cancellationToken )
149- => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , Core . JsonSerializerOptions . SignalsDefault ) , patchSignalsOptions , cancellationToken ) ;
150+ => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , _signalsJsonSerializerOptions ) , patchSignalsOptions , cancellationToken ) ;
150151 public Task PatchSignalsAsync < TType > ( TType signals , JsonSerializerOptions jsonSerializerOptions , PatchSignalsOptions patchSignalsOptions )
151152 => serverSentEventGenerator . PatchSignalsAsync ( JsonSerializer . Serialize ( signals , jsonSerializerOptions ) , patchSignalsOptions ) ;
152153 public Task PatchSignalsAsync < TType > ( TType signals , JsonSerializerOptions jsonSerializerOptions , PatchSignalsOptions patchSignalsOptions , CancellationToken cancellationToken )
@@ -170,11 +171,13 @@ public Stream GetSignalsStream()
170171 => await serverSentEventGenerator . ReadSignalsAsync ( cancellationToken ) is { Length : > 0 } signals ? signals : null ;
171172
172173 public async Task < TType ? > ReadSignalsAsync < TType > ( )
173- => await serverSentEventGenerator . ReadSignalsAsync ( ) is { Length : > 0 } signals ? JsonSerializer . Deserialize < TType > ( signals , Core . JsonSerializerOptions . SignalsDefault ) : default ;
174+ => await serverSentEventGenerator . ReadSignalsAsync ( ) is { Length : > 0 } signals ? JsonSerializer . Deserialize < TType > ( signals , _signalsJsonSerializerOptions ) : default ;
174175 public async Task < TType ? > ReadSignalsAsync < TType > ( JsonSerializerOptions options )
175176 => await serverSentEventGenerator . ReadSignalsAsync ( ) is { Length : > 0 } signals ? JsonSerializer . Deserialize < TType > ( signals , options ) : default ;
176177 public async Task < TType ? > ReadSignalsAsync < TType > ( CancellationToken cancellationToken )
177- => await serverSentEventGenerator . ReadSignalsAsync ( cancellationToken ) is { Length : > 0 } signals ? JsonSerializer . Deserialize < TType > ( signals , Core . JsonSerializerOptions . SignalsDefault ) : default ;
178+ => await serverSentEventGenerator . ReadSignalsAsync ( cancellationToken ) is { Length : > 0 } signals ? JsonSerializer . Deserialize < TType > ( signals , _signalsJsonSerializerOptions ) : default ;
178179 public async Task < TType ? > ReadSignalsAsync < TType > ( JsonSerializerOptions options , CancellationToken cancellationToken )
179180 => await serverSentEventGenerator . ReadSignalsAsync ( cancellationToken ) is { Length : > 0 } signals ? JsonSerializer . Deserialize < TType > ( signals , options ) : default ;
181+
182+ private readonly JsonSerializerOptions _signalsJsonSerializerOptions = datastarJsonOptions . Value . SignalsJsonSerializerOptions ;
180183}
0 commit comments