Browse Source

Merge branch 'master' into rc

Jonas Gloning 2 years ago
parent
commit
713d236739

+ 8 - 8
bin/peerjs.ts

@@ -5,11 +5,14 @@ import {version} from "../package.json";
 import fs from "node:fs";
 const optimistUsageLength = 98;
 import yargs from "yargs";
-import { PeerServer } from "../src";
-import { AddressInfo } from "node:net";
-const opts =  yargs
+import { PeerServer} from "../src";
+import type { AddressInfo } from "node:net";
+
+const y = yargs();
+
+const opts =  y
   .usage("Usage: $0")
-  .wrap(Math.min(optimistUsageLength, yargs.terminalWidth()))
+  .wrap(Math.min(optimistUsageLength, y.terminalWidth()))
   .options({
     expire_timeout: {
       demandOption: false,
@@ -82,13 +85,10 @@ process.on("uncaughtException", function (e) {
 
 if (opts.sslkey || opts.sslcert) {
   if (opts.sslkey && opts.sslcert) {
-    opts.ssl = {
+    opts["ssl"] = {
       key: fs.readFileSync(path.resolve(opts.sslkey)),
       cert: fs.readFileSync(path.resolve(opts.sslcert)),
     };
-
-    delete opts.sslkey;
-    delete opts.sslcert;
   } else {
     console.error(
       "Warning: PeerServer will not run because either " +

File diff suppressed because it is too large
+ 309 - 374
package-lock.json


+ 16 - 2
package.json

@@ -18,8 +18,21 @@
   },
   "license": "MIT",
   "contributors": [],
-  "main": "dist/index.js",
-  "module": "dist/module.js",
+  "type": "module",
+  "exports": {
+    ".": {
+      "import": {
+        "types": "./dist/peer.d.ts",
+        "default": "./dist/module.mjs"
+      },
+      "require":{
+        "types": "./dist/peer.d.ts",
+        "default":  "./dist/index.cjs"
+      }
+    }
+  },
+  "main": "dist/index.cjs",
+  "module": "dist/module.mjs",
   "source": "src/index.ts",
   "binary": "dist/bin/peerjs.js",
   "types": "dist/peer.d.ts",
@@ -73,6 +86,7 @@
     "@parcel/transformer-typescript-types": "^2.8.2",
     "@semantic-release/changelog": "^6.0.1",
     "@semantic-release/git": "^10.0.1",
+    "@tsconfig/node16-strictest-esm": "^1.0.3",
     "@types/chai": "^4.2.11",
     "@types/cors": "^2.8.6",
     "@types/mocha": "^10.0.0",

+ 1 - 1
src/api/v1/public/index.ts

@@ -21,7 +21,7 @@ export default ({ config, realm }: {
       return res.send(clientsIds);
     }
 
-    res.sendStatus(401);
+    return res.sendStatus(401);
   });
 
   return app;

+ 2 - 2
src/config/index.ts

@@ -1,4 +1,4 @@
-import type {Server, ServerOptions} from 'ws';
+import type {WebSocketServer, ServerOptions} from 'ws';
 
 export interface IConfig {
   readonly host: string;
@@ -16,7 +16,7 @@ export interface IConfig {
     cert: string;
   };
   readonly generateClientId?: () => string;
-  readonly createWebSocketServer?: (options: ServerOptions) => Server;
+  readonly createWebSocketServer?: (options: ServerOptions) => WebSocketServer;
 }
 
 const defaultConfig: IConfig = {

+ 3 - 3
src/instance.ts

@@ -1,6 +1,6 @@
-import express from "express";
-import {Server as HttpServer} from "node:http";
-import {Server as HttpsServer} from "node:https";
+import type express from "express";
+import type {Server as HttpServer} from "node:http";
+import type {Server as HttpsServer} from "node:https";
 import path from "node:path";
 import type {IRealm} from "./models/realm";
 import {Realm} from "./models/realm";

+ 1 - 1
src/messageHandler/handlersRegistry.ts

@@ -1,4 +1,4 @@
-import {MessageType} from "../enums";
+import type {MessageType} from "../enums";
 import type {IClient} from "../models/client";
 import type {IMessage} from "../models/message";
 import type {Handler} from "./handler";

+ 1 - 1
src/models/message.ts

@@ -4,5 +4,5 @@ export interface IMessage {
     readonly type: MessageType;
     readonly src: string;
     readonly dst: string;
-    readonly payload?: string;
+    readonly payload?: string |undefined;
 }

+ 1 - 1
src/services/messagesExpire/index.ts

@@ -75,7 +75,7 @@ export class MessagesExpire implements IMessagesExpire {
           this.messageHandler.handle(undefined, {
             type: MessageType.EXPIRE,
             src: message.dst,
-            dst: message.src
+            dst: message.src,
           });
 
           seen[seenKey] = true;

+ 7 - 7
src/services/webSocketServer/index.ts

@@ -1,15 +1,15 @@
 import {EventEmitter} from "node:events";
-import {IncomingMessage} from "node:http";
+import type {IncomingMessage} from "node:http";
 import url from "node:url";
 import type WebSocket from "ws";
-import * as WebSocketLib from "ws";
 import {Errors, MessageType} from "../../enums";
 import type {IClient} from "../../models/client";
 import {Client} from "../../models/client";
 import type {IConfig} from "../../config";
 import type {IRealm} from "../../models/realm";
-import {Server as HttpServer} from "node:http";
-import {Server as HttpsServer} from "node:https";
+import {WebSocketServer as Server} from "ws";
+import type {Server as HttpServer} from "node:http";
+import type {Server as HttpsServer} from "node:https";
 
 export interface IWebSocketServer extends EventEmitter {
   readonly path: string;
@@ -30,7 +30,7 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer {
   public readonly path: string;
   private readonly realm: IRealm;
   private readonly config: CustomConfig;
-  public readonly socketServer: WebSocketLib.Server;
+  public readonly socketServer: Server;
 
   constructor({ server, realm, config }: { server: HttpServer | HttpsServer; realm: IRealm; config: CustomConfig; }) {
     super();
@@ -43,7 +43,7 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer {
     const path = this.config.path;
     this.path = `${path}${path.endsWith('/') ? "" : "/"}${WS_PATH}`;
 
-    const options: WebSocketLib.ServerOptions = {
+    const options: WebSocket.ServerOptions = {
       path: this.path,
       server,
     };
@@ -51,7 +51,7 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer {
     this.socketServer = (
         config.createWebSocketServer ?
             config.createWebSocketServer(options) :
-            new WebSocketLib.Server(options)
+            new Server(options)
     );
 
     this.socketServer.on("connection", (socket, req) => this._onSocketConnection(socket, req));

+ 5 - 15
tsconfig.json

@@ -1,28 +1,18 @@
 {
+    "extends": "@tsconfig/node16-strictest-esm/tsconfig.json",
     "compilerOptions": {
         "lib": [
             "esnext"
         ],
-		"noEmit": true,
-        "target": "es2016",
-        "module": "commonjs",
-        "strict": true,
-        "esModuleInterop": true,
-        "downlevelIteration": true,
-        "moduleResolution": "node",
-        "noImplicitAny": true,
-        "noUnusedLocals": true,
-        "noUnusedParameters": true,
+        "noEmit": true,
         "resolveJsonModule": true,
-        "skipLibCheck": false,
-        "sourceMap": true,
-        "outDir": "dist"
+        "exactOptionalPropertyTypes": false
     },
     "include": [
-        "./src/**/*",
+        "./src/**/*"
     ],
     "exclude": [
         "test",
-        "bin",
+        "bin"
     ]
 }

Some files were not shown because too many files changed in this diff