From 813f7aaec8aeef82221772e8ced7f3996ed6795e Mon Sep 17 00:00:00 2001 From: afrokick Date: Thu, 19 Mar 2020 23:35:59 +0300 Subject: [PATCH] update changelog fix package name in README --- README.md | 38 ++++++++++++++++++++++---------------- changelog.md | 8 ++++++++ package-lock.json | 8 ++++---- src/api/v1/public/index.ts | 2 +- src/config/index.ts | 1 + src/models/realm.ts | 10 +++++----- 6 files changed, 41 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 527b0c8..71f7584 100644 --- a/README.md +++ b/README.md @@ -37,11 +37,11 @@ $> peerjs --port 9000 --key peerjs --path /myapp Or, create a custom server: ```bash -$> npm install peerjs-server +$> npm install peer ``` ```javascript -import {PeerServer} from 'peerjs-server'; +import {PeerServer} from 'peer'; const server = PeerServer({port: 9000, path: '/myapp'}); ``` @@ -60,7 +60,7 @@ const server = PeerServer({port: 9000, path: '/myapp'}); ```javascript import fs from 'fs'; -import {PeerServer} from 'peerjs-server'; +import {PeerServer} from 'peer'; const server = PeerServer({ port: 9000, @@ -79,41 +79,47 @@ The option is passed verbatim to the if it is truthy. ```javascript -import {PeerServer} from 'peerjs-server'; +import {PeerServer} from 'peer'; -const server = PeerServer({port: 9000, path: '/myapp', proxied: true}); +const server = PeerServer({ + port: 9000, + path: + '/myapp', + proxied: true +}); ``` - ### Custom client ID generation +By default, PeerServer uses `uuid/v4` package to generate random client IDs. -You can specify a custom function to use to generate client IDs. +You can set `generateClientId` option in config to specify a custom function to generate client IDs. ```javascript -const genRandomId = () => { - // Original generation algorithm - return (Math.random().toString(36) + '0000000000000000000').substr(2, 16); -} +const customGenerationFunction = () => (Math.random().toString(36) + '0000000000000000000').substr(2, 16); -const server = PeerServer({port: 9000, path: '/myapp', proxied: true, genRandomId: genRandomId }); +const server = PeerServer({ + port: 9000, + path: '/myapp', + generateClientId: customGenerationFunction +}); ``` ### Combining with existing express app ```javascript import express from 'express'; -import {ExpressPeerServer} from 'peerjs-server'; +import {ExpressPeerServer} from 'peer'; const app = express(); -app.get('/', (req, res, next) => { res.send('Hello world!'); }); +app.get('/', (req, res, next) => res.send('Hello world!')); // ======= const server = app.listen(9000); const options = { - debug: true, - path: '/peerjs' + debug: true, + path: '/peerjs' } const peerserver = ExpressPeerServer(server, options); diff --git a/changelog.md b/changelog.md index de9e529..cba69d8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,13 @@ # PeerServer Changelog +### 0.4.0 + +* New: Allow passing in custom client ID generation function - #157 Thanks @ajmar + +### 0.3.2 + +* Fixed: fix main field in package.json + ### 0.3.1 * Fixed: no expire message in some cases diff --git a/package-lock.json b/package-lock.json index 2afc189..84cc9c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "peer", - "version": "0.3.1", + "version": "0.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3754,9 +3754,9 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } diff --git a/src/api/v1/public/index.ts b/src/api/v1/public/index.ts index fc22229..728236d 100644 --- a/src/api/v1/public/index.ts +++ b/src/api/v1/public/index.ts @@ -10,7 +10,7 @@ export default ({ config, realm }: { // Retrieve guaranteed random ID. app.get("/id", (_, res: express.Response) => { res.contentType("html"); - res.send(realm.generateClientId(config.genRandomId)); + res.send(realm.generateClientId(config.generateClientId)); }); // Get a list of all peers for a key, enabled by the `allowDiscovery` flag. diff --git a/src/config/index.ts b/src/config/index.ts index 3683e73..7a1fed4 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -12,6 +12,7 @@ export interface IConfig { key: string; cert: string; }; + readonly generateClientId?: () => string; } const defaultConfig: IConfig = { diff --git a/src/models/realm.ts b/src/models/realm.ts index 2bbf85a..5b73fc2 100644 --- a/src/models/realm.ts +++ b/src/models/realm.ts @@ -20,7 +20,7 @@ export interface IRealm { clearMessageQueue(id: string): void; - generateClientId(genRandomId?: () => string): string; + generateClientId(generateClientId?: () => string): string; } export class Realm implements IRealm { @@ -69,14 +69,14 @@ export class Realm implements IRealm { this.messageQueues.delete(id); } - public generateClientId(genRandomId?: () => string): string { + public generateClientId(generateClientId?: () => string): string { - const _genRandomId = genRandomId ? genRandomId : uuidv4; + const generateId = generateClientId ? generateClientId : uuidv4; - let clientId = _genRandomId(); + let clientId = generateId(); while (this.getClientById(clientId)) { - clientId = _genRandomId(); + clientId = generateId(); } return clientId;