this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(devx): Fix mock sender script

+45 -39
+45 -39
scripts/mocksender.ts
··· 1 1 //@ts-nocheck 2 2 3 - import { connect, JetStreamManager, NatsConnection, StringCodec } from 'nats'; 4 - import { STREAM_NAME, SUBJECT_NAME } from '../constants.js'; 5 - import { Message } from '../types.js'; 3 + import { connect, JetStreamManager, NatsConnection, StringCodec } from "nats" 4 + import { 5 + STREAM_NAME, 6 + SUBJECT_NAME, 7 + type Message, 8 + Event, 9 + } from "../typescript/index.js" 6 10 7 11 async function setupStream( 8 12 jetStreamManager: JetStreamManager, 9 13 streamName: string, 10 - subject: string, 14 + subject: string 11 15 ) { 12 16 try { 13 17 // Try to add the stream (will not recreate if it exists) 14 18 await jetStreamManager.streams.add({ 15 19 name: streamName, 16 20 subjects: [subject], 17 - }); 18 - console.log(`Stream '${streamName}' created or already exists.`); 21 + }) 22 + console.log(`Stream '${streamName}' created or already exists.`) 19 23 } catch (err) { 20 - console.error(`Error setting up stream: ${err.message}`); 24 + console.error(`Error setting up stream: ${err.message}`) 21 25 } 22 26 } 23 27 24 - enum Event { 25 - CommentReply = 'comment_reply', 26 - GodchildRequest = 'godchild_request', 27 - NewComment = 'new_comment', 28 - NewPost = 'new_post', 29 - NewTicket = 'new_ticket', 30 - } 31 - 32 28 function randomMessage(): Message { 33 29 const events = [ 34 - Event.CommentReply, 35 30 Event.GodchildRequest, 36 - Event.NewComment, 37 31 Event.NewPost, 38 32 Event.NewTicket, 39 - ] as const; 40 - const event = events[Math.floor(Math.random() * events.length)]; 41 - const id = Math.random().toString(36).substring(7); 42 - return { event, id }; 33 + ] as const 34 + const event = events[Math.floor(Math.random() * events.length)] 35 + const id = Math.random().toString(36).substring(7) 36 + const send_at = new Date() 37 + send_at.setSeconds(send_at.getSeconds() + Math.floor(Math.random() * 10)) 38 + return { 39 + event, 40 + id, 41 + send_at, 42 + clear_schedule_for: 43 + Math.random() > 0.5 44 + ? [] 45 + : Math.random() > 0.5 46 + ? [Event.GodchildRequest, event] 47 + : [event], 48 + } 43 49 } 44 50 45 51 async function publishMessages( 46 52 nc: NatsConnection, 47 53 subject: string, 48 54 messageCount: number, 49 - delayMs: number, 55 + delayMs: number 50 56 ) { 51 - const js = nc.jetstream(); 52 - const sc = StringCodec(); 57 + const js = nc.jetstream() 58 + const sc = StringCodec() 53 59 54 60 for (let i = 1; i <= messageCount; i++) { 55 - const message = `Mock Order #${i}`; 56 - await js.publish(subject, sc.encode(JSON.stringify(randomMessage()))); 57 - console.log(`Sent message: ${message}`); 58 - await new Promise((resolve) => setTimeout(resolve, delayMs)); 61 + const message = `Mock Order #${i}` 62 + await js.publish(subject, sc.encode(JSON.stringify(randomMessage()))) 63 + console.log(`Sent message: ${message}`) 64 + await new Promise((resolve) => setTimeout(resolve, delayMs)) 59 65 } 60 66 } 61 67 62 68 async function main() { 63 69 // Connect to the NATS server 64 - const nc = await connect({ servers: 'localhost:4222' }); 65 - console.log('Connected to NATS'); 70 + const nc = await connect({ servers: "localhost:4222" }) 71 + console.log("Connected to NATS") 66 72 67 73 // Create a JetStream manager to manage streams 68 - const jsm = await nc.jetstreamManager(); 74 + const jsm = await nc.jetstreamManager() 69 75 70 76 // Ensure the stream exists 71 - await setupStream(jsm, STREAM_NAME, SUBJECT_NAME); 77 + await setupStream(jsm, STREAM_NAME, SUBJECT_NAME) 72 78 73 79 // Publish messages at intervals 74 - const messageCount = 1000; 75 - const delayMs = 10; // 1 second delay between messages 76 - await publishMessages(nc, SUBJECT_NAME, messageCount, delayMs); 80 + const messageCount = 1000 81 + const delayMs = 10 // 1 second delay between messages 82 + await publishMessages(nc, SUBJECT_NAME, messageCount, delayMs) 77 83 78 - console.log('Finished sending messages.'); 79 - await nc.close(); 84 + console.log("Finished sending messages.") 85 + await nc.close() 80 86 } 81 87 82 88 main().catch((err) => { 83 - console.error(`Error in sender: ${err.message}`); 84 - }); 89 + console.error(`Error in sender: ${err.message}`) 90 + })