Skip to content

Commit 9488c15

Browse files
authored
Phase 1: Rename CJS-only build/generator files to .cjs (#1529)
First phase of the ESM migration. Renames the build- and generator-time modules that must remain CommonJS — they run synchronously under Node (node-gyp, `postinstall`, message generation) — from `.js` to `.cjs`. The explicit `.cjs` extension pins them to CommonJS ahead of introducing `"type": "module"` in Phase 3. ## Renamed to `.cjs` (24 files) - **`scripts/`** — `config`, `cpplint`, `generate_messages`, `generate_tsd`, `install`, `ros_distro`, `run_test`, `tag_prebuilds` - **`rosidl_gen/`** — `action_msgs`, `deallocator`, `filter`, `generate_worker`, `idl_generator`, `index`, `message_translator`, `packages`, `primitive_types` - **`rosidl_gen/templates/`** — `action-template`, `message-template`, `service-event-template`, `service-template` - **`rosidl_parser/`** — `py_utils`, `rosidl_parser` - **`rostsd_gen/`** — `index` ## Reference updates (19 files) - **`package.json`** — `scripts` + `bin` entries point at the `.cjs` paths - **`binding.gyp`** — generator/config paths - **`.npmignore`** / **eslint globs** — include `.cjs` - **Internal requires** — cross-references within the renamed trees - **Worker spawn path** — `generate_worker.cjs` - **Extensionless require fix** — `py_utils` → `./py_utils.cjs` (extensionless `require` does *not* resolve `.cjs`) - **Emitted require paths** — `message-template.cjs` output strings - **External requires** — `index.js`, `lib/interface_loader.js`, `lib/message_introspector.js`, `example/rosidl/*`, and 8 `test/*` files Fix: #1358
1 parent 19b5a41 commit 9488c15

43 files changed

Lines changed: 59 additions & 58 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.npmignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ demo/
3131
.nyc_output/
3232
.vscode/
3333
.husky/
34-
scripts/cpplint.js
34+
scripts/cpplint.cjs
3535
scripts/npm-pack.sh
3636
scripts/npmjs-readme.md
37-
scripts/run_test.js
37+
scripts/run_test.cjs

binding.gyp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
}
99
},
1010
'variables': {
11-
'ros_version': '<!(node scripts/ros_distro.js)',
11+
'ros_version': '<!(node scripts/ros_distro.cjs)',
1212
'runtime%': 'node',
13-
'ros_lib_dir': "<!(node -p \"require('./scripts/config.js').getROSLibPath()\")",
14-
'ros_include_root': "<!(node -p \"require('./scripts/config.js').getROSIncludeRootPath()\")",
13+
'ros_lib_dir': "<!(node -p \"require('./scripts/config.cjs').getROSLibPath()\")",
14+
'ros_include_root': "<!(node -p \"require('./scripts/config.cjs').getROSIncludeRootPath()\")",
1515
},
1616
'targets': [
1717
{
@@ -168,7 +168,7 @@
168168
# After Galactic, e.g., Humble, Jazzy, Rolling.
169169
'ros_version > 2105', {
170170
'include_dirs': [
171-
"<!@(node -p \"require('./scripts/config.js').getIncludePaths().forEach(p => console.log(JSON.stringify(p)))\")"
171+
"<!@(node -p \"require('./scripts/config.cjs').getIncludePaths().forEach(p => console.log(JSON.stringify(p)))\")"
172172
],
173173
'library_dirs': [
174174
'<(ros_lib_dir)',

eslint.config.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ export default [
5757
ecmaVersion: "latest",
5858
sourceType: "commonjs",
5959
},
60-
files: ["lib/**/*.js", "rosidl_parser/**/*.js", "rosidl_gen/**/*.js",
61-
"rostsd_gen/**/*.js", "test/**/*.js", "example/**/*.js", "index.js"],
60+
files: ["lib/**/*.js", "rosidl_parser/**/*.{js,cjs}", "rosidl_gen/**/*.{js,cjs}",
61+
"rostsd_gen/**/*.{js,cjs}", "test/**/*.js", "example/**/*.js", "index.js"],
6262
rules: {
6363
...eslintPluginPrettierRecommended.rules,
6464
},

example/rosidl/rosidl-parse-action-example.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
const rosInstallPath = process.env.AMENT_PREFIX_PATH;
1616
const packageName = 'test_msgs';
1717
const packagePath = rosInstallPath + '/share/test_msgs/action/Fibonacci.action';
18-
const parser = require('../../rosidl_parser/rosidl_parser.js');
18+
const parser = require('../../rosidl_parser/rosidl_parser.cjs');
1919

2020
parser
2121
.parseActionFile(packageName, packagePath)

example/rosidl/rosidl-parse-msg-example.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
'use strict';
1616

17-
const parser = require('../../rosidl_parser/rosidl_parser.js');
17+
const parser = require('../../rosidl_parser/rosidl_parser.cjs');
1818

1919
const rosInstallPath = process.env.AMENT_PREFIX_PATH;
2020
const packageName = 'std_msgs';

example/rosidl/rosidl-parse-srv-example.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
'use strict';
1616

17-
const parser = require('../../rosidl_parser/rosidl_parser.js');
17+
const parser = require('../../rosidl_parser/rosidl_parser.cjs');
1818

1919
const rosInstallPath = process.env.AMENT_PREFIX_PATH;
2020
const packageName = 'std_srvs';

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const Context = require('./lib/context.js');
2525
const debug = require('debug')('rclnodejs');
2626
const Duration = require('./lib/duration.js');
2727
const fs = require('fs');
28-
const generator = require('./rosidl_gen/index.js');
28+
const generator = require('./rosidl_gen/index.cjs');
2929
const loader = require('./lib/interface_loader.js');
3030
const logging = require('./lib/logging.js');
3131
const NodeOptions = require('./lib/node_options.js');
@@ -44,7 +44,7 @@ const {
4444
QoSOverridingOptions,
4545
} = require('./lib/qos_overriding_options.js');
4646
const rclnodejs = require('./lib/native_loader.js');
47-
const tsdGenerator = require('./rostsd_gen/index.js');
47+
const tsdGenerator = require('./rostsd_gen/index.cjs');
4848
const validator = require('./lib/validator.js');
4949
const Time = require('./lib/time.js');
5050
const ActionClient = require('./lib/action/client.js');

lib/interface_loader.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
const path = require('path');
1818
const fs = require('fs');
19-
const generator = require('../rosidl_gen/index.js');
19+
const generator = require('../rosidl_gen/index.cjs');
2020
const { TypeValidationError, ValidationError } = require('./errors.js');
2121

2222
let interfaceLoader = {

lib/message_introspector.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
'use strict';
1616

1717
const loader = require('./interface_loader.js');
18-
const { toPlainObject } = require('../rosidl_gen/message_translator.js');
18+
const { toPlainObject } = require('../rosidl_gen/message_translator.cjs');
1919
const { TypeValidationError } = require('./errors.js');
2020

2121
/**

package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,30 +35,30 @@
3535
"build:dev": "node-gyp -j 16 build --debug",
3636
"rebuild": "npm run clean && node-gyp -j 16 rebuild",
3737
"rebuild:dev": "npm run clean && node-gyp -j 16 rebuild --debug",
38-
"generate-messages": "node scripts/generate_messages.js",
39-
"generate-messages-idl": "node scripts/generate_messages.js --idl",
40-
"generate-messages:dev": "node scripts/generate_messages.js --debug",
41-
"generate-tsd-messages": "node scripts/generate_tsd.js",
38+
"generate-messages": "node scripts/generate_messages.cjs",
39+
"generate-messages-idl": "node scripts/generate_messages.cjs --idl",
40+
"generate-messages:dev": "node scripts/generate_messages.cjs --debug",
41+
"generate-tsd-messages": "node scripts/generate_tsd.cjs",
4242
"clean": "node-gyp clean && npx rimraf ./generated",
43-
"install": "node scripts/install.js",
43+
"install": "node scripts/install.cjs",
4444
"postinstall": "npm run generate-messages",
4545
"docs": "make -C tools/jsdoc",
4646
"docs:gh-pages": "node tools/jsdoc/regenerate-published-docs.js --branch origin/gh-pages --preserve-published",
4747
"docs:gh-pages:full": "node tools/jsdoc/regenerate-published-docs.js --branch origin/gh-pages --full-rebuild",
48-
"test": "nyc node --expose-gc ./scripts/run_test.js && tsd && npm install --no-save electron && node test/electron/run_test.js",
49-
"test-idl": "nyc node --expose-gc ./scripts/run_test.js --idl",
50-
"lint": "eslint && node ./scripts/cpplint.js",
48+
"test": "nyc node --expose-gc ./scripts/run_test.cjs && tsd && npm install --no-save electron && node test/electron/run_test.js",
49+
"test-idl": "nyc node --expose-gc ./scripts/run_test.cjs --idl",
50+
"lint": "eslint && node ./scripts/cpplint.cjs",
5151
"test:asan": "bash scripts/run_asan_test.sh",
52-
"format": "clang-format -i -style=file ./src/*.cpp ./src/*.h && npx --yes prettier --write \"{lib,rosidl_gen,rostsd_gen,rosidl_parser,types,example,test,scripts,benchmark,rostsd_gen}/**/*.{js,md,ts}\" ./*.{js,md,ts}",
52+
"format": "clang-format -i -style=file ./src/*.cpp ./src/*.h && npx --yes prettier --write \"{lib,rosidl_gen,rostsd_gen,rosidl_parser,types,example,test,scripts,benchmark,rostsd_gen}/**/*.{js,cjs,md,ts}\" ./*.{js,md,ts}",
5353
"prepare": "husky",
5454
"coverage": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
5555
"prebuild:node": "prebuildify --napi --strip --name node --target 20.20.2",
5656
"prebuild:electron": "prebuildify --napi --strip --name electron --target electron@34.0.0",
57-
"prebuild": "npm run prebuild:node && npm run prebuild:electron && node scripts/tag_prebuilds.js",
57+
"prebuild": "npm run prebuild:node && npm run prebuild:electron && node scripts/tag_prebuilds.cjs",
5858
"rosocket": "node ./rosocket/cli.js"
5959
},
6060
"bin": {
61-
"generate-ros-messages": "./scripts/generate_messages.js",
61+
"generate-ros-messages": "./scripts/generate_messages.cjs",
6262
"rclnodejs-web": "./bin/rclnodejs-web.js",
6363
"rosocket": "./rosocket/cli.js"
6464
},

0 commit comments

Comments
 (0)