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