| 'use strict'; |
| |
| require('../common'); |
| const { spawnSyncAndExitWithoutError } = require('../common/child_process'); |
| const fixtures = require('../common/fixtures'); |
| |
| const stderr = /ExperimentalWarning: Support for loading ES Module in require/; |
| |
| // Test named exports. |
| { |
| spawnSyncAndExitWithoutError( |
| process.execPath, |
| [ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-module-loaders/module-named-exports.mjs') ], |
| { |
| stderr, |
| } |
| ); |
| } |
| |
| // Test ESM that import ESM. |
| { |
| spawnSyncAndExitWithoutError( |
| process.execPath, |
| [ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/import-esm.mjs') ], |
| { |
| stderr, |
| stdout: 'world', |
| trim: true, |
| } |
| ); |
| } |
| |
| // Test ESM that import CJS. |
| { |
| spawnSyncAndExitWithoutError( |
| process.execPath, |
| [ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/cjs-exports.mjs') ], |
| { |
| stdout: 'ok', |
| stderr, |
| trim: true, |
| } |
| ); |
| } |
| |
| // Test ESM that require() CJS. |
| // Can't use the common/index.mjs here because that checks the globals, and |
| // -r injects a bunch of globals. |
| { |
| spawnSyncAndExitWithoutError( |
| process.execPath, |
| [ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/require-cjs.mjs') ], |
| { |
| stdout: 'world', |
| stderr, |
| trim: true, |
| } |
| ); |
| } |
| |
| // Test "type": "module" and "main" field in package.json. |
| { |
| spawnSyncAndExitWithoutError( |
| process.execPath, |
| [ '--experimental-require-module', '-r', fixtures.path('../fixtures/es-modules/package-type-module') ], |
| { |
| stdout: 'package-type-module', |
| stderr, |
| trim: true, |
| } |
| ); |
| } |