1- 'use strict' ;
21// Flags: --expose-internals
32
43/**
76 * { url: <url_value>, format: <'module'|'commonjs'|undefined> };
87 */
98
10- const common = require ( '../common' ) ;
11- const tmpdir = require ( '../common/tmpdir' ) ;
12- const fixtures = require ( '../common/fixtures' ) ;
13- const path = require ( 'path' ) ;
14- const fs = require ( 'fs' ) ;
15- const url = require ( 'url' ) ;
9+ import * as common from '../common/index.mjs' ;
10+ import tmpdir from '../common/tmpdir.js' ;
11+ import * as fixtures from '../common/fixtures.mjs' ;
12+ import path from 'path' ;
13+ import fs from 'fs' ;
14+ import url from 'url' ;
15+ import process from 'process' ;
1616
1717if ( ! common . isMainThread ) {
1818 common . skip (
19- 'test-esm-resolve-type.js : process.chdir is not available in Workers'
19+ 'test-esm-resolve-type.mjs : process.chdir is not available in Workers'
2020 ) ;
2121}
2222
23- const assert = require ( 'assert' ) ;
23+ import assert from 'assert' ;
24+ import internalResolve from 'node:internal/modules/esm/resolve' ;
2425const {
2526 defaultResolve : resolve
26- } = require ( 'internal/modules/esm/resolve' ) ;
27+ } = internalResolve ;
2728
2829const rel = ( file ) => path . join ( tmpdir . path , file ) ;
2930const previousCwd = process . cwd ( ) ;
@@ -36,34 +37,29 @@ try {
3637 * ensure that resolving by full path does not return the format
3738 * with the defaultResolver
3839 */
39- [
40+ await Promise . all ( [
4041 [ '/es-modules/package-type-module/index.js' , 'module' ] ,
4142 [ '/es-modules/package-type-commonjs/index.js' , 'commonjs' ] ,
4243 [ '/es-modules/package-without-type/index.js' , 'commonjs' ] ,
4344 [ '/es-modules/package-without-pjson/index.js' , 'commonjs' ] ,
44- ] . forEach ( async ( testVariant ) => {
45- const [ testScript , expectedType ] = testVariant ;
45+ ] . map ( async ( [ testScript , expectedType ] ) => {
4646 const resolvedPath = path . resolve ( fixtures . path ( testScript ) ) ;
4747 const resolveResult = await resolve ( url . pathToFileURL ( resolvedPath ) ) ;
4848 assert . strictEqual ( resolveResult . format , expectedType ) ;
49- } ) ;
49+ } ) ) ;
5050
5151 /**
5252 * create a test module and try to resolve it by module name.
5353 * check the result is as expected
5454 *
5555 * for test-module-ne: everything .js that is not 'module' is 'commonjs'
5656 */
57-
58- [ [ 'test-module-mainjs' , 'js' , 'module' , 'module' ] ,
59- [ 'test-module-mainmjs' , 'mjs' , 'module' , 'module' ] ,
60- [ 'test-module-cjs' , 'js' , 'commonjs' , 'commonjs' ] ,
61- [ 'test-module-ne' , 'js' , undefined , 'commonjs' ] ,
62- ] . forEach ( async ( testVariant ) => {
63- const [ moduleName ,
64- moduleExtenstion ,
65- moduleType ,
66- expectedResolvedType ] = testVariant ;
57+ for ( const [ moduleName , moduleExtenstion , moduleType , expectedResolvedType ] of
58+ [ [ 'test-module-mainjs' , 'js' , 'module' , 'module' ] ,
59+ [ 'test-module-mainmjs' , 'mjs' , 'module' , 'module' ] ,
60+ [ 'test-module-cjs' , 'js' , 'commonjs' , 'commonjs' ] ,
61+ [ 'test-module-ne' , 'js' , undefined , 'commonjs' ] ,
62+ ] ) {
6763 process . chdir ( previousCwd ) ;
6864 tmpdir . refresh ( ) ;
6965 process . chdir ( tmpdir . path ) ;
9389 assert . strictEqual ( resolveResult . format , expectedResolvedType ) ;
9490
9591 fs . rmSync ( nmDir , { recursive : true , force : true } ) ;
96- } ) ;
92+ }
9793
9894 // Helpers
9995 const createDir = ( path ) => {
10298 }
10399 } ;
104100
105- async function testDualPackageWithJsMainScriptAndModuleType ( ) {
101+ {
106102 // Create a dummy dual package
107103 //
108104 /**
@@ -177,11 +173,9 @@ try {
177173 assert . ok ( resolveResult . url . includes ( 'my-dual-package/es/index.js' ) ) ;
178174 }
179175
180- testDualPackageWithJsMainScriptAndModuleType ( ) ;
181-
182176 // TestParameters are ModuleName, mainRequireScript, mainImportScript,
183177 // mainPackageType, subdirPkgJsonType, expectedResolvedFormat, mainSuffix
184- [
178+ await Promise . all ( [
185179 [ 'mjs-mod-mod' , 'index.js' , 'index.mjs' , 'module' , 'module' , 'module' ] ,
186180 [ 'mjs-com-com' , 'idx.js' , 'idx.mjs' , 'commonjs' , 'commonjs' , 'module' ] ,
187181 [ 'mjs-mod-com' , 'index.js' , 'imp.mjs' , 'module' , 'commonjs' , 'module' ] ,
@@ -192,7 +186,7 @@ try {
192186 [ 'hmod' , 'index.js' , 'imp.js' , 'commonjs' , 'module' , 'module' , '#Key' ] ,
193187 [ 'qhmod' , 'index.js' , 'imp.js' , 'commonjs' , 'module' , 'module' , '?k=v#h' ] ,
194188 [ 'ts-mod-com' , 'index.js' , 'imp.ts' , 'module' , 'commonjs' , undefined ] ,
195- ] . forEach ( async ( testVariant ) => {
189+ ] . map ( async ( testVariant ) => {
196190 const [
197191 moduleName ,
198192 mainRequireScript ,
@@ -243,7 +237,7 @@ try {
243237 const resolveResult = await resolve ( `${ moduleName } ` ) ;
244238 assert . strictEqual ( resolveResult . format , expectedResolvedFormat ) ;
245239 assert . ok ( resolveResult . url . endsWith ( `${ moduleName } /subdir/${ mainImportScript } ${ mainSuffix } ` ) ) ;
246- } ) ;
240+ } ) ) ;
247241
248242} finally {
249243 process . chdir ( previousCwd ) ;
0 commit comments