From b25e728da01978e07f4a6ccd2cc1e2515511a514 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Fri, 26 Apr 2024 07:45:48 +0200 Subject: [PATCH] docs: update TypeScript example --- .github/workflows/ci.yml | 3 ++- .../cjs}/client.ts | 0 .../cjs}/package.json | 9 +++++---- .../cjs}/server.ts | 0 examples/typescript-example/cjs/tsconfig.json | 8 ++++++++ examples/typescript-example/esm/client.ts | 18 +++++++++++++++++ examples/typescript-example/esm/package.json | 20 +++++++++++++++++++ examples/typescript-example/esm/server.ts | 16 +++++++++++++++ examples/typescript-example/esm/tsconfig.json | 8 ++++++++ examples/typescript/tsconfig.json | 9 --------- 10 files changed, 77 insertions(+), 14 deletions(-) rename examples/{typescript => typescript-example/cjs}/client.ts (100%) rename examples/{typescript => typescript-example/cjs}/package.json (70%) rename examples/{typescript => typescript-example/cjs}/server.ts (100%) create mode 100644 examples/typescript-example/cjs/tsconfig.json create mode 100644 examples/typescript-example/esm/client.ts create mode 100644 examples/typescript-example/esm/package.json create mode 100644 examples/typescript-example/esm/server.ts create mode 100644 examples/typescript-example/esm/tsconfig.json delete mode 100644 examples/typescript/tsconfig.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b7106dadda..e8d71f3a6b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,8 @@ jobs: matrix: example: - custom-parsers - - typescript + - typescript-example/cjs + - typescript-example/esm - webpack-build - webpack-build-server - basic-crud-application/angular-client diff --git a/examples/typescript/client.ts b/examples/typescript-example/cjs/client.ts similarity index 100% rename from examples/typescript/client.ts rename to examples/typescript-example/cjs/client.ts diff --git a/examples/typescript/package.json b/examples/typescript-example/cjs/package.json similarity index 70% rename from examples/typescript/package.json rename to examples/typescript-example/cjs/package.json index e9a8a97f49..6289d846aa 100644 --- a/examples/typescript/package.json +++ b/examples/typescript-example/cjs/package.json @@ -2,6 +2,7 @@ "name": "typescript-example", "version": "1.0.0", "description": "An example with TypeScript", + "type": "commonjs", "private": true, "scripts": { "build": "tsc", @@ -11,9 +12,9 @@ "author": "Damien Arrachequesne", "license": "MIT", "dependencies": { - "socket.io": "^4.0.0", - "socket.io-client": "^4.0.0", - "ts-node": "^9.0.0", - "typescript": "^4.0.5" + "socket.io": "^4.7.5", + "socket.io-client": "^4.7.5", + "ts-node": "^10.9.2", + "typescript": "^5.4.5" } } diff --git a/examples/typescript/server.ts b/examples/typescript-example/cjs/server.ts similarity index 100% rename from examples/typescript/server.ts rename to examples/typescript-example/cjs/server.ts diff --git a/examples/typescript-example/cjs/tsconfig.json b/examples/typescript-example/cjs/tsconfig.json new file mode 100644 index 0000000000..e443d545ac --- /dev/null +++ b/examples/typescript-example/cjs/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "outDir": "dist", + "target": "es2022", + "module": "nodenext", + "moduleResolution": "nodenext" + } +} diff --git a/examples/typescript-example/esm/client.ts b/examples/typescript-example/esm/client.ts new file mode 100644 index 0000000000..cfa8a0dab1 --- /dev/null +++ b/examples/typescript-example/esm/client.ts @@ -0,0 +1,18 @@ +import { io } from "socket.io-client"; + +const socket = io("ws://localhost:8080/", {}); + +socket.on("connect", () => { + console.log(`connect ${socket.id}`); +}); + +socket.on("disconnect", () => { + console.log(`disconnect`); +}); + +setInterval(() => { + const start = Date.now(); + socket.emit("ping", () => { + console.log(`pong (latency: ${Date.now() - start} ms)`); + }); +}, 1000); diff --git a/examples/typescript-example/esm/package.json b/examples/typescript-example/esm/package.json new file mode 100644 index 0000000000..70f8f58880 --- /dev/null +++ b/examples/typescript-example/esm/package.json @@ -0,0 +1,20 @@ +{ + "name": "typescript-example", + "version": "1.0.0", + "description": "An example with TypeScript", + "type": "module", + "private": true, + "scripts": { + "build": "tsc", + "start:server": "node --no-warnings=ExperimentalWarning --loader ts-node/esm server.ts", + "start:client": "node --no-warnings=ExperimentalWarning --loader ts-node/esm client.ts" + }, + "author": "Damien Arrachequesne", + "license": "MIT", + "dependencies": { + "socket.io": "^4.7.5", + "socket.io-client": "^4.7.5", + "ts-node": "^10.9.2", + "typescript": "^5.4.5" + } +} diff --git a/examples/typescript-example/esm/server.ts b/examples/typescript-example/esm/server.ts new file mode 100644 index 0000000000..def12496ed --- /dev/null +++ b/examples/typescript-example/esm/server.ts @@ -0,0 +1,16 @@ +import { Server } from "socket.io"; + +const io = new Server(8080); + +io.on("connection", (socket) => { + console.log(`connect ${socket.id}`); + + socket.on("ping", (cb) => { + console.log("ping"); + cb(); + }); + + socket.on("disconnect", () => { + console.log(`disconnect ${socket.id}`); + }); +}); diff --git a/examples/typescript-example/esm/tsconfig.json b/examples/typescript-example/esm/tsconfig.json new file mode 100644 index 0000000000..147c1c518c --- /dev/null +++ b/examples/typescript-example/esm/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "outDir": "dist", + "target": "es2022", + "module": "esnext", + "moduleResolution": "node" + } +} diff --git a/examples/typescript/tsconfig.json b/examples/typescript/tsconfig.json deleted file mode 100644 index 0b0b86eadb..0000000000 --- a/examples/typescript/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es5" - }, - "exclude": [ - "node_modules" - ] -}