From e24ccfe90fc1692b9b94e5e7288c9a500391563a Mon Sep 17 00:00:00 2001 From: bastien ollier Date: Mon, 10 Jun 2024 16:24:26 +0200 Subject: [PATCH 1/4] lien editor -> live editor --- src/server.ts | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/server.ts b/src/server.ts index 51d8de6..ac03bc8 100644 --- a/src/server.ts +++ b/src/server.ts @@ -106,10 +106,26 @@ fastify.register(async function (fastify: Fastify) { }) /* Route pour créer une room */ -fastify.post( - "/live", - async (request, reply) => { - return generateId(); +fastify.post("/live", { + schema: { + body: Type.Object({ + code: Type.String(), + }), + }, +}, (request, reply) => { + const { code } = request.body; + let roomId = generateId(); + let room = rooms[roomId]; + + if(!room){ + room = { + sockets: [], + updates: [], + doc: Text.of([code]) + }; + rooms[roomId] = room; + } + return roomId; }, ); -- 2.36.3 From 684ad385a6afb7d058e95bc9abbca9c47799afc0 Mon Sep 17 00:00:00 2001 From: bastien ollier Date: Mon, 10 Jun 2024 16:37:27 +0200 Subject: [PATCH 2/4] update merge --- src/server.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/server.ts b/src/server.ts index ac03bc8..6f89958 100644 --- a/src/server.ts +++ b/src/server.ts @@ -18,8 +18,6 @@ await receiver.bind(`tcp://127.0.0.1:5558`); const clients: Record = {}; const generateId = () => nanoid(32); -//let updates: Update[] = []; -//let doc = Text.of(["foo"]); type Room = { sockets: WebSocket[]; @@ -116,15 +114,12 @@ fastify.post("/live", { const { code } = request.body; let roomId = generateId(); let room = rooms[roomId]; - - if(!room){ - room = { + room = { sockets: [], updates: [], doc: Text.of([code]) - }; - rooms[roomId] = room; - } + }; + rooms[roomId] = room; return roomId; }, ); -- 2.36.3 From 150376a2daa9218f051c806086c501f6c28fe3d2 Mon Sep 17 00:00:00 2001 From: bastien ollier Date: Mon, 10 Jun 2024 16:54:01 +0200 Subject: [PATCH 3/4] update merge --- src/server.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server.ts b/src/server.ts index 6f89958..dd38234 100644 --- a/src/server.ts +++ b/src/server.ts @@ -112,8 +112,12 @@ fastify.post("/live", { }, }, (request, reply) => { const { code } = request.body; - let roomId = generateId(); - let room = rooms[roomId]; + let room, roomId; + do{ + roomId = generateId(); + room = rooms[roomId]; + } while(room); + room = { sockets: [], updates: [], -- 2.36.3 From fc268e93e78833d70e71db5109d66b6db49b0381 Mon Sep 17 00:00:00 2001 From: bastien ollier Date: Mon, 10 Jun 2024 16:55:41 +0200 Subject: [PATCH 4/4] update merge --- src/server.ts | 55 ++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/src/server.ts b/src/server.ts index dd38234..f859d62 100644 --- a/src/server.ts +++ b/src/server.ts @@ -14,16 +14,14 @@ await sender.bind(`tcp://127.0.0.1:5557`); const receiver = new Pull(); await receiver.bind(`tcp://127.0.0.1:5558`); - const clients: Record = {}; const generateId = () => nanoid(32); - type Room = { sockets: WebSocket[]; updates: Update[]; doc: Text; -} +}; const rooms: Record = {}; @@ -44,26 +42,25 @@ await fastify.register(cors, { }); fastify.register(websocket); - -fastify.register(async function (fastify: Fastify) { +fastify.register(async function(fastify: Fastify) { fastify.get( "/live/:roomId", { schema: { - params: Type.Object({ - roomId: Type.String(), - }) + params: Type.Object({ + roomId: Type.String(), + }), }, - websocket: true + websocket: true, }, (socket, request) => { const { roomId } = request.params; let room = rooms[roomId]; - if(!room){ + if (!room) { room = { sockets: [], updates: [], - doc: Text.of(['']) + doc: Text.of([""]), }; rooms[roomId] = room; } @@ -100,8 +97,9 @@ fastify.register(async function (fastify: Fastify) { send(socket, requestId, { version: room.updates.length, doc: room.doc.toString() }); } }); - }); -}) + }, + ); +}); /* Route pour créer une room */ fastify.post("/live", { @@ -111,22 +109,21 @@ fastify.post("/live", { }), }, }, (request, reply) => { - const { code } = request.body; - let room, roomId; - do{ - roomId = generateId(); - room = rooms[roomId]; - } while(room); - - room = { - sockets: [], - updates: [], - doc: Text.of([code]) - }; - rooms[roomId] = room; - return roomId; - }, -); + const { code } = request.body; + let room, roomId; + do { + roomId = generateId(); + room = rooms[roomId]; + } while (room); + + room = { + sockets: [], + updates: [], + doc: Text.of([code]), + }; + rooms[roomId] = room; + return roomId; +}); fastify.post("/run", { schema: { -- 2.36.3