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.
@@ -11,7 +11,7 @@ jobs:
11
11
  run-tests:
12
12
  strategy:
13
13
  matrix:
14
- node-version: ['21', '20', '18']
14
+ node-version: ['22', '20', '18']
15
15
  os: [ubuntu-latest, macos-latest, windows-latest]
16
16
 
17
17
  runs-on: ${{ matrix.os }}
@@ -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 {default: getPorts, portNumbers} = await import('get-port');
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;
@@ -0,0 +1,8 @@
1
+ import globals from "globals";
2
+ import pluginJs from "@eslint/js";
3
+
4
+
5
+ export default [
6
+ {languageOptions: { globals: globals.node }},
7
+ pluginJs.configs.recommended,
8
+ ];
@@ -1,5 +1,3 @@
1
- /* eslint-disable no-console */
2
-
3
1
  'use strict';
4
2
  const { Client, Message } = require('node-osc');
5
3
 
@@ -1,5 +1,3 @@
1
- /* eslint-disable no-console */
2
-
3
1
  'use strict';
4
2
  var { Server } = require('node-osc');
5
3
 
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.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.5.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 -j1 test/test-*.mjs",
30
- "test:cjs": "tap -j1 dist/test/test-*.js"
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": "^8.36.0",
50
- "get-port": "^6.1.2",
51
- "rollup": "^4.9.5",
52
- "tap": "^18.4.2"
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: [retainImportExpressionPlugin()],
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
- 'get-port',
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 {default: getPorts, portNumbers} = await import('get-port');
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