node-osc 11.1.0 → 11.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +11 -0
- package/.github/workflows/bump-version.yml +2 -0
- package/.github/workflows/nodejs.yml +3 -0
- package/LICENSE +201 -165
- package/README.md +135 -42
- package/dist/lib/Bundle.js +66 -0
- package/dist/lib/Client.js +137 -22
- package/dist/lib/Message.js +87 -1
- package/dist/lib/Server.js +117 -6
- package/dist/lib/index.js +3 -0
- package/dist/lib/internal/decode.js +4 -4
- package/{lib/internal/osc.mjs → dist/lib/osc.js} +94 -23
- package/dist/test/lib/osc.js +395 -0
- package/dist/test/test-client.js +152 -0
- package/dist/test/test-e2e.js +9 -3
- package/dist/test/test-encode-decode.js +849 -0
- package/dist/test/test-error-handling.js +116 -0
- package/dist/test/test-osc-internal.js +399 -41
- package/dist/test/test-promises.js +250 -0
- package/dist/test/test-types.js +42 -0
- package/dist/test/util.js +15 -8
- package/docs/API.md +477 -0
- package/docs/GUIDE.md +605 -0
- package/examples/README.md +119 -0
- package/examples/async-await.mjs +57 -0
- package/examples/bundle-example.mjs +92 -0
- package/examples/client.js +22 -5
- package/examples/error-handling.mjs +152 -0
- package/examples/esm.mjs +21 -0
- package/examples/server.js +16 -0
- package/jsdoc.json +16 -0
- package/lib/Bundle.mjs +66 -0
- package/lib/Client.mjs +137 -22
- package/lib/Message.mjs +87 -1
- package/lib/Server.mjs +117 -6
- package/lib/index.mjs +1 -0
- package/lib/internal/decode.mjs +4 -4
- package/{dist/lib/internal/osc.js → lib/osc.mjs} +71 -7
- package/package.json +12 -10
- package/rollup.config.mjs +48 -37
- package/scripts/generate-docs.mjs +229 -0
- package/test/fixtures/types/test-cjs-types.ts +19 -0
- package/test/fixtures/types/test-esm-types.ts +35 -0
- package/test/fixtures/types/tsconfig-cjs.test.json +17 -0
- package/test/fixtures/types/tsconfig-esm.test.json +17 -0
- package/test/test-bundle.mjs +0 -1
- package/test/test-client.mjs +152 -0
- package/test/test-e2e.mjs +9 -3
- package/test/test-encode-decode.mjs +847 -0
- package/test/test-error-handling.mjs +115 -0
- package/test/test-osc-internal.mjs +400 -42
- package/test/test-promises.mjs +249 -0
- package/test/test-types.mjs +39 -0
- package/test/util.mjs +15 -8
- package/tsconfig.json +45 -0
- package/types/Bundle.d.mts +70 -0
- package/types/Bundle.d.mts.map +1 -0
- package/types/Client.d.mts +101 -0
- package/types/Client.d.mts.map +1 -0
- package/types/Message.d.mts +84 -0
- package/types/Message.d.mts.map +1 -0
- package/types/Server.d.mts +98 -0
- package/types/Server.d.mts.map +1 -0
- package/types/index.d.mts +6 -0
- package/types/index.d.mts.map +1 -0
- package/types/internal/decode.d.mts +4 -0
- package/types/internal/decode.d.mts.map +1 -0
- package/types/osc.d.mts +66 -0
- package/types/osc.d.mts.map +1 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { beforeEach, test } from 'tap';
|
|
2
|
+
import { bootstrap } from './util.mjs';
|
|
3
|
+
|
|
4
|
+
import { Server, Client } from 'node-osc';
|
|
5
|
+
|
|
6
|
+
beforeEach(bootstrap);
|
|
7
|
+
|
|
8
|
+
test('server: socket error event is emitted', (t) => {
|
|
9
|
+
t.plan(1);
|
|
10
|
+
const oscServer = new Server(t.context.port, '127.0.0.1');
|
|
11
|
+
|
|
12
|
+
oscServer.on('error', (err) => {
|
|
13
|
+
t.ok(err, 'error event should be emitted');
|
|
14
|
+
oscServer.close();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// Simulate a socket error
|
|
18
|
+
oscServer._sock.emit('error', new Error('test socket error'));
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test('server: error listener can be added before listening', (t) => {
|
|
22
|
+
t.plan(2);
|
|
23
|
+
const oscServer = new Server(t.context.port, '127.0.0.1');
|
|
24
|
+
|
|
25
|
+
oscServer.on('error', (err) => {
|
|
26
|
+
t.ok(err, 'error event should be emitted');
|
|
27
|
+
t.equal(err.message, 'socket test error', 'error message should match');
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
t.teardown(() => {
|
|
31
|
+
oscServer.close();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// Simulate a socket error
|
|
35
|
+
oscServer._sock.emit('error', new Error('socket test error'));
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test('client: socket error event is emitted', (t) => {
|
|
39
|
+
t.plan(1);
|
|
40
|
+
const client = new Client('127.0.0.1', t.context.port);
|
|
41
|
+
|
|
42
|
+
client.on('error', (err) => {
|
|
43
|
+
t.ok(err, 'error event should be emitted');
|
|
44
|
+
client.close();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Simulate a socket error
|
|
48
|
+
client._sock.emit('error', new Error('test client error'));
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
test('client: error listener can be added at construction', (t) => {
|
|
52
|
+
t.plan(2);
|
|
53
|
+
const client = new Client('127.0.0.1', t.context.port);
|
|
54
|
+
|
|
55
|
+
client.on('error', (err) => {
|
|
56
|
+
t.ok(err, 'error event should be emitted');
|
|
57
|
+
t.equal(err.message, 'client socket error', 'error message should match');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
t.teardown(() => {
|
|
61
|
+
client.close();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// Simulate a socket error
|
|
65
|
+
client._sock.emit('error', new Error('client socket error'));
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
test('client: is an EventEmitter instance', (t) => {
|
|
69
|
+
t.plan(1);
|
|
70
|
+
const client = new Client('127.0.0.1', t.context.port);
|
|
71
|
+
|
|
72
|
+
t.ok(typeof client.on === 'function', 'client should have EventEmitter methods');
|
|
73
|
+
|
|
74
|
+
client.close();
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test('server: multiple error listeners can be attached', (t) => {
|
|
78
|
+
t.plan(2);
|
|
79
|
+
const oscServer = new Server(t.context.port, '127.0.0.1');
|
|
80
|
+
|
|
81
|
+
oscServer.on('error', (err) => {
|
|
82
|
+
t.ok(err, 'first listener should receive error');
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
oscServer.on('error', (err) => {
|
|
86
|
+
t.ok(err, 'second listener should receive error');
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
t.teardown(() => {
|
|
90
|
+
oscServer.close();
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Simulate a socket error
|
|
94
|
+
oscServer._sock.emit('error', new Error('multi listener test'));
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test('client: multiple error listeners can be attached', (t) => {
|
|
98
|
+
t.plan(2);
|
|
99
|
+
const client = new Client('127.0.0.1', t.context.port);
|
|
100
|
+
|
|
101
|
+
client.on('error', (err) => {
|
|
102
|
+
t.ok(err, 'first listener should receive error');
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
client.on('error', (err) => {
|
|
106
|
+
t.ok(err, 'second listener should receive error');
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
t.teardown(() => {
|
|
110
|
+
client.close();
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
// Simulate a socket error
|
|
114
|
+
client._sock.emit('error', new Error('multi listener test'));
|
|
115
|
+
});
|