rclnodejs 0.32.3 → 0.32.4

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/README.md CHANGED
@@ -45,7 +45,7 @@ npm i rclnodejs@x.y.z
45
45
 
46
46
  | RCLNODEJS Version | Compatible ROS 2 LTS |
47
47
  | :------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------: |
48
- | latest version (currently [v0.32.3](https://github.com/RobotWebTools/rclnodejs/tree/0.32.3)) | [Humble](https://github.com/RobotWebTools/rclnodejs/tree/humble-hawksbill)<br>[Jazzy](https://github.com/RobotWebTools/rclnodejs/tree/jazzy) |
48
+ | latest version (currently [v0.32.4](https://github.com/RobotWebTools/rclnodejs/tree/0.32.4)) | [Humble](https://github.com/RobotWebTools/rclnodejs/tree/humble-hawksbill)<br>[Jazzy](https://github.com/RobotWebTools/rclnodejs/tree/jazzy) |
49
49
 
50
50
  ## Documentation
51
51
 
@@ -15,7 +15,7 @@
15
15
  'use strict';
16
16
 
17
17
  const ActionInterfaces = require('./interfaces.js');
18
- const { v4: uuidv4 } = require('uuid');
18
+ const { randomUUID } = require('crypto');
19
19
 
20
20
  /**
21
21
  * @class - Represents a unique identifier used by actions.
@@ -37,7 +37,7 @@ class ActionUuid {
37
37
  this._bytes = bytes;
38
38
  } else {
39
39
  // Generate random UUID.
40
- let uuid = uuidv4().replace(/-/g, '');
40
+ let uuid = randomUUID().replace(/-/g, '');
41
41
  this._bytes = Uint8Array.from(Buffer.from(uuid, 'hex'));
42
42
  }
43
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rclnodejs",
3
- "version": "0.32.3",
3
+ "version": "0.32.4",
4
4
  "description": "ROS2.0 JavaScript client with Node.js",
5
5
  "main": "index.js",
6
6
  "types": "types/index.d.ts",
@@ -18,15 +18,15 @@
18
18
  "rebuild": "npm run clean && node-gyp -j 16 rebuild",
19
19
  "rebuild:dev": "npm run clean && node-gyp -j 16 rebuild --debug",
20
20
  "generate-messages": "node scripts/generate_messages.js",
21
- "generate-messages:dev": "node scripts/generate_messages.js --debug",
21
+ "generate-messages:dev": "node scripts/generate_messages.js --debug && npx --yes prettier --ignore-path --write generated/**/*.js",
22
22
  "generate-tsd-messages": "node scripts/generate_tsd.js",
23
- "clean": "node-gyp clean && rimraf ./generated",
23
+ "clean": "node-gyp clean && npx rimraf ./generated",
24
24
  "install": "npm run rebuild",
25
25
  "postinstall": "npm run generate-messages",
26
26
  "docs": "cd docs && make",
27
- "test": "nyc node --expose-gc ./scripts/run_test.js && npx tsd",
27
+ "test": "nyc node --expose-gc ./scripts/run_test.js && tsd",
28
28
  "lint": "eslint && node ./scripts/cpplint.js",
29
- "format": "clang-format -i -style=file ./src/*.cpp ./src/*.hpp && prettier --write \"{lib,rosidl_gen,rostsd_gen,rosidl_parser,types,example,test,scripts,benchmark,rostsd_gen}/**/*.{js,md,ts}\" ./*.{js,md,ts}",
29
+ "format": "clang-format -i -style=file ./src/*.cpp ./src/*.hpp && npx --yes prettier --write \"{lib,rosidl_gen,rostsd_gen,rosidl_parser,types,example,test,scripts,benchmark,rostsd_gen}/**/*.{js,md,ts}\" ./*.{js,md,ts}",
30
30
  "prepare": "husky",
31
31
  "coverage": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
32
32
  },
@@ -62,6 +62,7 @@
62
62
  "lint-staged": "^15.2.10",
63
63
  "mocha": "^11.0.2",
64
64
  "nyc": "^17.1.0",
65
+ "rimraf": "^6.0.1",
65
66
  "sinon": "^19.0.2",
66
67
  "tree-kill": "^1.2.2",
67
68
  "tsd": "^0.31.2",
@@ -79,9 +80,7 @@
79
80
  "is-close": "^1.3.3",
80
81
  "json-bigint": "^1.0.0",
81
82
  "nan": "^2.22.0",
82
- "prettier": "^3.4.2",
83
- "rimraf": "^6.0.1",
84
- "uuid": "^11.0.3",
83
+ "terser": "^5.39.0",
85
84
  "walk": "^2.3.15"
86
85
  },
87
86
  "husky": {
@@ -15,7 +15,7 @@
15
15
  'use strict';
16
16
 
17
17
  const dot = require('dot');
18
- const prettier = require('prettier');
18
+ const { minify } = require('terser');
19
19
  const fse = require('fs-extra');
20
20
  const path = require('path');
21
21
  const parser = require('../rosidl_parser/rosidl_parser.js');
@@ -29,10 +29,6 @@ const dots = dot.process({
29
29
  path: path.join(__dirname, '../rosidl_gen/templates'),
30
30
  });
31
31
 
32
- function removeEmptyLines(str) {
33
- return str.replace(/^\s*\n/gm, '');
34
- }
35
-
36
32
  /**
37
33
  * Output generated code to disk. Do not overwrite
38
34
  * an existing file. If file already exists do nothing.
@@ -41,11 +37,18 @@ function removeEmptyLines(str) {
41
37
  * @param {string} code
42
38
  */
43
39
  async function writeGeneratedCode(dir, fileName, code) {
44
- if (fileName.endsWith('.js')) {
45
- code = await prettier.format(code, { parser: 'babel' });
40
+ let result = null;
41
+ if (!isDebug && fileName.endsWith('.js')) {
42
+ try {
43
+ result = await minify(code);
44
+ } catch (error) {
45
+ console.error(`Error minifying ${fileName}:`, error);
46
+ result = null;
47
+ }
46
48
  }
49
+
47
50
  await fse.mkdirs(dir);
48
- await fse.writeFile(path.join(dir, fileName), code);
51
+ await fse.writeFile(path.join(dir, fileName), result ? result.code : code);
49
52
  }
50
53
 
51
54
  async function generateServiceJSStruct(
@@ -61,9 +64,7 @@ async function generateServiceJSStruct(
61
64
  '__' +
62
65
  serviceInfo.interfaceName +
63
66
  '.js';
64
- const generatedSrvCode = removeEmptyLines(
65
- dots.service({ serviceInfo: serviceInfo })
66
- );
67
+ const generatedSrvCode = dots.service({ serviceInfo: serviceInfo });
67
68
 
68
69
  // We are going to only generate the service JavaScript file if it meets one
69
70
  // of the followings:
@@ -84,9 +85,7 @@ async function generateServiceJSStruct(
84
85
 
85
86
  async function generateServiceEventMsg(serviceInfo, dir) {
86
87
  const fileName = serviceInfo.interfaceName + '.msg';
87
- const generatedEvent = removeEmptyLines(
88
- dots.service_event({ serviceInfo: serviceInfo })
89
- );
88
+ const generatedEvent = dots.service_event({ serviceInfo: serviceInfo });
90
89
 
91
90
  return writeGeneratedCode(dir, fileName, generatedEvent).then(() => {
92
91
  serviceInfo.interfaceName += '_Event';
@@ -119,14 +118,12 @@ async function generateServiceEventJSStruct(msgInfo, dir) {
119
118
  // const AddTwoInts_RequestWrapper = require('../../generated/example_interfaces/example_interfaces__srv__AddTwoInts_Request.js');
120
119
  // const AddTwoInts_ResponseWrapper = require('../../generated/example_interfaces/example_interfaces__srv__AddTwoInts_Response.js');
121
120
  msgInfo.isServiceEvent = true;
122
- const generatedCode = removeEmptyLines(
123
- dots.message({
124
- messageInfo: msgInfo,
125
- spec: spec,
126
- json: JSON.stringify(spec, null, ' '),
127
- isDebug: isDebug,
128
- })
129
- );
121
+ const generatedCode = dots.message({
122
+ messageInfo: msgInfo,
123
+ spec: spec,
124
+ json: JSON.stringify(spec, null, ' '),
125
+ isDebug: isDebug,
126
+ });
130
127
 
131
128
  return writeGeneratedCode(dir, eventFileName, generatedCode);
132
129
  }
@@ -149,14 +146,12 @@ function generateMessageJSStructFromSpec(messageInfo, dir, spec) {
149
146
  spec.msgName +
150
147
  '.js';
151
148
 
152
- const generatedCode = removeEmptyLines(
153
- dots.message({
154
- messageInfo: messageInfo,
155
- spec: spec,
156
- json: JSON.stringify(spec, null, ' '),
157
- isDebug: isDebug,
158
- })
159
- );
149
+ const generatedCode = dots.message({
150
+ messageInfo: messageInfo,
151
+ spec: spec,
152
+ json: JSON.stringify(spec, null, ' '),
153
+ isDebug: isDebug,
154
+ });
160
155
  return writeGeneratedCode(dir, fileName, generatedCode);
161
156
  }
162
157
 
@@ -291,9 +286,7 @@ async function generateActionJSStruct(actionInfo, dir) {
291
286
  '__' +
292
287
  actionInfo.interfaceName +
293
288
  '.js';
294
- const generatedCode = removeEmptyLines(
295
- dots.action({ actionInfo: actionInfo })
296
- );
289
+ const generatedCode = dots.action({ actionInfo: actionInfo });
297
290
  dir = path.join(dir, actionInfo.pkgName);
298
291
  const action = writeGeneratedCode(dir, fileName, generatedCode);
299
292
 
@@ -45,7 +45,7 @@ npm i rclnodejs@x.y.z
45
45
 
46
46
  | RCLNODEJS Version | Compatible ROS 2 LTS |
47
47
  | :------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------: |
48
- | latest version (currently [v0.32.3](https://github.com/RobotWebTools/rclnodejs/tree/0.32.3)) | [Humble](https://github.com/RobotWebTools/rclnodejs/tree/humble-hawksbill)<br>[Jazzy](https://github.com/RobotWebTools/rclnodejs/tree/jazzy) |
48
+ | latest version (currently [v0.32.4](https://github.com/RobotWebTools/rclnodejs/tree/0.32.4)) | [Humble](https://github.com/RobotWebTools/rclnodejs/tree/humble-hawksbill)<br>[Jazzy](https://github.com/RobotWebTools/rclnodejs/tree/jazzy) |
49
49
 
50
50
  ## Documentation
51
51