23 lines
		
	
	
		
			553 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			553 B
		
	
	
	
		
			C#
		
	
	
	
	
	
using NATS.Client.JetStream;
 | 
						|
using NATS.Client.JetStream.Models;
 | 
						|
 | 
						|
namespace DysonNetwork.Shared.Stream;
 | 
						|
 | 
						|
public static class Streamer
 | 
						|
{
 | 
						|
    public static async Task<INatsJSStream> EnsureStreamCreated(
 | 
						|
        this INatsJSContext context,
 | 
						|
        string stream,
 | 
						|
        ICollection<string>? subjects
 | 
						|
    )
 | 
						|
    {
 | 
						|
        try
 | 
						|
        {
 | 
						|
            return await context.CreateStreamAsync(new StreamConfig(stream, subjects ?? []));
 | 
						|
        }
 | 
						|
        catch (NatsJSException)
 | 
						|
        {
 | 
						|
            return await context.GetStreamAsync(stream);
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |