Damien Arrachequesne
ec3a784fa6
chore: bump dependencies
2021-08-30 08:21:47 +02:00
Damien Arrachequesne
66e00b7dd7
fix(typings): allow async listener in typed events
...
So that:
```ts
socket.on("my-event", async () => {
// ...
});
```
is valid under the @typescript-eslint/no-misused-promises rule.
Related: https://github.com/socketio/socket.io-client/issues/1486
2021-08-30 08:21:47 +02:00
Michael Vartan
4e1b65699d
feat: add an option to use native timer functions ( #1479 )
...
This allows to control the behavior of mocked timers (@sinonjs/fake-timers),
depending on the value of the "useNativeTimers" option:
- true: use native setTimeout function
- false (default): use classic timers, that may be mocked
Related: 5d1d5bea11
2021-08-29 09:31:25 +02:00
anshul singh
f3acddf997
refactor: remove duplicate initilializations ( #1489 )
...
The attributes were already initialized, resulting in duplicate lines
in the final bundle.
Related: https://github.com/socketio/socket.io/issues/4063
2021-08-28 09:25:36 +02:00
vks-jrobertson
dfb46b55a5
fix: allow to set randomizationFactor to 0 ( #1447 )
...
Documentation: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#nullish-coalescing
Related: https://github.com/socketio/socket.io-client/issues/1231
2021-07-29 09:59:03 +02:00
Damien Arrachequesne
7326bd50df
chore(release): 4.1.3
...
Diff: https://github.com/socketio/socket.io-client/compare/4.1.2...4.1.3
2021-07-10 12:03:09 +02:00
Damien Arrachequesne
cef471bb93
chore: bump dependencies
...
`engine.io-client` diff: https://github.com/socketio/engine.io-client/compare/5.1.1...5.1.2
2021-07-04 00:53:16 +02:00
Damien Arrachequesne
b466c6f0b1
chore(release): 4.1.2
...
Diff: https://github.com/socketio/socket.io-client/compare/4.1.1...4.1.2
2021-05-17 23:08:31 +02:00
javiergonzalezGenially
35d27df2ae
fix(typings): add missing closeOnBeforeunload option ( #1469 )
2021-05-17 22:01:39 +02:00
Poyan Nabati
c8dfbb1c1d
fix(typings): add missing requestTimeout option ( #1467 )
2021-05-17 00:39:29 +02:00
Damien Arrachequesne
7d6a71c91d
chore(release): 4.1.1
...
Diff: https://github.com/socketio/socket.io-client/compare/4.1.0...4.1.1
2021-05-11 23:54:24 +02:00
Damien Arrachequesne
411499ebcf
chore(release): 4.1.0
...
Diff: https://github.com/socketio/socket.io-client/compare/4.0.2...4.1.0
2021-05-11 09:16:28 +02:00
Damien Arrachequesne
70220b5333
chore: bump engine.io-client dependency
...
Diff: https://github.com/socketio/engine.io-client/compare/5.0.1...5.1.0
2021-05-11 09:12:12 +02:00
Damien Arrachequesne
6279065209
chore(release): 4.0.2
...
Diff: https://github.com/socketio/socket.io-client/compare/4.0.1...4.0.2
2021-05-06 14:31:00 +02:00
Damien Arrachequesne
5394669488
fix(typings): add fallback to untyped event listener
...
See also: a11152f42b
Related:
- https://github.com/socketio/socket.io/issues/3885
- https://github.com/socketio/socket.io/issues/3872
- https://github.com/socketio/socket.io/issues/3833
2021-05-06 14:24:48 +02:00
Damien Arrachequesne
e20d487ac0
fix: properly export the Socket class
...
Before this change, `require("socket.io-client").Socket` would return
"undefined".
Note: having access to the Socket class allows users to modify its
prototype.
Related: https://github.com/socketio/socket.io/issues/3726
2021-05-06 14:24:08 +02:00
Damien Arrachequesne
34f822f783
fix: ensure buffered events are sent in order
...
Before this commit, an event sent in the "connect" handler could be
sent before the events that were buffered while disconnected.
```js
socket.on("connect", () => {
socket.emit("bar");
});
socket.emit("foo"); // buffered while disconnected
```
In the example above, the "bar" event was sent first, which is not
correct.
Related: https://github.com/socketio/socket.io-client/issues/1458
2021-05-06 14:23:25 +02:00
Damien Arrachequesne
dd2a8fce00
fix: ensure connections are properly multiplexed
...
When passing the same `options` argument for two distinct Socket
instances, a new Manager was created:
```js
const opts = {};
const socket1 = io("/foo", opts);
const socket2 = io("/bar", opts);
console.log(socket1.io === socket2.io); // false
```
This bug was introduced by [1].
Note: the `options` argument is modified at the `socket.io-client`
level (path, query) and at the `engine.io-client` level (host, port),
which may not be optimal.
[1]: 7a0c2b504f
Related: https://github.com/socketio/socket.io/issues/3898
2021-05-06 14:22:54 +02:00
YuLe
7e81e66b2f
docs: update README links ( #1459 )
2021-04-07 10:01:43 +02:00
Damien Arrachequesne
2edf0f308c
chore(release): 4.0.1
...
Diff: https://github.com/socketio/socket.io-client/compare/4.0.0...4.0.1
2021-04-01 01:07:04 +02:00
Damien Arrachequesne
86f28c3204
chore: bump engine.io-client version
...
Diff: https://github.com/socketio/engine.io-client/compare/5.0.0...5.0.1
2021-04-01 01:02:25 +02:00
divlo
c15022347c
fix(typings): make auth property public ( #1455 )
...
Related: https://github.com/socketio/socket.io-client/issues/1453
2021-04-01 00:32:21 +02:00
alex.zeng
48f573f6f6
fix(typings): update definition to match wrapper.mjs ( #1456 )
2021-04-01 00:31:43 +02:00
Damien Arrachequesne
d28cde7afc
chore(release): 4.0.0
...
The major bump is due to some breaking changes on the server side.
Diff: https://github.com/socketio/socket.io-client/compare/3.1.2...4.0.0
2021-03-10 12:25:27 +01:00
Damien Arrachequesne
43613d1b2c
fix(bundle): restore support for JS modules
...
This change is needed so the bundle can be used with:
```
<script type="module" src="xxxx/socket.io.js"></script>
```
Related:
- https://github.com/socketio/socket.io/discussions/3828
- 13b32b39a4
- 8c08c5d5c3
2021-03-10 12:17:52 +01:00
KC Erb
6abfa1fa4c
feat: add autoUnref option
...
With autoUnref set to true (default: false), the Socket.IO client will
allow the program to exit if there is no other active timer/socket in
the event system.
```js
const socket = io({
autoUnref: true
});
```
Note: this option only applies to Node.js clients.
Related: https://github.com/socketio/socket.io-client/issues/1446
2021-03-10 12:16:12 +01:00
Damien Arrachequesne
59023657a0
feat: add support for typed events
...
Syntax:
```ts
interface ServerToClientEvents {
"my-event": (a: number, b: string, c: number[]) => void;
}
interface ClientToServerEvents {
hello: (message: string) => void;
}
const socket: Socket<ServerToClientEvents, ClientToServerEvents> = io();
socket.emit("hello", "world");
socket.on("my-event", (a, b, c) => {
// ...
});
```
The events are not typed by default (inferred as any), so this change
is backward compatible.
Related: https://github.com/socketio/socket.io/issues/3742
2021-03-10 01:24:56 +01:00
Damien Arrachequesne
78ec5a6e43
chore(release): 3.1.2
...
Diff: https://github.com/socketio/socket.io-client/compare/3.1.1...3.1.2
2021-02-26 01:10:30 +01:00
Damien Arrachequesne
83a65be78a
chore: bump engine.io-client version
...
Diff: https://github.com/socketio/engine.io-client/compare/4.1.0...4.1.2
2021-02-26 01:08:39 +01:00
Damien Arrachequesne
13b32b39a4
fix: restore support for web workers
...
A previous change ([1], included in 3.0.5) broke support for web
workers, which threw "window is not defined" when importing the bundle
in a web worker.
Related: https://github.com/socketio/socket.io/issues/3809
Reference: https://webpack.js.org/configuration/output/#outputglobalobject
[1]: 8c08c5d5c3
2021-02-26 00:43:26 +01:00
Damien Arrachequesne
311c5d14c3
chore(release): 3.1.1
...
Diff: https://github.com/socketio/socket.io-client/compare/3.1.0...3.1.1
2021-02-03 22:36:17 +01:00
Damien Arrachequesne
7a0c2b504f
fix: include the path in the manager ID
...
Previously, the following code:
```js
const socket1 = io({
path: "/test1"
});
const socket2 = io({
path: "/test2"
});
```
would result in one single Manager, with the "/test2" path being
silently ignored.
Two distinct Manager instances will now be created.
Related: https://github.com/socketio/socket.io-client/issues/1225
2021-02-03 22:31:01 +01:00
Damien Arrachequesne
61afc5d8cb
fix: remove polyfill for process in the bundle
...
A polyfill for Node.js "process" was included in the final bundle.
Reference: https://webpack.js.org/configuration/node/
2021-02-02 12:08:26 +01:00
david-fong
47f917afdd
fix(typings): add return types and general-case overload signatures ( #1440 )
2021-02-02 11:29:08 +01:00
Mick Lawitzke
f02ab3bc96
fix(typings): fix the type of the "query" option ( #1439 )
...
Having type `Object` it was not possible to set values, e.g.:
```ts
if (!this.socket.io.opts.query) {
this.socket.io.opts.query = {};
}
this.socket.io.opts.query.token = 'abc123';
```
Results in error:
> Element implicitly has an 'any' type because expression of type '"token"' can't be used to index type 'Object'.
2021-02-02 11:26:33 +01:00
Damien Arrachequesne
be81a2ce6f
chore: point towards the master branch for the CI badge
2021-01-28 14:17:28 +01:00
Damien Arrachequesne
0a63a17f63
refactor: remove unused line
...
In Socket.IO v2, the Socket `query` option was sent when connecting to
a custom namespace (but not for the main namespace).
This was fixed in Socket.IO v3 ([1]), so this line is now useless.
[1]: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/#Add-a-clear-distinction-between-the-Manager-query-option-and-the-Socket-query-option
2021-01-28 12:27:02 +01:00
Damien Arrachequesne
5529f34aaf
chore(release): 3.1.0
...
Diff: https://github.com/socketio/socket.io-client/compare/3.0.5...3.1.0
2021-01-15 02:15:57 +01:00
Damien Arrachequesne
5d9b4eb42b
chore: bump socket.io-parser version
...
Diff: https://github.com/socketio/socket.io-parser/compare/4.0.3...4.0.4
2021-01-15 01:59:56 +01:00
Damien Arrachequesne
13e16b9b79
chore: bump engine.io-client version
...
Diff: https://github.com/socketio/engine.io-client/compare/4.0.6...4.1.0
2021-01-15 01:56:01 +01:00
Mick Lawitzke
fe97243fab
fix(typings): make Manager#opts public ( #1437 )
...
As stated in the [documentation][1], the query option can be set by
setting `socket.io.opts` but `opts` was private and readonly.
[1]: https://socket.io/docs/v3/client-api/#With-query-option
2021-01-11 22:47:28 +01:00
Damien Arrachequesne
4922e397f4
docs: points towards the website
...
The website is now much more stable, so there's no need to keep two
copies of the same content (which must be manually kept in sync).
2021-01-08 15:13:43 +01:00
Damien Arrachequesne
bcdd3bef85
chore(release): 3.0.5
...
Diff: https://github.com/socketio/socket.io-client/compare/3.0.4...3.0.5
2021-01-05 12:02:52 +01:00
Damien Arrachequesne
cf9fc35836
chore: bump debug version
2021-01-05 11:46:06 +01:00
Damien Arrachequesne
53c73749a8
fix: emit a connect_error event upon connection failure
...
Related: https://github.com/socketio/socket.io/issues/3734
2021-01-05 11:42:54 +01:00
Damien Arrachequesne
b83f89c901
fix(typings): make sendBuffer and receiveBuffer public
...
See also: https://socket.io/docs/v3/client-offline-behavior/#Buffered-events
2021-01-05 10:17:58 +01:00
Damien Arrachequesne
8c08c5d5c3
refactor: remove global polyfill from webpack config
...
Fixes https://github.com/socketio/socket.io-client/issues/1407
2021-01-05 10:15:27 +01:00
Damien Arrachequesne
2874d5f972
chore: update GitHub issue templates
2020-12-30 11:45:17 +01:00
david-fong
7bc7a7b624
refactor: switch to native javascript bind ( #1423 )
...
The polyfill for the bind() method was necessary for IE6/7/8, which we
do not support anymore.
Related: https://caniuse.com/mdn-javascript_builtins_function_bind
2020-12-11 11:55:57 +01:00
Damien Arrachequesne
085cd6c56d
chore(release): 3.0.4
...
Diff: https://github.com/socketio/socket.io-client/compare/3.0.3...3.0.4
2020-12-07 11:43:11 +01:00