node-osc 9.1.1 → 9.1.3
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/.github/workflows/nodejs.yml +1 -1
- package/dist/test/test-getPort.js +20 -0
- package/dist/test/util.js +18 -4
- package/eslint.config.mjs +8 -0
- package/examples/client.js +0 -2
- package/examples/server.js +0 -2
- package/package.json +9 -8
- package/rollup.config.mjs +2 -22
- package/test/test-getPort.mjs +18 -0
- package/test/util.mjs +19 -5
- package/.eslintrc.yml +0 -18
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tap = require('tap');
|
|
4
|
+
var util = require('./util.js');
|
|
5
|
+
var node_net = require('node:net');
|
|
6
|
+
|
|
7
|
+
tap.test('getPort function returns an available port', async (t) => {
|
|
8
|
+
const port = await util.getPort();
|
|
9
|
+
t.plan(2);
|
|
10
|
+
t.type(port, 'number', 'getPort should return a number');
|
|
11
|
+
|
|
12
|
+
const server = node_net.createServer();
|
|
13
|
+
server.listen(port, () => {
|
|
14
|
+
t.pass('Port is usable');
|
|
15
|
+
});
|
|
16
|
+
server.on('close', () => {
|
|
17
|
+
t.pass('Server closed');
|
|
18
|
+
});
|
|
19
|
+
server.close();
|
|
20
|
+
});
|
package/dist/test/util.js
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var node_net = require('node:net');
|
|
4
|
+
|
|
3
5
|
async function bootstrap(t) {
|
|
4
|
-
const
|
|
5
|
-
const port = await getPorts({
|
|
6
|
-
port: portNumbers(3000, 3500)
|
|
7
|
-
});
|
|
6
|
+
const port = await getPort();
|
|
8
7
|
t.context = {
|
|
9
8
|
port
|
|
10
9
|
};
|
|
11
10
|
}
|
|
12
11
|
|
|
12
|
+
function getPort() {
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
|
+
const server = node_net.createServer();
|
|
15
|
+
server.unref();
|
|
16
|
+
server.on('error', reject);
|
|
17
|
+
server.listen(() => {
|
|
18
|
+
const { port } = server.address();
|
|
19
|
+
server.close(() => {
|
|
20
|
+
resolve(port);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
13
26
|
exports.bootstrap = bootstrap;
|
|
27
|
+
exports.getPort = getPort;
|
package/examples/client.js
CHANGED
package/examples/server.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-osc",
|
|
3
3
|
"description": "pyOSC inspired library for sending and receiving OSC messages",
|
|
4
|
-
"version": "9.1.
|
|
4
|
+
"version": "9.1.3",
|
|
5
5
|
"exports": {
|
|
6
6
|
"require": "./dist/lib/index.js",
|
|
7
7
|
"default": "./lib/index.mjs"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"email": "myles.borins@gmail.com"
|
|
18
18
|
},
|
|
19
19
|
"engines": {
|
|
20
|
-
"node": "^18.17.0 ||
|
|
20
|
+
"node": "^18.17.0 || ^20.5.0 || >=22.0.0"
|
|
21
21
|
},
|
|
22
22
|
"license": "LGPL-3.0-or-later",
|
|
23
23
|
"scripts": {
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"prepublishOnly": "npm run build",
|
|
27
27
|
"lint": "eslint \"lib/**/*.mjs\" test/* examples/* rollup.config.mjs",
|
|
28
28
|
"test": "npm run lint && npm run build && npm run test:esm && npm run test:cjs",
|
|
29
|
-
"test:esm": "tap
|
|
30
|
-
"test:cjs": "tap
|
|
29
|
+
"test:esm": "tap test/test-*.mjs",
|
|
30
|
+
"test:cjs": "tap dist/test/test-*.js"
|
|
31
31
|
},
|
|
32
32
|
"contributors": [
|
|
33
33
|
"Hans Hübner <hans.huebner@gmail.com>",
|
|
@@ -46,9 +46,10 @@
|
|
|
46
46
|
"osc-min": "^1.1.1"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"eslint": "^
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
49
|
+
"@eslint/js": "^9.4.0",
|
|
50
|
+
"eslint": "^9.4.0",
|
|
51
|
+
"globals": "^15.3.0",
|
|
52
|
+
"rollup": "^4.18.0",
|
|
53
|
+
"tap": "^19.0.2"
|
|
53
54
|
}
|
|
54
55
|
}
|
package/rollup.config.mjs
CHANGED
|
@@ -1,26 +1,6 @@
|
|
|
1
1
|
import { readdirSync as readdir, statSync as stat } from 'fs';
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
|
|
4
|
-
// Borrowed from the rollup docs
|
|
5
|
-
// https://github.com/rollup/rollup/blob/d0db53459be43c5cc806cb91f14e82217950ba42/docs/05-plugin-development.md#renderdynamicimport
|
|
6
|
-
function retainImportExpressionPlugin() {
|
|
7
|
-
return {
|
|
8
|
-
name: 'retain-import-expression',
|
|
9
|
-
resolveDynamicImport(specifier) {
|
|
10
|
-
if (specifier === 'get-port') return false;
|
|
11
|
-
return null;
|
|
12
|
-
},
|
|
13
|
-
renderDynamicImport({ targetModuleId }) {
|
|
14
|
-
if (targetModuleId === 'get-port') {
|
|
15
|
-
return {
|
|
16
|
-
left: 'import(',
|
|
17
|
-
right: ')'
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
4
|
function walk(root, result=[]) {
|
|
25
5
|
const rootURL = new URL(root, import.meta.url);
|
|
26
6
|
const paths = readdir(rootURL);
|
|
@@ -67,7 +47,7 @@ function walkTest(config) {
|
|
|
67
47
|
tests.forEach(({input, dir}) => {
|
|
68
48
|
config.push({
|
|
69
49
|
input,
|
|
70
|
-
plugins: [
|
|
50
|
+
plugins: [],
|
|
71
51
|
output: {
|
|
72
52
|
entryFileNames: '[name].js',
|
|
73
53
|
dir,
|
|
@@ -77,7 +57,7 @@ function walkTest(config) {
|
|
|
77
57
|
},
|
|
78
58
|
external: [
|
|
79
59
|
'node:dgram',
|
|
80
|
-
'
|
|
60
|
+
'node:net',
|
|
81
61
|
'node-osc',
|
|
82
62
|
'osc-min',
|
|
83
63
|
'tap',
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { test } from 'tap';
|
|
2
|
+
import { getPort } from './util.mjs';
|
|
3
|
+
import { createServer } from 'node:net';
|
|
4
|
+
|
|
5
|
+
test('getPort function returns an available port', async (t) => {
|
|
6
|
+
const port = await getPort();
|
|
7
|
+
t.plan(2);
|
|
8
|
+
t.type(port, 'number', 'getPort should return a number');
|
|
9
|
+
|
|
10
|
+
const server = createServer();
|
|
11
|
+
server.listen(port, () => {
|
|
12
|
+
t.pass('Port is usable');
|
|
13
|
+
});
|
|
14
|
+
server.on('close', () => {
|
|
15
|
+
t.pass('Server closed');
|
|
16
|
+
});
|
|
17
|
+
server.close();
|
|
18
|
+
});
|
package/test/util.mjs
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
+
import { createServer } from 'node:net';
|
|
2
|
+
|
|
1
3
|
async function bootstrap(t) {
|
|
2
|
-
const
|
|
3
|
-
const port = await getPorts({
|
|
4
|
-
port: portNumbers(3000, 3500)
|
|
5
|
-
});
|
|
4
|
+
const port = await getPort();
|
|
6
5
|
t.context = {
|
|
7
6
|
port
|
|
8
7
|
};
|
|
9
8
|
}
|
|
10
9
|
|
|
10
|
+
function getPort() {
|
|
11
|
+
return new Promise((resolve, reject) => {
|
|
12
|
+
const server = createServer();
|
|
13
|
+
server.unref();
|
|
14
|
+
server.on('error', reject);
|
|
15
|
+
server.listen(() => {
|
|
16
|
+
const { port } = server.address();
|
|
17
|
+
server.close(() => {
|
|
18
|
+
resolve(port);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
11
24
|
export {
|
|
12
|
-
bootstrap
|
|
25
|
+
bootstrap,
|
|
26
|
+
getPort
|
|
13
27
|
};
|
package/.eslintrc.yml
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
env:
|
|
2
|
-
commonjs: true
|
|
3
|
-
es6: true
|
|
4
|
-
node: true
|
|
5
|
-
extends: 'eslint:recommended'
|
|
6
|
-
globals:
|
|
7
|
-
Atomics: readonly
|
|
8
|
-
SharedArrayBuffer: readonly
|
|
9
|
-
parserOptions:
|
|
10
|
-
ecmaVersion: 2020
|
|
11
|
-
sourceType: module
|
|
12
|
-
rules:
|
|
13
|
-
quotes:
|
|
14
|
-
- error
|
|
15
|
-
- single
|
|
16
|
-
semi:
|
|
17
|
-
- error
|
|
18
|
-
- always
|