From 8905fe44bffb3d8c19e3ae0de6c9ed5bd6cf7f58 Mon Sep 17 00:00:00 2001 From: Max schwenk Date: Wed, 18 Jun 2025 16:55:27 -0600 Subject: [PATCH 01/10] port IsSourceFileFromExternalLibrary --- internal/compiler/emitHost.go | 6 ++++ internal/compiler/emitter.go | 6 +--- internal/compiler/fileloader.go | 51 ++++++++++++++++++++++----------- internal/compiler/parsetask.go | 19 +++++++++--- internal/compiler/program.go | 33 +++++++++++++++++---- internal/printer/emithost.go | 2 ++ 6 files changed, 86 insertions(+), 31 deletions(-) diff --git a/internal/compiler/emitHost.go b/internal/compiler/emitHost.go index 3fa146826c..d9f5714d35 100644 --- a/internal/compiler/emitHost.go +++ b/internal/compiler/emitHost.go @@ -124,3 +124,9 @@ func (host *emitHost) GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool defer done() return checker.GetEmitResolver(file, skipDiagnostics) } + +func (host *emitHost) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool { + // Use the Program's proper tracking mechanism which mirrors the TypeScript implementation + // This tracks files that were found while searching node_modules during module resolution + return host.program.IsSourceFileFromExternalLibrary(file) +} diff --git a/internal/compiler/emitter.go b/internal/compiler/emitter.go index b8a91a6609..a01185fea7 100644 --- a/internal/compiler/emitter.go +++ b/internal/compiler/emitter.go @@ -2,7 +2,6 @@ package compiler import ( "encoding/base64" - "strings" "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" @@ -305,10 +304,7 @@ func sourceFileMayBeEmitted(sourceFile *ast.SourceFile, host printer.EmitHost, f return false } - // !!! Source file from node_modules are not emitted. In Strada, this depends on module resolution and uses - // `sourceFilesFoundSearchingNodeModules` in `createProgram`. For now, we will just check for `/node_modules/` in - // the file name. - if strings.Contains(sourceFile.FileName(), "/node_modules/") { + if host.IsSourceFileFromExternalLibrary(sourceFile) { return false } diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index d39c5b74e5..a98f331b7d 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -50,6 +50,9 @@ type processedFiles struct { importHelpersImportSpecifiers map[tspath.Path]*ast.Node // List of present unsupported extensions unsupportedExtensions []string + // Track which source files were found while searching node_modules + // Similar to TypeScript's sourceFilesFoundSearchingNodeModules map + sourceFilesFoundSearchingNodeModules map[tspath.Path]bool } type jsxRuntimeImportSpecifier struct { @@ -111,6 +114,7 @@ func processAllProgramFiles( var jsxRuntimeImportSpecifiers map[tspath.Path]*jsxRuntimeImportSpecifier var importHelpersImportSpecifiers map[tspath.Path]*ast.Node var unsupportedExtensions []string + var sourceFilesFoundSearchingNodeModules map[tspath.Path]bool loader.parseTasks.collect(&loader, loader.rootTasks, func(task *parseTask, _ []tspath.Path) { file := task.file @@ -148,22 +152,30 @@ func processAllProgramFiles( if slices.Contains(tspath.SupportedJSExtensionsFlat, extension) { unsupportedExtensions = core.AppendIfUnique(unsupportedExtensions, extension) } + // Track files from external libraries using the proper module resolution flag + if task.isFromExternalLibrary { + if sourceFilesFoundSearchingNodeModules == nil { + sourceFilesFoundSearchingNodeModules = make(map[tspath.Path]bool, totalFileCount) + } + sourceFilesFoundSearchingNodeModules[path] = true + } }) loader.sortLibs(libFiles) allFiles := append(libFiles, files...) return processedFiles{ - resolver: loader.resolver, - files: allFiles, - filesByPath: filesByPath, - projectReferenceFileMapper: loader.projectReferenceFileMapper, - resolvedModules: resolvedModules, - typeResolutionsInFile: typeResolutionsInFile, - sourceFileMetaDatas: sourceFileMetaDatas, - jsxRuntimeImportSpecifiers: jsxRuntimeImportSpecifiers, - importHelpersImportSpecifiers: importHelpersImportSpecifiers, - unsupportedExtensions: unsupportedExtensions, + resolver: loader.resolver, + files: allFiles, + filesByPath: filesByPath, + projectReferenceFileMapper: loader.projectReferenceFileMapper, + resolvedModules: resolvedModules, + typeResolutionsInFile: typeResolutionsInFile, + sourceFileMetaDatas: sourceFileMetaDatas, + jsxRuntimeImportSpecifiers: jsxRuntimeImportSpecifiers, + importHelpersImportSpecifiers: importHelpersImportSpecifiers, + unsupportedExtensions: unsupportedExtensions, + sourceFilesFoundSearchingNodeModules: sourceFilesFoundSearchingNodeModules, } } @@ -301,7 +313,10 @@ func (p *fileLoader) resolveTripleslashPathReference(moduleName string, containi referencedFileName = tspath.CombinePaths(basePath, moduleName) } return resolvedRef{ - fileName: tspath.NormalizePath(referencedFileName), + fileName: tspath.NormalizePath(referencedFileName), + increaseDepth: false, + elideOnDepth: false, + isFromExternalLibrary: false, // Triple-slash references are always local files } } @@ -319,9 +334,10 @@ func (p *fileLoader) resolveTypeReferenceDirectives(file *ast.SourceFile, meta a typeResolutionsInFile[module.ModeAwareCacheKey{Name: ref.FileName, Mode: resolutionMode}] = resolved if resolved.IsResolved() { toParse = append(toParse, resolvedRef{ - fileName: resolved.ResolvedFileName, - increaseDepth: resolved.IsExternalLibraryImport, - elideOnDepth: false, + fileName: resolved.ResolvedFileName, + increaseDepth: resolved.IsExternalLibraryImport, + elideOnDepth: false, + isFromExternalLibrary: resolved.IsExternalLibraryImport, }) } } @@ -412,9 +428,10 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, if shouldAddFile { toParse = append(toParse, resolvedRef{ - fileName: resolvedFileName, - increaseDepth: resolvedModule.IsExternalLibraryImport, - elideOnDepth: isJsFileFromNodeModules, + fileName: resolvedFileName, + increaseDepth: resolvedModule.IsExternalLibraryImport, + elideOnDepth: isJsFileFromNodeModules, + isFromExternalLibrary: isFromNodeModulesSearch, }) } } diff --git a/internal/compiler/parsetask.go b/internal/compiler/parsetask.go index fab536949f..53ff3c8b7d 100644 --- a/internal/compiler/parsetask.go +++ b/internal/compiler/parsetask.go @@ -24,6 +24,10 @@ type parseTask struct { jsxRuntimeImportSpecifier *jsxRuntimeImportSpecifier increaseDepth bool elideOnDepth bool + + // Track if this file is from an external library (node_modules) + // This mirrors the TypeScript currentNodeModulesDepth > 0 check + isFromExternalLibrary bool } func (t *parseTask) FileName() string { @@ -98,14 +102,21 @@ func (t *parseTask) redirect(loader *fileLoader, fileName string) { } type resolvedRef struct { - fileName string - increaseDepth bool - elideOnDepth bool + fileName string + increaseDepth bool + elideOnDepth bool + isFromExternalLibrary bool } func (t *parseTask) addSubTask(ref resolvedRef, isLib bool) { normalizedFilePath := tspath.NormalizePath(ref.fileName) - subTask := &parseTask{normalizedFilePath: normalizedFilePath, isLib: isLib, increaseDepth: ref.increaseDepth, elideOnDepth: ref.elideOnDepth} + subTask := &parseTask{ + normalizedFilePath: normalizedFilePath, + isLib: isLib, + increaseDepth: ref.increaseDepth, + elideOnDepth: ref.elideOnDepth, + isFromExternalLibrary: ref.isFromExternalLibrary || t.isFromExternalLibrary, // Propagate external library status + } t.subTasks = append(t.subTasks, subTask) } diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 8928bba703..6cfb722650 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -52,6 +52,10 @@ type Program struct { commonSourceDirectoryOnce sync.Once declarationDiagnosticCache collections.SyncMap[*ast.SourceFile, []*ast.Diagnostic] + + // Track which source files were found while searching node_modules + // Similar to TypeScript's sourceFilesFoundSearchingNodeModules map + sourceFilesFoundSearchingNodeModules collections.SyncMap[tspath.Path, bool] } // FileExists implements checker.Program. @@ -203,6 +207,14 @@ func NewProgram(opts ProgramOptions) *Program { p.processedFiles = processAllProgramFiles(p.opts, libs, p.singleThreaded()) + // Populate sourceFilesFoundSearchingNodeModules from the processed files + // This mirrors the TypeScript implementation's tracking behavior + if p.processedFiles.sourceFilesFoundSearchingNodeModules != nil { + for path, isExternal := range p.processedFiles.sourceFilesFoundSearchingNodeModules { + p.sourceFilesFoundSearchingNodeModules.Store(path, isExternal) + } + } + return p } @@ -215,11 +227,12 @@ func (p *Program) UpdateProgram(changedFilePath tspath.Path) (*Program, bool) { return NewProgram(p.opts), false } result := &Program{ - opts: p.opts, - nodeModules: p.nodeModules, - comparePathsOptions: p.comparePathsOptions, - processedFiles: p.processedFiles, - usesUriStyleNodeCoreModules: p.usesUriStyleNodeCoreModules, + opts: p.opts, + nodeModules: p.nodeModules, + comparePathsOptions: p.comparePathsOptions, + processedFiles: p.processedFiles, + usesUriStyleNodeCoreModules: p.usesUriStyleNodeCoreModules, + sourceFilesFoundSearchingNodeModules: p.sourceFilesFoundSearchingNodeModules, } result.initCheckerPool() index := core.FindIndex(result.files, func(file *ast.SourceFile) bool { return file.Path() == newFile.Path() }) @@ -820,6 +833,16 @@ func (p *Program) getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, return p.GetDefaultResolutionModeForFile(sourceFile) } +// IsSourceFileFromExternalLibrary returns true if the source file is from an external library. +// This mirrors the TypeScript implementation which tracks files found while searching node_modules. +func (p *Program) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool { + if file == nil { + return false + } + isExternal, exists := p.sourceFilesFoundSearchingNodeModules.Load(file.Path()) + return exists && isExternal +} + type FileIncludeKind int const ( diff --git a/internal/printer/emithost.go b/internal/printer/emithost.go index dc5710171d..a30cc266e9 100644 --- a/internal/printer/emithost.go +++ b/internal/printer/emithost.go @@ -27,4 +27,6 @@ type EmitHost interface { GetEmitModuleFormatOfFile(file ast.HasFileName) core.ModuleKind GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool) EmitResolver GetOutputAndProjectReference(path tspath.Path) *tsoptions.OutputDtsAndProjectReference + + IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool } From ab18897651edc9473e8346a882d33ef1db7452ce Mon Sep 17 00:00:00 2001 From: Max schwenk Date: Wed, 18 Jun 2025 16:57:23 -0600 Subject: [PATCH 02/10] Add note? --- internal/compiler/program.go | 2 -- internal/printer/emithost.go | 1 - internal/project/project.go | 1 + 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 6cfb722650..0e89c66289 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -53,8 +53,6 @@ type Program struct { declarationDiagnosticCache collections.SyncMap[*ast.SourceFile, []*ast.Diagnostic] - // Track which source files were found while searching node_modules - // Similar to TypeScript's sourceFilesFoundSearchingNodeModules map sourceFilesFoundSearchingNodeModules collections.SyncMap[tspath.Path, bool] } diff --git a/internal/printer/emithost.go b/internal/printer/emithost.go index a30cc266e9..05b4073986 100644 --- a/internal/printer/emithost.go +++ b/internal/printer/emithost.go @@ -27,6 +27,5 @@ type EmitHost interface { GetEmitModuleFormatOfFile(file ast.HasFileName) core.ModuleKind GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool) EmitResolver GetOutputAndProjectReference(path tspath.Path) *tsoptions.OutputDtsAndProjectReference - IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool } diff --git a/internal/project/project.go b/internal/project/project.go index 1b5acb0243..649ecb8bf4 100644 --- a/internal/project/project.go +++ b/internal/project/project.go @@ -970,6 +970,7 @@ func (p *Project) GetFileNames(excludeFilesFromExternalLibraries bool, excludeCo result := []string{} sourceFiles := p.program.GetSourceFiles() for _, sourceFile := range sourceFiles { + // !! This is probably ready to be implemented now? // if excludeFilesFromExternalLibraries && p.program.IsSourceFileFromExternalLibrary(sourceFile) { // continue; // } From 6d5eb56874437757ff75fc6f987edf6e917d2d87 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:27:29 -0700 Subject: [PATCH 03/10] Simplify --- internal/compiler/emitHost.go | 2 - internal/compiler/fileloader.go | 10 +---- internal/compiler/program.go | 29 +++----------- .../moduleAugmentationInDependency2.js | 3 ++ .../moduleAugmentationInDependency2.js.diff | 12 ------ ...deModulesExportsSourceTs(module=node16).js | 13 ++++++ ...ulesExportsSourceTs(module=node16).js.diff | 25 +++++------- ...deModulesExportsSourceTs(module=node18).js | 20 ++++++++++ ...ulesExportsSourceTs(module=node18).js.diff | 40 +++++++++++-------- ...ModulesExportsSourceTs(module=nodenext).js | 13 ++++++ ...esExportsSourceTs(module=nodenext).js.diff | 25 +++++------- .../submodule/conformance/typingsLookup4.js | 10 +++++ .../conformance/typingsLookup4.js.diff | 15 ++++++- 13 files changed, 123 insertions(+), 94 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff diff --git a/internal/compiler/emitHost.go b/internal/compiler/emitHost.go index d9f5714d35..a2d450abe7 100644 --- a/internal/compiler/emitHost.go +++ b/internal/compiler/emitHost.go @@ -126,7 +126,5 @@ func (host *emitHost) GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool } func (host *emitHost) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool { - // Use the Program's proper tracking mechanism which mirrors the TypeScript implementation - // This tracks files that were found while searching node_modules during module resolution return host.program.IsSourceFileFromExternalLibrary(file) } diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index a98f331b7d..cda5dedf03 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -49,9 +49,7 @@ type processedFiles struct { jsxRuntimeImportSpecifiers map[tspath.Path]*jsxRuntimeImportSpecifier importHelpersImportSpecifiers map[tspath.Path]*ast.Node // List of present unsupported extensions - unsupportedExtensions []string - // Track which source files were found while searching node_modules - // Similar to TypeScript's sourceFilesFoundSearchingNodeModules map + unsupportedExtensions []string sourceFilesFoundSearchingNodeModules map[tspath.Path]bool } @@ -152,7 +150,6 @@ func processAllProgramFiles( if slices.Contains(tspath.SupportedJSExtensionsFlat, extension) { unsupportedExtensions = core.AppendIfUnique(unsupportedExtensions, extension) } - // Track files from external libraries using the proper module resolution flag if task.isFromExternalLibrary { if sourceFilesFoundSearchingNodeModules == nil { sourceFilesFoundSearchingNodeModules = make(map[tspath.Path]bool, totalFileCount) @@ -313,10 +310,7 @@ func (p *fileLoader) resolveTripleslashPathReference(moduleName string, containi referencedFileName = tspath.CombinePaths(basePath, moduleName) } return resolvedRef{ - fileName: tspath.NormalizePath(referencedFileName), - increaseDepth: false, - elideOnDepth: false, - isFromExternalLibrary: false, // Triple-slash references are always local files + fileName: tspath.NormalizePath(referencedFileName), } } diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 0e89c66289..1d9379a4da 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -52,8 +52,6 @@ type Program struct { commonSourceDirectoryOnce sync.Once declarationDiagnosticCache collections.SyncMap[*ast.SourceFile, []*ast.Diagnostic] - - sourceFilesFoundSearchingNodeModules collections.SyncMap[tspath.Path, bool] } // FileExists implements checker.Program. @@ -205,14 +203,6 @@ func NewProgram(opts ProgramOptions) *Program { p.processedFiles = processAllProgramFiles(p.opts, libs, p.singleThreaded()) - // Populate sourceFilesFoundSearchingNodeModules from the processed files - // This mirrors the TypeScript implementation's tracking behavior - if p.processedFiles.sourceFilesFoundSearchingNodeModules != nil { - for path, isExternal := range p.processedFiles.sourceFilesFoundSearchingNodeModules { - p.sourceFilesFoundSearchingNodeModules.Store(path, isExternal) - } - } - return p } @@ -225,12 +215,11 @@ func (p *Program) UpdateProgram(changedFilePath tspath.Path) (*Program, bool) { return NewProgram(p.opts), false } result := &Program{ - opts: p.opts, - nodeModules: p.nodeModules, - comparePathsOptions: p.comparePathsOptions, - processedFiles: p.processedFiles, - usesUriStyleNodeCoreModules: p.usesUriStyleNodeCoreModules, - sourceFilesFoundSearchingNodeModules: p.sourceFilesFoundSearchingNodeModules, + opts: p.opts, + nodeModules: p.nodeModules, + comparePathsOptions: p.comparePathsOptions, + processedFiles: p.processedFiles, + usesUriStyleNodeCoreModules: p.usesUriStyleNodeCoreModules, } result.initCheckerPool() index := core.FindIndex(result.files, func(file *ast.SourceFile) bool { return file.Path() == newFile.Path() }) @@ -831,14 +820,8 @@ func (p *Program) getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, return p.GetDefaultResolutionModeForFile(sourceFile) } -// IsSourceFileFromExternalLibrary returns true if the source file is from an external library. -// This mirrors the TypeScript implementation which tracks files found while searching node_modules. func (p *Program) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool { - if file == nil { - return false - } - isExternal, exists := p.sourceFilesFoundSearchingNodeModules.Load(file.Path()) - return exists && isExternal + return p.sourceFilesFoundSearchingNodeModules[file.Path()] } type FileIncludeKind int diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js b/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js index 44c280e374..f1d72fd5f1 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js +++ b/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js @@ -8,6 +8,9 @@ export {}; //// [app.ts] import "A" +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //// [app.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff b/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff deleted file mode 100644 index 39990e58e9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleAugmentationInDependency2.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.moduleAugmentationInDependency2.js -+++ new.moduleAugmentationInDependency2.js -@@= skipped -7, +7 lines =@@ - //// [app.ts] - import "A" - --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); - //// [app.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js index 13ace6ff04..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js @@ -27,9 +27,22 @@ export const x: () => Thing = null as any; "exports": "./index.ts" } +//// [other.js] +export const x = null; +//// [index.js] +// esm format file +export { x } from "./other.js"; //// [index.js] export const a = (await import("inner")).x(); +//// [other.d.ts] +// esm format file +export interface Thing { +} +export declare const x: () => Thing; +//// [index.d.ts] +// esm format file +export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff index 03f70d8990..92d3bf86a9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff @@ -1,22 +1,15 @@ --- old.nodeModulesExportsSourceTs(module=node16).js +++ new.nodeModulesExportsSourceTs(module=node16).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } - --//// [other.js] --export const x = null; --//// [index.js] --// esm format file --export { x } from "./other.js"; - //// [index.js] - export const a = (await import("inner")).x(); +@@= skipped -36, +36 lines =@@ --//// [other.d.ts] --export interface Thing { --} --export declare const x: () => Thing; + //// [other.d.ts] ++// esm format file + export interface Thing { + } + export declare const x: () => Thing; //// [index.d.ts] --export { x } from "./other.js"; ++// esm format file + export { x } from "./other.js"; ++//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js index 93cdfaead0..b0fd44dec1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js @@ -27,6 +27,18 @@ export const x: () => Thing = null as any; "exports": "./index.ts" } +//// [other.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +exports.x = null; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +// esm format file +const other_js_1 = require("./other.js"); +Object.defineProperty(exports, "x", { enumerable: true, get: function () { return other_js_1.x; } }); //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -34,5 +46,13 @@ exports.a = void 0; exports.a = (await import("inner")).x(); +//// [other.d.ts] +// esm format file +export interface Thing { +} +export declare const x: () => Thing; +//// [index.d.ts] +// esm format file +export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff index 0e3d4a6ccf..e10d35ccab 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff @@ -1,29 +1,37 @@ --- old.nodeModulesExportsSourceTs(module=node18).js +++ new.nodeModulesExportsSourceTs(module=node18).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" +@@= skipped -27, +27 lines =@@ } --//// [other.js] + //// [other.js] -export const x = null; --//// [index.js] --// esm format file ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; ++exports.x = null; + //// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.x = void 0; + // esm format file -export { x } from "./other.js"; --//// [index.js] ++const other_js_1 = require("./other.js"); ++Object.defineProperty(exports, "x", { enumerable: true, get: function () { return other_js_1.x; } }); + //// [index.js] -export const a = (await import("inner")).x(); -- -- --//// [other.d.ts] --export interface Thing { --} --export declare const x: () => Thing; -+//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = (await import("inner")).x(); -+ -+ + + + //// [other.d.ts] ++// esm format file + export interface Thing { + } + export declare const x: () => Thing; //// [index.d.ts] --export { x } from "./other.js"; ++// esm format file + export { x } from "./other.js"; ++//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js index 13ace6ff04..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js @@ -27,9 +27,22 @@ export const x: () => Thing = null as any; "exports": "./index.ts" } +//// [other.js] +export const x = null; +//// [index.js] +// esm format file +export { x } from "./other.js"; //// [index.js] export const a = (await import("inner")).x(); +//// [other.d.ts] +// esm format file +export interface Thing { +} +export declare const x: () => Thing; +//// [index.d.ts] +// esm format file +export { x } from "./other.js"; //// [index.d.ts] export declare const a: any; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff index cf67565186..b5a19f47ad 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff @@ -1,22 +1,15 @@ --- old.nodeModulesExportsSourceTs(module=nodenext).js +++ new.nodeModulesExportsSourceTs(module=nodenext).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } - --//// [other.js] --export const x = null; --//// [index.js] --// esm format file --export { x } from "./other.js"; - //// [index.js] - export const a = (await import("inner")).x(); +@@= skipped -36, +36 lines =@@ --//// [other.d.ts] --export interface Thing { --} --export declare const x: () => Thing; + //// [other.d.ts] ++// esm format file + export interface Thing { + } + export declare const x: () => Thing; //// [index.d.ts] --export { x } from "./other.js"; ++// esm format file + export { x } from "./other.js"; ++//// [index.d.ts] +export declare const a: any; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js index 53a34b5298..4f553190fd 100644 --- a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js +++ b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js @@ -32,6 +32,16 @@ import { m } from "mquery"; j + k + l + m; +//// [lquery.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.l = void 0; +exports.l = 2; +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.m = void 0; +exports.m = 3; //// [a.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff index d312f409cf..55a4ea5927 100644 --- a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff +++ b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff @@ -1,6 +1,19 @@ --- old.typingsLookup4.js +++ new.typingsLookup4.js -@@= skipped -34, +34 lines =@@ +@@= skipped -31, +31 lines =@@ + j + k + l + m; + + ++//// [lquery.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.l = void 0; ++exports.l = 2; ++//// [index.js] ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.m = void 0; ++exports.m = 3; //// [a.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); From fbef2be671192aca9645581e8b28c2a6c48125e3 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:31:53 -0700 Subject: [PATCH 04/10] Use Set --- internal/compiler/fileloader.go | 9 +++------ internal/compiler/program.go | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index cda5dedf03..fa48922f34 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -50,7 +50,7 @@ type processedFiles struct { importHelpersImportSpecifiers map[tspath.Path]*ast.Node // List of present unsupported extensions unsupportedExtensions []string - sourceFilesFoundSearchingNodeModules map[tspath.Path]bool + sourceFilesFoundSearchingNodeModules collections.Set[tspath.Path] } type jsxRuntimeImportSpecifier struct { @@ -112,7 +112,7 @@ func processAllProgramFiles( var jsxRuntimeImportSpecifiers map[tspath.Path]*jsxRuntimeImportSpecifier var importHelpersImportSpecifiers map[tspath.Path]*ast.Node var unsupportedExtensions []string - var sourceFilesFoundSearchingNodeModules map[tspath.Path]bool + var sourceFilesFoundSearchingNodeModules collections.Set[tspath.Path] loader.parseTasks.collect(&loader, loader.rootTasks, func(task *parseTask, _ []tspath.Path) { file := task.file @@ -151,10 +151,7 @@ func processAllProgramFiles( unsupportedExtensions = core.AppendIfUnique(unsupportedExtensions, extension) } if task.isFromExternalLibrary { - if sourceFilesFoundSearchingNodeModules == nil { - sourceFilesFoundSearchingNodeModules = make(map[tspath.Path]bool, totalFileCount) - } - sourceFilesFoundSearchingNodeModules[path] = true + sourceFilesFoundSearchingNodeModules.Add(path) } }) loader.sortLibs(libFiles) diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 1d9379a4da..8e860e4e2e 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -821,7 +821,7 @@ func (p *Program) getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, } func (p *Program) IsSourceFileFromExternalLibrary(file *ast.SourceFile) bool { - return p.sourceFilesFoundSearchingNodeModules[file.Path()] + return p.sourceFilesFoundSearchingNodeModules.Has(file.Path()) } type FileIncludeKind int From a0358c2d456d97adec2e2d1e6515a6abe61761fc Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:08:37 -0700 Subject: [PATCH 05/10] Majorly simplify task adding --- internal/compiler/fileloader.go | 68 ++++++++++++++++----------------- internal/compiler/parsetask.go | 16 +------- 2 files changed, 35 insertions(+), 49 deletions(-) diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index fa48922f34..961f595846 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -311,39 +311,38 @@ func (p *fileLoader) resolveTripleslashPathReference(moduleName string, containi } } -func (p *fileLoader) resolveTypeReferenceDirectives(file *ast.SourceFile, meta ast.SourceFileMetaData) ( - toParse []resolvedRef, - typeResolutionsInFile module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], -) { - if len(file.TypeReferenceDirectives) != 0 { - toParse = make([]resolvedRef, 0, len(file.TypeReferenceDirectives)) - typeResolutionsInFile = make(module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], len(file.TypeReferenceDirectives)) - for _, ref := range file.TypeReferenceDirectives { - redirect := p.projectReferenceFileMapper.getRedirectForResolution(file) - resolutionMode := getModeForTypeReferenceDirectiveInFile(ref, file, meta, module.GetCompilerOptionsWithRedirect(p.opts.Config.CompilerOptions(), redirect)) - resolved := p.resolver.ResolveTypeReferenceDirective(ref.FileName, file.FileName(), resolutionMode, redirect) - typeResolutionsInFile[module.ModeAwareCacheKey{Name: ref.FileName, Mode: resolutionMode}] = resolved - if resolved.IsResolved() { - toParse = append(toParse, resolvedRef{ - fileName: resolved.ResolvedFileName, - increaseDepth: resolved.IsExternalLibraryImport, - elideOnDepth: false, - isFromExternalLibrary: resolved.IsExternalLibraryImport, - }) - } +func (p *fileLoader) resolveTypeReferenceDirectives(t *parseTask) { + file := t.file + if len(file.TypeReferenceDirectives) == 0 { + return + } + meta := t.metadata + + typeResolutionsInFile := make(module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], len(file.TypeReferenceDirectives)) + for _, ref := range file.TypeReferenceDirectives { + redirect := p.projectReferenceFileMapper.getRedirectForResolution(file) + resolutionMode := getModeForTypeReferenceDirectiveInFile(ref, file, meta, module.GetCompilerOptionsWithRedirect(p.opts.Config.CompilerOptions(), redirect)) + resolved := p.resolver.ResolveTypeReferenceDirective(ref.FileName, file.FileName(), resolutionMode, redirect) + typeResolutionsInFile[module.ModeAwareCacheKey{Name: ref.FileName, Mode: resolutionMode}] = resolved + if resolved.IsResolved() { + t.addSubTask(resolvedRef{ + fileName: resolved.ResolvedFileName, + increaseDepth: resolved.IsExternalLibraryImport, + elideOnDepth: false, + isFromExternalLibrary: resolved.IsExternalLibraryImport, + }, false) } } - return toParse, typeResolutionsInFile + + t.typeResolutionsInFile = typeResolutionsInFile } const externalHelpersModuleNameText = "tslib" // TODO(jakebailey): dedupe -func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, meta ast.SourceFileMetaData) ( - toParse []resolvedRef, - resolutionsInFile module.ModeAwareCache[*module.ResolvedModule], - importHelpersImportSpecifier *ast.Node, - jsxRuntimeImportSpecifier_ *jsxRuntimeImportSpecifier, -) { +func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { + file := t.file + meta := t.metadata + moduleNames := make([]*ast.Node, 0, len(file.Imports())+len(file.ModuleAugmentations)+2) isJavaScriptFile := ast.IsSourceFileJS(file) @@ -355,14 +354,14 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, if optionsForFile.ImportHelpers.IsTrue() { specifier := p.createSyntheticImport(externalHelpersModuleNameText, file) moduleNames = append(moduleNames, specifier) - importHelpersImportSpecifier = specifier + t.importHelpersImportSpecifier = specifier } jsxImport := ast.GetJSXRuntimeImport(ast.GetJSXImplicitImportBase(optionsForFile, file), optionsForFile) if jsxImport != "" { specifier := p.createSyntheticImport(jsxImport, file) moduleNames = append(moduleNames, specifier) - jsxRuntimeImportSpecifier_ = &jsxRuntimeImportSpecifier{ + t.jsxRuntimeImportSpecifier = &jsxRuntimeImportSpecifier{ moduleReference: jsxImport, specifier: specifier, } @@ -380,8 +379,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, } if len(moduleNames) != 0 { - toParse = make([]resolvedRef, 0, len(moduleNames)) - resolutionsInFile = make(module.ModeAwareCache[*module.ResolvedModule], len(moduleNames)) + resolutionsInFile := make(module.ModeAwareCache[*module.ResolvedModule], len(moduleNames)) for index, entry := range moduleNames { moduleName := entry.Text() @@ -418,17 +416,17 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, (importIndex < 0 || (importIndex < len(file.Imports()) && (ast.IsInJSFile(file.Imports()[importIndex]) || file.Imports()[importIndex].Flags&ast.NodeFlagsJSDoc == 0))) if shouldAddFile { - toParse = append(toParse, resolvedRef{ + t.addSubTask(resolvedRef{ fileName: resolvedFileName, increaseDepth: resolvedModule.IsExternalLibraryImport, elideOnDepth: isJsFileFromNodeModules, isFromExternalLibrary: isFromNodeModulesSearch, - }) + }, false) } } - } - return toParse, resolutionsInFile, importHelpersImportSpecifier, jsxRuntimeImportSpecifier_ + t.resolutionsInFile = resolutionsInFile + } } // Returns a DiagnosticMessage if we won't include a resolved module due to its extension. diff --git a/internal/compiler/parsetask.go b/internal/compiler/parsetask.go index 53ff3c8b7d..69cb6943e2 100644 --- a/internal/compiler/parsetask.go +++ b/internal/compiler/parsetask.go @@ -60,7 +60,6 @@ func (t *parseTask) load(loader *fileLoader) { } t.file = file - t.subTasks = make([]*parseTask, 0, len(file.ReferencedFiles)+len(file.Imports())+len(file.ModuleAugmentations)) for _, ref := range file.ReferencedFiles { @@ -69,11 +68,7 @@ func (t *parseTask) load(loader *fileLoader) { } compilerOptions := loader.opts.Config.CompilerOptions() - toParseTypeRefs, typeResolutionsInFile := loader.resolveTypeReferenceDirectives(file, t.metadata) - t.typeResolutionsInFile = typeResolutionsInFile - for _, typeResolution := range toParseTypeRefs { - t.addSubTask(typeResolution, false) - } + loader.resolveTypeReferenceDirectives(t) if compilerOptions.NoLib != core.TSTrue { for _, lib := range file.LibReferenceDirectives { @@ -85,14 +80,7 @@ func (t *parseTask) load(loader *fileLoader) { } } - toParse, resolutionsInFile, importHelpersImportSpecifier, jsxRuntimeImportSpecifier := loader.resolveImportsAndModuleAugmentations(file, t.metadata) - for _, imp := range toParse { - t.addSubTask(imp, false) - } - - t.resolutionsInFile = resolutionsInFile - t.importHelpersImportSpecifier = importHelpersImportSpecifier - t.jsxRuntimeImportSpecifier = jsxRuntimeImportSpecifier + loader.resolveImportsAndModuleAugmentations(t) } func (t *parseTask) redirect(loader *fileLoader, fileName string) { From 3d73d54590b152e8606bb9c6572006a2693ddd1b Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 15:18:21 -0700 Subject: [PATCH 06/10] Boy was that annoying --- internal/compiler/fileloader.go | 6 +-- internal/compiler/fileloadertask.go | 46 +++++++++++++------ internal/compiler/parsetask.go | 27 ++++++++--- .../compiler/projectreferenceparsetask.go | 10 ++++ .../submodule/conformance/typingsLookup4.js | 10 ---- .../conformance/typingsLookup4.js.diff | 15 +----- 6 files changed, 65 insertions(+), 49 deletions(-) diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index 961f595846..04313d4028 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -150,7 +150,7 @@ func processAllProgramFiles( if slices.Contains(tspath.SupportedJSExtensionsFlat, extension) { unsupportedExtensions = core.AppendIfUnique(unsupportedExtensions, extension) } - if task.isFromExternalLibrary { + if task.fromExternalLibrary { sourceFilesFoundSearchingNodeModules.Add(path) } }) @@ -181,7 +181,7 @@ func (p *fileLoader) addRootTasks(files []string, isLib bool) { for _, fileName := range files { absPath := tspath.GetNormalizedAbsolutePath(fileName, p.opts.Host.GetCurrentDirectory()) if core.Tristate.IsTrue(p.opts.Config.CompilerOptions().AllowNonTsExtensions) || slices.Contains(p.supportedExtensions, tspath.TryGetExtensionFromPath(absPath)) { - p.rootTasks = append(p.rootTasks, &parseTask{normalizedFilePath: absPath, isLib: isLib}) + p.rootTasks = append(p.rootTasks, &parseTask{normalizedFilePath: absPath, isLib: isLib, root: true}) } } } @@ -420,7 +420,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { fileName: resolvedFileName, increaseDepth: resolvedModule.IsExternalLibraryImport, elideOnDepth: isJsFileFromNodeModules, - isFromExternalLibrary: isFromNodeModulesSearch, + isFromExternalLibrary: resolvedModule.IsExternalLibraryImport, }, false) } } diff --git a/internal/compiler/fileloadertask.go b/internal/compiler/fileloadertask.go index 8dbf9ce76f..898dd785b3 100644 --- a/internal/compiler/fileloadertask.go +++ b/internal/compiler/fileloadertask.go @@ -17,6 +17,9 @@ type fileLoaderWorkerTask[T any] interface { getSubTasks() []T shouldIncreaseDepth() bool shouldElideOnDepth() bool + isRoot() bool + isFromExternalLibrary() bool + markFromExternalLibrary() } type fileLoaderWorker[K fileLoaderWorkerTask[K]] struct { @@ -32,12 +35,13 @@ type queuedTask[K fileLoaderWorkerTask[K]] struct { } func (w *fileLoaderWorker[K]) runAndWait(loader *fileLoader, tasks []K) { - w.start(loader, tasks, 0) + w.start(loader, tasks, 0, false) w.wg.RunAndWait() } -func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K, depth int) { +func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K, depth int, isFromExternalLibrary bool) { for i, task := range tasks { + taskIsFromExternalLibrary := isFromExternalLibrary || task.isFromExternalLibrary() newTask := &queuedTask[K]{task: task, lowestDepth: math.MaxInt} loadedTask, loaded := w.tasksByFileName.LoadOrStore(task.FileName(), newTask) task = loadedTask.task @@ -45,29 +49,41 @@ func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K, depth int) { tasks[i] = task } - currentDepth := depth - if task.shouldIncreaseDepth() { - currentDepth++ - } - - if task.shouldElideOnDepth() && currentDepth > w.maxDepth { - continue - } - w.wg.Queue(func() { loadedTask.mu.Lock() defer loadedTask.mu.Unlock() - if !task.isLoaded() { - task.load(loader) + currentDepth := depth + if task.shouldIncreaseDepth() { + currentDepth++ } + startSubtasks := false + if currentDepth < loadedTask.lowestDepth { // If we're seeing this task at a lower depth than before, // reprocess its subtasks to ensure they are loaded. loadedTask.lowestDepth = currentDepth - subTasks := task.getSubTasks() - w.start(loader, subTasks, currentDepth) + startSubtasks = true + } + + if !task.isRoot() && taskIsFromExternalLibrary && !task.isFromExternalLibrary() { + // If we're seeing this task now as an external library, + // reprocess its subtasks to ensure they are also marked as external. + task.markFromExternalLibrary() + startSubtasks = true + } + + if task.shouldElideOnDepth() && currentDepth > w.maxDepth { + return + } + + if !task.isLoaded() { + task.load(loader) + } + + if startSubtasks { + w.start(loader, task.getSubTasks(), loadedTask.lowestDepth, task.isFromExternalLibrary()) } }) } diff --git a/internal/compiler/parsetask.go b/internal/compiler/parsetask.go index 69cb6943e2..b611e0064b 100644 --- a/internal/compiler/parsetask.go +++ b/internal/compiler/parsetask.go @@ -16,6 +16,7 @@ type parseTask struct { isRedirected bool subTasks []*parseTask loaded bool + root bool metadata ast.SourceFileMetaData resolutionsInFile module.ModeAwareCache[*module.ResolvedModule] @@ -27,7 +28,7 @@ type parseTask struct { // Track if this file is from an external library (node_modules) // This mirrors the TypeScript currentNodeModulesDepth > 0 check - isFromExternalLibrary bool + fromExternalLibrary bool } func (t *parseTask) FileName() string { @@ -86,7 +87,7 @@ func (t *parseTask) load(loader *fileLoader) { func (t *parseTask) redirect(loader *fileLoader, fileName string) { t.isRedirected = true // increaseDepth and elideOnDepth are not copied to redirects, otherwise their depth would be double counted. - t.subTasks = []*parseTask{{normalizedFilePath: tspath.NormalizePath(fileName), isLib: t.isLib}} + t.subTasks = []*parseTask{{normalizedFilePath: tspath.NormalizePath(fileName), isLib: t.isLib, fromExternalLibrary: t.fromExternalLibrary}} } type resolvedRef struct { @@ -99,11 +100,11 @@ type resolvedRef struct { func (t *parseTask) addSubTask(ref resolvedRef, isLib bool) { normalizedFilePath := tspath.NormalizePath(ref.fileName) subTask := &parseTask{ - normalizedFilePath: normalizedFilePath, - isLib: isLib, - increaseDepth: ref.increaseDepth, - elideOnDepth: ref.elideOnDepth, - isFromExternalLibrary: ref.isFromExternalLibrary || t.isFromExternalLibrary, // Propagate external library status + normalizedFilePath: normalizedFilePath, + isLib: isLib, + increaseDepth: ref.increaseDepth, + elideOnDepth: ref.elideOnDepth, + fromExternalLibrary: ref.isFromExternalLibrary, } t.subTasks = append(t.subTasks, subTask) } @@ -123,3 +124,15 @@ func (t *parseTask) shouldElideOnDepth() bool { func (t *parseTask) isLoaded() bool { return t.loaded } + +func (t *parseTask) isRoot() bool { + return t.root +} + +func (t *parseTask) isFromExternalLibrary() bool { + return t.fromExternalLibrary +} + +func (t *parseTask) markFromExternalLibrary() { + t.fromExternalLibrary = true +} diff --git a/internal/compiler/projectreferenceparsetask.go b/internal/compiler/projectreferenceparsetask.go index 647a3f6273..8428a078ec 100644 --- a/internal/compiler/projectreferenceparsetask.go +++ b/internal/compiler/projectreferenceparsetask.go @@ -51,6 +51,16 @@ func (t *projectReferenceParseTask) isLoaded() bool { return t.loaded } +func (t *projectReferenceParseTask) isRoot() bool { + return true +} + +func (t *projectReferenceParseTask) isFromExternalLibrary() bool { + return false +} + +func (t *projectReferenceParseTask) markFromExternalLibrary() {} + func createProjectReferenceParseTasks(projectReferences []string) []*projectReferenceParseTask { return core.Map(projectReferences, func(configName string) *projectReferenceParseTask { return &projectReferenceParseTask{ diff --git a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js index 4f553190fd..53a34b5298 100644 --- a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js +++ b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js @@ -32,16 +32,6 @@ import { m } from "mquery"; j + k + l + m; -//// [lquery.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.l = void 0; -exports.l = 2; -//// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.m = void 0; -exports.m = 3; //// [a.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff index 55a4ea5927..d312f409cf 100644 --- a/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff +++ b/testdata/baselines/reference/submodule/conformance/typingsLookup4.js.diff @@ -1,19 +1,6 @@ --- old.typingsLookup4.js +++ new.typingsLookup4.js -@@= skipped -31, +31 lines =@@ - j + k + l + m; - - -+//// [lquery.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.l = void 0; -+exports.l = 2; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.m = void 0; -+exports.m = 3; +@@= skipped -34, +34 lines =@@ //// [a.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); From a29364e01bcb2e30db0d36b436854e559426c866 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:12:23 -0700 Subject: [PATCH 07/10] fmt --- internal/compiler/parsetask.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/compiler/parsetask.go b/internal/compiler/parsetask.go index e9abe17f75..75b2e63825 100644 --- a/internal/compiler/parsetask.go +++ b/internal/compiler/parsetask.go @@ -17,7 +17,7 @@ type parseTask struct { subTasks []*parseTask loaded bool isForAutomaticTypeDirective bool - root bool + root bool metadata ast.SourceFileMetaData resolutionsInFile module.ModeAwareCache[*module.ResolvedModule] @@ -102,7 +102,6 @@ func (t *parseTask) loadAutomaticTypeDirectives(loader *fileLoader) { } } - type resolvedRef struct { fileName string increaseDepth bool From eee61dce41c1fa95c7e889ab4d63b8c3932d596b Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:31:26 -0700 Subject: [PATCH 08/10] Fix node18 while here --- internal/transformers/transformer.go | 1 + ...moduleNodeDefaultImports(module=node18).js | 41 ++- ...eNodeDefaultImports(module=node18).js.diff | 54 ---- ...arationFileForTsJsImport(module=node18).js | 3 +- ...onFileForTsJsImport(module=node18).js.diff | 9 - ...rbitraryextensions=false,module=node18).js | 6 +- ...aryextensions=false,module=node18).js.diff | 13 - ...arbitraryextensions=true,module=node18).js | 6 +- ...raryextensions=true,module=node18).js.diff | 13 - .../importAttributes6(module=node18).js | 3 +- .../importAttributes6(module=node18).js.diff | 9 - ...olutionWithoutExtension3(module=node18).js | 3 +- ...onWithoutExtension3(module=node18).js.diff | 9 - ...olutionWithoutExtension4(module=node18).js | 3 +- ...onWithoutExtension4(module=node18).js.diff | 9 - ...deAllowJsPackageSelfName(module=node18).js | 8 +- ...owJsPackageSelfName(module=node18).js.diff | 17 +- .../nodeModules1(module=node18).js | 170 +++++----- .../nodeModules1(module=node18).js.diff | 289 +---------------- .../nodeModulesAllowJs1(module=node18).js | 170 +++++----- ...nodeModulesAllowJs1(module=node18).js.diff | 291 +----------------- ...onditionalPackageExports(module=node18).js | 32 +- ...ionalPackageExports(module=node18).js.diff | 55 +--- ...ulesAllowJsDynamicImport(module=node18).js | 5 +- ...llowJsDynamicImport(module=node18).js.diff | 13 +- ...sAllowJsExportAssignment(module=node18).js | 7 +- ...wJsExportAssignment(module=node18).js.diff | 53 ++-- ...sGeneratedNameCollisions(module=node18).js | 9 +- ...ratedNameCollisions(module=node18).js.diff | 45 +-- ...sAllowJsImportAssignment(module=node18).js | 18 +- ...wJsImportAssignment(module=node18).js.diff | 44 +-- ...ImportHelpersCollisions1(module=node18).js | 8 +- ...tHelpersCollisions1(module=node18).js.diff | 12 +- ...ImportHelpersCollisions2(module=node18).js | 8 +- ...tHelpersCollisions2(module=node18).js.diff | 31 +- ...ImportHelpersCollisions3(module=node18).js | 12 +- ...tHelpersCollisions3(module=node18).js.diff | 30 +- ...ModulesAllowJsImportMeta(module=node18).js | 5 +- ...esAllowJsImportMeta(module=node18).js.diff | 26 +- ...lesAllowJsPackageExports(module=node18).js | 28 +- ...lowJsPackageExports(module=node18).js.diff | 47 +-- ...lesAllowJsPackageImports(module=node18).js | 16 +- ...lowJsPackageImports(module=node18).js.diff | 29 +- ...wJsPackagePatternExports(module=node18).js | 16 +- ...ckagePatternExports(module=node18).js.diff | 29 +- ...agePatternExportsExclude(module=node18).js | 16 +- ...tternExportsExclude(module=node18).js.diff | 29 +- ...gePatternExportsTrailers(module=node18).js | 16 +- ...ternExportsTrailers(module=node18).js.diff | 29 +- ...wJsSynchronousCallErrors(module=node18).js | 17 +- ...nchronousCallErrors(module=node18).js.diff | 29 +- ...ulesAllowJsTopLevelAwait(module=node18).js | 5 +- ...llowJsTopLevelAwait(module=node18).js.diff | 13 +- ...rmatFileAlwaysHasDefault(module=node18).js | 6 +- ...ileAlwaysHasDefault(module=node18).js.diff | 12 +- ...onditionalPackageExports(module=node18).js | 32 +- ...ionalPackageExports(module=node18).js.diff | 55 +--- ...ImportWithPackageExports(module=node18).js | 42 +-- ...tWithPackageExports(module=node18).js.diff | 63 +--- ...onEmitWithPackageExports(module=node18).js | 54 ++-- ...tWithPackageExports(module=node18).js.diff | 66 +--- ...nodeModulesDynamicImport(module=node18).js | 5 +- ...odulesDynamicImport(module=node18).js.diff | 13 +- ...ModulesExportAssignments(module=node18).js | 3 +- ...esExportAssignments(module=node18).js.diff | 10 +- ...locksSpecifierResolution(module=node18).js | 5 +- ...SpecifierResolution(module=node18).js.diff | 9 +- ...portsBlocksTypesVersions(module=node18).js | 3 +- ...BlocksTypesVersions(module=node18).js.diff | 9 - ...sExportsSourceTs(module=node16).errors.txt | 3 +- ...rtsSourceTs(module=node16).errors.txt.diff | 7 + ...deModulesExportsSourceTs(module=node16).js | 3 +- ...ulesExportsSourceTs(module=node16).js.diff | 10 +- ...sExportsSourceTs(module=node18).errors.txt | 3 +- ...rtsSourceTs(module=node18).errors.txt.diff | 7 + ...deModulesExportsSourceTs(module=node18).js | 19 +- ...ulesExportsSourceTs(module=node18).js.diff | 24 +- ...xportsSourceTs(module=nodenext).errors.txt | 3 +- ...sSourceTs(module=nodenext).errors.txt.diff | 7 + ...ModulesExportsSourceTs(module=nodenext).js | 3 +- ...esExportsSourceTs(module=nodenext).js.diff | 10 +- ...fierGenerationConditions(module=node18).js | 5 +- ...enerationConditions(module=node18).js.diff | 14 - ...ifierGenerationDirectory(module=node18).js | 5 +- ...GenerationDirectory(module=node18).js.diff | 14 - ...ecifierGenerationPattern(module=node18).js | 5 +- ...erGenerationPattern(module=node18).js.diff | 14 - ...odeModulesForbidenSyntax(module=node18).js | 30 +- ...dulesForbidenSyntax(module=node18).js.diff | 134 +------- ...sGeneratedNameCollisions(module=node18).js | 9 +- ...ratedNameCollisions(module=node18).js.diff | 21 +- ...eModulesImportAssertions(module=node18).js | 3 +- ...lesImportAssertions(module=node18).js.diff | 12 - ...ModulesImportAssignments(module=node18).js | 18 +- ...esImportAssignments(module=node18).js.diff | 34 -- ...eModulesImportAttributes(module=node18).js | 3 +- ...lesImportAttributes(module=node18).js.diff | 12 - ...utesModeDeclarationEmit2(module=node18).js | 3 +- ...odeDeclarationEmit2(module=node18).js.diff | 12 - ...sImportHelpersCollisions(module=node18).js | 8 +- ...rtHelpersCollisions(module=node18).js.diff | 12 +- ...ImportHelpersCollisions2(module=node18).js | 8 +- ...tHelpersCollisions2(module=node18).js.diff | 31 +- ...ImportHelpersCollisions3(module=node18).js | 6 +- ...tHelpersCollisions3(module=node18).js.diff | 25 +- .../nodeModulesImportMeta(module=node18).js | 5 +- ...deModulesImportMeta(module=node18).js.diff | 12 +- ...portModeDeclarationEmit2(module=node18).js | 3 +- ...odeDeclarationEmit2(module=node18).js.diff | 12 - ...portResolutionIntoExport(module=node18).js | 8 +- ...esolutionIntoExport(module=node18).js.diff | 15 +- ...sImportResolutionNoCycle(module=node18).js | 8 +- ...rtResolutionNoCycle(module=node18).js.diff | 17 +- ...odeModulesPackageExports(module=node18).js | 28 +- ...dulesPackageExports(module=node18).js.diff | 47 +-- ...odeModulesPackageImports(module=node18).js | 16 +- ...dulesPackageImports(module=node18).js.diff | 29 +- ...lesPackagePatternExports(module=node18).js | 16 +- ...ckagePatternExports(module=node18).js.diff | 29 +- ...agePatternExportsExclude(module=node18).js | 28 +- ...tternExportsExclude(module=node18).js.diff | 47 +-- ...gePatternExportsTrailers(module=node18).js | 16 +- ...ternExportsTrailers(module=node18).js.diff | 29 +- ...ModulesResolveJsonModule(module=node18).js | 26 +- ...esResolveJsonModule(module=node18).js.diff | 35 +-- ...lesSynchronousCallErrors(module=node18).js | 9 +- ...nchronousCallErrors(module=node18).js.diff | 20 -- ...nodeModulesTopLevelAwait(module=node18).js | 5 +- ...odulesTopLevelAwait(module=node18).js.diff | 13 +- ...enceModeDeclarationEmit2(module=node18).js | 3 +- ...odeDeclarationEmit2(module=node18).js.diff | 9 +- ...enceModeDeclarationEmit3(module=node18).js | 3 +- ...odeDeclarationEmit3(module=node18).js.diff | 9 +- ...enceModeDeclarationEmit7(module=node18).js | 12 +- ...odeDeclarationEmit7(module=node18).js.diff | 27 +- ...shReferenceModeOverride2(module=node18).js | 3 +- ...erenceModeOverride2(module=node18).js.diff | 12 - ...shReferenceModeOverride3(module=node18).js | 3 +- ...erenceModeOverride3(module=node18).js.diff | 12 - ...pesVersionPackageExports(module=node18).js | 8 +- ...rsionPackageExports(module=node18).js.diff | 17 +- .../nodePackageSelfName(module=node18).js | 8 +- ...nodePackageSelfName(module=node18).js.diff | 17 +- ...odePackageSelfNameScoped(module=node18).js | 8 +- ...ckageSelfNameScoped(module=node18).js.diff | 17 +- .../nonTSExtensions(module=node18).js | 3 +- .../nonTSExtensions(module=node18).js.diff | 9 - ...packageJsonImportsErrors(module=node18).js | 14 +- ...geJsonImportsErrors(module=node18).js.diff | 22 -- ...typeOnlyESMImportFromCJS(module=node18).js | 3 +- ...nlyESMImportFromCJS(module=node18).js.diff | 12 - 151 files changed, 640 insertions(+), 2847 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff create mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff diff --git a/internal/transformers/transformer.go b/internal/transformers/transformer.go index 55a571cf45..5ff107e250 100644 --- a/internal/transformers/transformer.go +++ b/internal/transformers/transformer.go @@ -52,6 +52,7 @@ func getModuleTransformer(emitContext *printer.EmitContext, options *core.Compil core.ModuleKindES2022, core.ModuleKindES2020, core.ModuleKindES2015, + core.ModuleKindNode18, core.ModuleKindNode16, core.ModuleKindNodeNext, core.ModuleKindCommonJS: diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js index 678b845724..1d6e31ec0a 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js +++ b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js @@ -38,33 +38,28 @@ self.def.default(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = fun; //// [b.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.def = exports.default = void 0; -const mod_cjs_1 = require("./mod.cjs"); -const mod_cjs_2 = require("./mod.cjs"); -const mod_cjs_3 = require("./mod.cjs"); -const self = require("./b.mjs"); -const mod_cjs_4 = require("./mod.cjs"); -Object.defineProperty(exports, "default", { enumerable: true, get: function () { return mod_cjs_4.default; } }); -const mod_cjs_5 = require("./mod.cjs"); -Object.defineProperty(exports, "def", { enumerable: true, get: function () { return mod_cjs_5.default; } }); -mod_cjs_1.default === mod_cjs_2.default; -mod_cjs_2.default === mod_cjs_3.default; -mod_cjs_3.default === mod_cjs_3.default; -mod_cjs_3.default === self.default; +import a from "./mod.cjs"; +import { default as b } from "./mod.cjs"; +import c, { default as d } from "./mod.cjs"; +import * as self from "./b.mjs"; +export { default } from "./mod.cjs"; +export { default as def } from "./mod.cjs"; +a === b; +b === c; +c === d; +d === self.default; self.default === self.def; // should all fail -(0, mod_cjs_1.default)(); -(0, mod_cjs_2.default)(); -(0, mod_cjs_3.default)(); -(0, mod_cjs_3.default)(); +a(); +b(); +c(); +d(); self.default(); self.def(); // should all work -mod_cjs_1.default.default(); -mod_cjs_2.default.default(); -mod_cjs_3.default.default(); -mod_cjs_3.default.default(); +a.default(); +b.default(); +c.default(); +d.default(); self.default.default(); self.def.default(); diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff deleted file mode 100644 index ca6091002e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node18).js.diff +++ /dev/null @@ -1,54 +0,0 @@ ---- old.moduleNodeDefaultImports(module=node18).js -+++ new.moduleNodeDefaultImports(module=node18).js -@@= skipped -37, +37 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.default = fun; - //// [b.mjs] --import a from "./mod.cjs"; --import { default as b } from "./mod.cjs"; --import c, { default as d } from "./mod.cjs"; --import * as self from "./b.mjs"; --export { default } from "./mod.cjs"; --export { default as def } from "./mod.cjs"; --a === b; --b === c; --c === d; --d === self.default; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.def = exports.default = void 0; -+const mod_cjs_1 = require("./mod.cjs"); -+const mod_cjs_2 = require("./mod.cjs"); -+const mod_cjs_3 = require("./mod.cjs"); -+const self = require("./b.mjs"); -+const mod_cjs_4 = require("./mod.cjs"); -+Object.defineProperty(exports, "default", { enumerable: true, get: function () { return mod_cjs_4.default; } }); -+const mod_cjs_5 = require("./mod.cjs"); -+Object.defineProperty(exports, "def", { enumerable: true, get: function () { return mod_cjs_5.default; } }); -+mod_cjs_1.default === mod_cjs_2.default; -+mod_cjs_2.default === mod_cjs_3.default; -+mod_cjs_3.default === mod_cjs_3.default; -+mod_cjs_3.default === self.default; - self.default === self.def; - // should all fail --a(); --b(); --c(); --d(); -+(0, mod_cjs_1.default)(); -+(0, mod_cjs_2.default)(); -+(0, mod_cjs_3.default)(); -+(0, mod_cjs_3.default)(); - self.default(); - self.def(); - // should all work --a.default(); --b.default(); --c.default(); --d.default(); -+mod_cjs_1.default.default(); -+mod_cjs_2.default.default(); -+mod_cjs_3.default.default(); -+mod_cjs_3.default.default(); - self.default.default(); - self.def.default(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js index 5779a33d13..aec21f826c 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js @@ -53,5 +53,4 @@ declare var bad: "bad12"; export default bad; //// [main.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff deleted file mode 100644 index 84b37e1194..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForTsJsImport(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.declarationFileForTsJsImport(module=node18).js -+++ new.declarationFileForTsJsImport(module=node18).js -@@= skipped -52, +52 lines =@@ - export default bad; - - //// [main.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js index 78bf96bca9..0db936c68b 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js @@ -12,7 +12,7 @@ mod.doNativeThing("good"); //// [main.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const mod = require("./dir/native.node"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +const mod = __require("./dir/native.node"); mod.doNativeThing("good"); diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff deleted file mode 100644 index 7a703b4a20..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).js -@@= skipped -11, +11 lines =@@ - - - //// [main.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --const mod = __require("./dir/native.node"); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+const mod = require("./dir/native.node"); - mod.doNativeThing("good"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js index 78bf96bca9..0db936c68b 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js @@ -12,7 +12,7 @@ mod.doNativeThing("good"); //// [main.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const mod = require("./dir/native.node"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +const mod = __require("./dir/native.node"); mod.doNativeThing("good"); diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff deleted file mode 100644 index 8916f4d87c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=true,module=node18).js -@@= skipped -11, +11 lines =@@ - - - //// [main.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --const mod = __require("./dir/native.node"); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+const mod = require("./dir/native.node"); - mod.doNativeThing("good"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js b/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js index e12f467618..6d346c55c8 100644 --- a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js @@ -10,5 +10,4 @@ import * as thing6 from "./mod.mjs" with { type: "json", field: 0..toString() }; //// [mod.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff deleted file mode 100644 index 033ccb86a9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/importAttributes6(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.importAttributes6(module=node18).js -+++ new.importAttributes6(module=node18).js -@@= skipped -9, +9 lines =@@ - - - //// [mod.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js index 06f320fa23..3b4e816e48 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js @@ -18,5 +18,4 @@ function foo() { return ""; } //// [bar.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff deleted file mode 100644 index 4e88f93391..0000000000 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension3(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.moduleResolutionWithoutExtension3(module=node18).js -+++ new.moduleResolutionWithoutExtension3(module=node18).js -@@= skipped -17, +17 lines =@@ - return ""; - } - //// [bar.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js index 698f97a9cf..9fe42ebd8f 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js @@ -18,5 +18,4 @@ function foo() { return ""; } //// [bar.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff deleted file mode 100644 index 7f2ac8c2bf..0000000000 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension4(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.moduleResolutionWithoutExtension4(module=node18).js -+++ new.moduleResolutionWithoutExtension4(module=node18).js -@@= skipped -17, +17 lines =@@ - return ""; - } - //// [bar.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js index b7f552a39e..dec5d49ea5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js @@ -21,16 +21,12 @@ self; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff index ebf8f5bd1d..a617204d98 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeAllowJsPackageSelfName(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodeAllowJsPackageSelfName(module=node18).js +++ new.nodeAllowJsPackageSelfName(module=node18).js -@@= skipped -20, +20 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); - self; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); +@@= skipped -29, +29 lines =@@ self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js index bedfe939b8..53ef354c42 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js @@ -335,12 +335,9 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -356,26 +353,17 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -474,33 +462,32 @@ const _m45 = import("./subfolder2/another/index"); const x = 1; exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones shouldn't all work - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -525,17 +512,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -561,35 +548,34 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones should all fail - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -614,17 +600,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -650,7 +636,7 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff index 891597d978..4bad96ec43 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node18).js.diff @@ -1,47 +1,9 @@ --- old.nodeModules1(module=node18).js +++ new.nodeModules1(module=node18).js -@@= skipped -334, +334 lines =@@ - const x = 1; +@@= skipped -372, +372 lines =@@ exports.x = x; - //// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --// esm format file --const x = 1; --export { x }; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.cjs] --"use strict"; + //// [index.cjs] + "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); @@ -75,56 +37,6 @@ - return result; - }; -})(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.x = void 0; // ESM-format imports below should issue errors @@ -178,193 +90,10 @@ void m1; void m2; void m3; -@@= skipped -160, +139 lines =@@ - const x = 1; - exports.x = x; - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones shouldn't all work - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -50, +51 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -+exports.x = x; - //// [index.mjs] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones should all fail - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -52, +53 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -- -- --//// [index.d.ts] +@@= skipped -300, +267 lines =@@ + + + //// [index.d.ts] -declare const x = 1; -export { x }; -//// [index.d.cts] @@ -398,10 +127,6 @@ -declare const x = 1; -export { x }; -//// [index.d.mts] -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js index fceee457d1..fb40dfae97 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js @@ -335,12 +335,9 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -356,19 +353,13 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -377,12 +368,9 @@ exports.x = void 0; const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -474,33 +462,32 @@ const _m45 = import("./subfolder2/another/index"); const x = 1; exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones should all fail - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -525,17 +512,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -561,35 +548,34 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -const m1 = require("./index.js"); -const m2 = require("./index.mjs"); -const m3 = require("./index.cjs"); -const m4 = require("./subfolder/index.js"); -const m5 = require("./subfolder/index.mjs"); -const m6 = require("./subfolder/index.cjs"); -const m7 = require("./subfolder2/index.js"); -const m8 = require("./subfolder2/index.mjs"); -const m9 = require("./subfolder2/index.cjs"); -const m10 = require("./subfolder2/another/index.js"); -const m11 = require("./subfolder2/another/index.mjs"); -const m12 = require("./subfolder2/another/index.cjs"); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); +import * as m1 from "./index.js"; +import * as m2 from "./index.mjs"; +import * as m3 from "./index.cjs"; +import * as m4 from "./subfolder/index.js"; +import * as m5 from "./subfolder/index.mjs"; +import * as m6 from "./subfolder/index.cjs"; +import * as m7 from "./subfolder2/index.js"; +import * as m8 from "./subfolder2/index.mjs"; +import * as m9 from "./subfolder2/index.cjs"; +import * as m10 from "./subfolder2/another/index.js"; +import * as m11 from "./subfolder2/another/index.mjs"; +import * as m12 from "./subfolder2/another/index.cjs"; // The next ones shouldn't all work - esm format files have no index resolution or extension resolution -const m13 = require("./"); -const m14 = require("./index"); -const m15 = require("./subfolder"); -const m16 = require("./subfolder/"); -const m17 = require("./subfolder/index"); -const m18 = require("./subfolder2"); -const m19 = require("./subfolder2/"); -const m20 = require("./subfolder2/index"); -const m21 = require("./subfolder2/another"); -const m22 = require("./subfolder2/another/"); -const m23 = require("./subfolder2/another/index"); +import * as m13 from "./"; +import * as m14 from "./index"; +import * as m15 from "./subfolder"; +import * as m16 from "./subfolder/"; +import * as m17 from "./subfolder/index"; +import * as m18 from "./subfolder2"; +import * as m19 from "./subfolder2/"; +import * as m20 from "./subfolder2/index"; +import * as m21 from "./subfolder2/another"; +import * as m22 from "./subfolder2/another/"; +import * as m23 from "./subfolder2/another/index"; void m1; void m2; void m3; @@ -614,17 +600,17 @@ void m21; void m22; void m23; // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) -const m24 = require("./"); -const m25 = require("./index"); -const m26 = require("./subfolder"); -const m27 = require("./subfolder/"); -const m28 = require("./subfolder/index"); -const m29 = require("./subfolder2"); -const m30 = require("./subfolder2/"); -const m31 = require("./subfolder2/index"); -const m32 = require("./subfolder2/another"); -const m33 = require("./subfolder2/another/"); -const m34 = require("./subfolder2/another/index"); +const m24 = __require("./"); +const m25 = __require("./index"); +const m26 = __require("./subfolder"); +const m27 = __require("./subfolder/"); +const m28 = __require("./subfolder/index"); +const m29 = __require("./subfolder2"); +const m30 = __require("./subfolder2/"); +const m31 = __require("./subfolder2/index"); +const m32 = __require("./subfolder2/another"); +const m33 = __require("./subfolder2/another/"); +const m34 = __require("./subfolder2/another/index"); void m24; void m25; void m26; @@ -650,7 +636,7 @@ const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); // esm format file const x = 1; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff index 1dddd2bd27..546ae3167c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJs1(module=node18).js.diff @@ -1,47 +1,9 @@ --- old.nodeModulesAllowJs1(module=node18).js +++ new.nodeModulesAllowJs1(module=node18).js -@@= skipped -334, +334 lines =@@ - const x = 1; - exports.x = x; - //// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.js] --// esm format file --const x = 1; --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = 1; --exports.x = x; --//// [index.mjs] --// esm format file --const x = 1; --export { x }; --//// [index.cjs] --"use strict"; +@@= skipped -372, +372 lines =@@ + export { x }; + //// [index.cjs] + "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); @@ -75,56 +37,6 @@ - return result; - }; -})(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = 1; -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = 1; -+exports.x = x; -+//// [index.cjs] -+"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.x = void 0; // ESM-format imports below should issue errors @@ -178,193 +90,10 @@ void m1; void m2; void m3; -@@= skipped -160, +139 lines =@@ - const x = 1; - exports.x = x; - //// [index.mjs] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones should all fail - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -50, +51 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -+exports.x = x; - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); --import * as m1 from "./index.js"; --import * as m2 from "./index.mjs"; --import * as m3 from "./index.cjs"; --import * as m4 from "./subfolder/index.js"; --import * as m5 from "./subfolder/index.mjs"; --import * as m6 from "./subfolder/index.cjs"; --import * as m7 from "./subfolder2/index.js"; --import * as m8 from "./subfolder2/index.mjs"; --import * as m9 from "./subfolder2/index.cjs"; --import * as m10 from "./subfolder2/another/index.js"; --import * as m11 from "./subfolder2/another/index.mjs"; --import * as m12 from "./subfolder2/another/index.cjs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+const m1 = require("./index.js"); -+const m2 = require("./index.mjs"); -+const m3 = require("./index.cjs"); -+const m4 = require("./subfolder/index.js"); -+const m5 = require("./subfolder/index.mjs"); -+const m6 = require("./subfolder/index.cjs"); -+const m7 = require("./subfolder2/index.js"); -+const m8 = require("./subfolder2/index.mjs"); -+const m9 = require("./subfolder2/index.cjs"); -+const m10 = require("./subfolder2/another/index.js"); -+const m11 = require("./subfolder2/another/index.mjs"); -+const m12 = require("./subfolder2/another/index.cjs"); - // The next ones shouldn't all work - esm format files have no index resolution or extension resolution --import * as m13 from "./"; --import * as m14 from "./index"; --import * as m15 from "./subfolder"; --import * as m16 from "./subfolder/"; --import * as m17 from "./subfolder/index"; --import * as m18 from "./subfolder2"; --import * as m19 from "./subfolder2/"; --import * as m20 from "./subfolder2/index"; --import * as m21 from "./subfolder2/another"; --import * as m22 from "./subfolder2/another/"; --import * as m23 from "./subfolder2/another/index"; -+const m13 = require("./"); -+const m14 = require("./index"); -+const m15 = require("./subfolder"); -+const m16 = require("./subfolder/"); -+const m17 = require("./subfolder/index"); -+const m18 = require("./subfolder2"); -+const m19 = require("./subfolder2/"); -+const m20 = require("./subfolder2/index"); -+const m21 = require("./subfolder2/another"); -+const m22 = require("./subfolder2/another/"); -+const m23 = require("./subfolder2/another/index"); - void m1; - void m2; - void m3; -@@= skipped -52, +53 lines =@@ - void m22; - void m23; - // These should _mostly_ work - `import = require` always desugars to require calls, which do have extension and index resolution (but can't load anything that resolves to esm!) --const m24 = __require("./"); --const m25 = __require("./index"); --const m26 = __require("./subfolder"); --const m27 = __require("./subfolder/"); --const m28 = __require("./subfolder/index"); --const m29 = __require("./subfolder2"); --const m30 = __require("./subfolder2/"); --const m31 = __require("./subfolder2/index"); --const m32 = __require("./subfolder2/another"); --const m33 = __require("./subfolder2/another/"); --const m34 = __require("./subfolder2/another/index"); -+const m24 = require("./"); -+const m25 = require("./index"); -+const m26 = require("./subfolder"); -+const m27 = require("./subfolder/"); -+const m28 = require("./subfolder/index"); -+const m29 = require("./subfolder2"); -+const m30 = require("./subfolder2/"); -+const m31 = require("./subfolder2/index"); -+const m32 = require("./subfolder2/another"); -+const m33 = require("./subfolder2/another/"); -+const m34 = require("./subfolder2/another/index"); - void m24; - void m25; - void m26; -@@= skipped -36, +36 lines =@@ - const _m45 = import("./subfolder2/another/index"); - // esm format file - const x = 1; --export { x }; -- -- --//// [index.d.ts] +@@= skipped -300, +267 lines =@@ + + + //// [index.d.ts] -export const x: 1; -//// [index.d.cts] -export const x: 1; @@ -388,10 +117,6 @@ -export const x: 1; -//// [index.d.ts] -export const x: 1; -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x = 1; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js index 0099063304..bc92faebf9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js @@ -123,19 +123,17 @@ export const cjsSource = true; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; @@ -159,19 +157,17 @@ mjsi.cjsSource; typei.implicitCjsSource; ts.cjsSource; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff index 852ec6e844..591822ad6f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsConditionalPackageExports(module=node18).js.diff @@ -1,32 +1,6 @@ --- old.nodeModulesAllowJsConditionalPackageExports(module=node18).js +++ new.nodeModulesAllowJsConditionalPackageExports(module=node18).js -@@= skipped -122, +122 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; +@@= skipped -139, +139 lines =@@ ts.mjsSource; //// [index.cjs] "use strict"; @@ -84,29 +58,4 @@ +const ts = require("inner/types"); cjsi.cjsSource; mjsi.cjsSource; - typei.implicitCjsSource; - ts.cjsSource; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; \ No newline at end of file + typei.implicitCjsSource; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js index a87bd0d5fa..59027fbfed 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js @@ -32,11 +32,8 @@ async function main() { const { readFile } = await import("fs"); } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.main = main; // esm format file -async function main() { +export async function main() { const { readFile } = await import("fs"); } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff index 03676d80ce..0c460481a8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsDynamicImport(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesAllowJsDynamicImport(module=node18).js +++ new.nodeModulesAllowJsDynamicImport(module=node18).js -@@= skipped -31, +31 lines =@@ - const { readFile } = await import("fs"); - } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.main = main; - // esm format file --export async function main() { -+async function main() { - const { readFile } = await import("fs"); - } +@@= skipped -38, +38 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js index ce4449e488..91ecea6d0b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js @@ -39,15 +39,12 @@ const a = {}; export = a; module.exports = a; //// [index.js] -"use strict"; // esm format file const a = {}; -module.exports = a; +export {}; //// [file.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -require("fs"); +import "fs"; const a = {}; export = a; module.exports = a; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff index 0572935149..4cf48c8e26 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node18).js.diff @@ -10,47 +10,30 @@ +export = a; module.exports = a; //// [index.js] -+"use strict"; // esm format file +@@= skipped -12, +12 lines =@@ + // esm format file + import "fs"; const a = {}; --export {}; -+module.exports = a; - //// [file.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+// esm format file -+require("fs"); -+const a = {}; +export = a; -+module.exports = a; -+ -+ -+//// [index.d.ts] + module.exports = a; + + + //// [index.d.ts] +-export = a; +// cjs format file -+declare const a: {}; -+export = a; -+//// [file.d.ts] -+export = a; -+//// [index.d.ts] -+// esm format file -+declare const a: {}; + declare const a: {}; +export = a; -+//// [file.d.ts] - // esm format file - import "fs"; --const a = {}; --module.exports = a; -- -- --//// [index.d.ts] --export = a; --declare const a: {}; --//// [file.d.ts] --export = a; + //// [file.d.ts] + export = a; -declare const a: {}; --//// [index.d.ts] + //// [index.d.ts] -export = a; --declare const a: {}; --//// [file.d.ts] ++// esm format file + declare const a: {}; ++export = a; + //// [file.d.ts] -export {}; ++// esm format file ++import "fs"; +export = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js index a5606935ec..847c8e47c2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js @@ -39,18 +39,13 @@ class Object { exports.Object = Object; exports.__esModule = false; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Object = exports.exports = exports.__esModule = void 0; -exports.require = require; // esm format file function require() { } const exports = {}; -exports.exports = exports; class Object { } -exports.Object = Object; -exports.__esModule = false; +export const __esModule = false; +export { require, exports, Object }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff index 8f901e92de..2c197aef27 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node18).js.diff @@ -1,52 +1,29 @@ --- old.nodeModulesAllowJsGeneratedNameCollisions(module=node18).js +++ new.nodeModulesAllowJsGeneratedNameCollisions(module=node18).js -@@= skipped -38, +38 lines =@@ - exports.Object = Object; - exports.__esModule = false; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.Object = exports.exports = exports.__esModule = void 0; -+exports.require = require; - // esm format file - function require() { } - const exports = {}; -+exports.exports = exports; - class Object { - } --export const __esModule = false; --export { require, exports, Object }; -- -- --//// [index.d.ts] --export const __esModule: false; --export function require(): void; --export const exports: {}; --export class Object { --} --//// [index.d.ts] +@@= skipped -48, +48 lines =@@ + + + //// [index.d.ts] -export const __esModule: false; -export function require(): void; -export const exports: {}; -export class Object { --} -+exports.Object = Object; -+exports.__esModule = false; -+ -+ -+//// [index.d.ts] +// cjs format file +declare function require(): void; +declare const exports: {}; +declare class Object { -+} + } +export declare const __esModule = false; +export { require, exports, Object }; -+//// [index.d.ts] + //// [index.d.ts] +-export const __esModule: false; +-export function require(): void; +-export const exports: {}; +-export class Object { +// esm format file +declare function require(): void; +declare const exports: {}; +declare class Object { -+} + } +export declare const __esModule = false; +export { require, exports, Object }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js index 2cef9a1e63..80990ff3ca 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js @@ -38,21 +38,23 @@ const fs = require("fs"); fs.readFile; exports.fs2 = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); // esm format file -const fs = require("fs"); +const fs = __require("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require("fs"); +export { fs2 }; //// [file.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire_1 } from "module"; +const __require_1 = _createRequire_1(import.meta.url); // esm format file const __require = null; const _createRequire = null; -const fs = require("fs"); +const fs = __require_1("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require_1("fs"); +export { fs2 }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff index a9d8b18538..1d67920842 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportAssignment(module=node18).js.diff @@ -1,45 +1,13 @@ --- old.nodeModulesAllowJsImportAssignment(module=node18).js +++ new.nodeModulesAllowJsImportAssignment(module=node18).js -@@= skipped -37, +37 lines =@@ - fs.readFile; - exports.fs2 = require("fs"); - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --const fs = __require("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require("fs"); --export { fs2 }; -+exports.fs2 = require("fs"); - //// [file.js] --import { createRequire as _createRequire_1 } from "module"; --const __require_1 = _createRequire_1(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file - const __require = null; - const _createRequire = null; --const fs = __require_1("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require_1("fs"); --export { fs2 }; -- -- --//// [index.d.ts] +@@= skipped -57, +57 lines =@@ + + + //// [index.d.ts] -import fs2 = require("fs"); --//// [index.d.ts] --import fs2 = require("fs"); -+exports.fs2 = require("fs"); -+ -+ -+//// [index.d.ts] +export import fs2 = require("fs"); -+//// [index.d.ts] + //// [index.d.ts] +-import fs2 = require("fs"); +export import fs2 = require("fs"); //// [file.d.ts] -import fs2 = require("fs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js index 1210148c3a..a2dd953a21 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js @@ -38,12 +38,10 @@ fs_1.default.readFile; const fs = require("fs"); fs.readFile; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const fs_1 = require("fs"); -fs_1.default.readFile; -const fs = require("fs"); +import { default as _fs } from "fs"; +_fs.readFile; +import * as fs from "fs"; fs.readFile; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff index b1557f6472..fa913e9ede 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions1(module=node18).js.diff @@ -13,14 +13,4 @@ +const fs = require("fs"); fs.readFile; //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import { default as _fs } from "fs"; --_fs.readFile; --import * as fs from "fs"; -+const fs_1 = require("fs"); -+fs_1.default.readFile; -+const fs = require("fs"); - fs.readFile; - + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js index 30071155df..64405d2cb8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js @@ -34,13 +34,9 @@ const tslib_1 = require("tslib"); tslib_1.__exportStar(require("fs"), exports); exports.fs = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.fs = void 0; -const tslib_1 = require("tslib"); // esm format file -__exportStar(require("fs"), exports); -exports.fs = require("fs"); +export * from "fs"; +export * as fs from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff index 8891e5a9e6..2e51e5d0c7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions2(module=node18).js.diff @@ -7,29 +7,16 @@ -exports.fs = tslib_1.__importStar(require("fs")); +exports.fs = require("fs"); //// [index.js] --// esm format file --export * from "fs"; --export * as fs from "fs"; -- -- --//// [index.d.ts] --export * from "fs"; --export * as fs from "fs"; --//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.fs = void 0; -+const tslib_1 = require("tslib"); -+// esm format file -+__exportStar(require("fs"), exports); -+exports.fs = require("fs"); -+ -+ -+//// [index.d.ts] + // esm format file + export * from "fs"; +@@= skipped -8, +8 lines =@@ + + + //// [index.d.ts] +// cjs format file -+export * from "fs"; -+export * as fs from "fs"; -+//// [index.d.ts] + export * from "fs"; + export * as fs from "fs"; + //// [index.d.ts] +// esm format file export * from "fs"; export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js index a7cd4a1ee1..878a995831 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js @@ -39,16 +39,10 @@ Object.defineProperty(exports, "foo", { enumerable: true, get: function () { ret const fs_3 = require("fs"); Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.baz = exports.foo = exports.default = void 0; // esm format file -const fs_1 = require("fs"); -Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); -const fs_2 = require("fs"); -Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); -const fs_3 = require("fs"); -Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff index 549427edf3..4aace85945 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportHelpersCollisions3(module=node18).js.diff @@ -18,34 +18,18 @@ +const fs_3 = require("fs"); Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); //// [index.js] --// esm format file --export { default } from "fs"; --export { default as foo } from "fs"; --export { bar as baz } from "fs"; -- -- --//// [index.d.ts] + // esm format file +@@= skipped -16, +15 lines =@@ + + + //// [index.d.ts] -export { default, default as foo, bar as baz } from "fs"; --//// [index.d.ts] --export { default, default as foo, bar as baz } from "fs"; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.baz = exports.foo = exports.default = void 0; -+// esm format file -+const fs_1 = require("fs"); -+Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); -+const fs_2 = require("fs"); -+Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return fs_2.default; } }); -+const fs_3 = require("fs"); -+Object.defineProperty(exports, "baz", { enumerable: true, get: function () { return fs_3.bar; } }); -+ -+ -+//// [index.d.ts] +// cjs format file +export { default } from "fs"; +export { default as foo } from "fs"; +export { bar as baz } from "fs"; -+//// [index.d.ts] + //// [index.d.ts] +-export { default, default as foo, bar as baz } from "fs"; +// esm format file +export { default } from "fs"; +export { default as foo } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js index 98d404af57..23c6e47c50 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js @@ -27,12 +27,9 @@ exports.x = void 0; const x = import.meta.url; exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = import.meta.url; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff index 5af2feb917..e8e3f59b89 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsImportMeta(module=node18).js.diff @@ -1,29 +1,15 @@ --- old.nodeModulesAllowJsImportMeta(module=node18).js +++ new.nodeModulesAllowJsImportMeta(module=node18).js -@@= skipped -26, +26 lines =@@ - const x = import.meta.url; - exports.x = x; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = import.meta.url; --export { x }; -- -- --//// [index.d.ts] +@@= skipped -32, +32 lines =@@ + + + //// [index.d.ts] -export const x: string; --//// [index.d.ts] --export const x: string; -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x: string; +export { x }; -+//// [index.d.ts] + //// [index.d.ts] +-export const x: string; +// esm format file +declare const x: string; +export { x }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js index 6f3679e8cc..acd2fda96f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js @@ -89,18 +89,16 @@ export { type }; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; @@ -121,18 +119,16 @@ cjsi; mjsi; typei; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff index f7bd80c825..d1e301cc9d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageExports(module=node18).js.diff @@ -1,29 +1,6 @@ --- old.nodeModulesAllowJsPackageExports(module=node18).js +++ new.nodeModulesAllowJsPackageExports(module=node18).js -@@= skipped -88, +88 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; +@@= skipped -103, +103 lines =@@ typei; //// [index.cjs] "use strict"; @@ -76,28 +53,6 @@ -const typei = __importStar(require("inner")); +const cjsi = require("inner/cjs"); +const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; - typei; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); +const typei = require("inner"); cjsi; mjsi; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js index 669c01ed68..85adfd4979 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js @@ -38,12 +38,10 @@ type; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; @@ -58,12 +56,10 @@ cjs; mjs; type; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff index 4ce8d947cc..ee6583bebc 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackageImports(module=node18).js.diff @@ -1,20 +1,6 @@ --- old.nodeModulesAllowJsPackageImports(module=node18).js +++ new.nodeModulesAllowJsPackageImports(module=node18).js -@@= skipped -37, +37 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; +@@= skipped -46, +46 lines =@@ type; //// [index.cjs] "use strict"; @@ -58,19 +44,6 @@ -const type = __importStar(require("#type")); +const cjs = require("#cjs"); +const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; - type; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); +const type = require("#type"); cjs; mjs; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js index 066c2c6afb..3751d171e1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff index 977d31df92..6448f56f3f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExports(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsPackagePatternExports(module=node18).js +++ new.nodeModulesAllowJsPackagePatternExports(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js index 6e380318eb..38ad4085f6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js @@ -69,22 +69,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff index 72341d7bd8..3dfc3da1cd 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js +++ new.nodeModulesAllowJsPackagePatternExportsExclude(module=node18).js -@@= skipped -68, +68 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; +@@= skipped -85, +85 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js index d269d9f483..a4bc4ac46e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff index d526cae854..de63598d0b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js +++ new.nodeModulesAllowJsPackagePatternExportsTrailers(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js index df11fc187e..3ea5819786 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js @@ -34,18 +34,17 @@ export async function h() { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.h = h; +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); // esm format file -const index_js_1 = require("./index.js"); -const mod = require("./index.js"); -const index_js_2 = require("./subfolder/index.js"); -const mod2 = require("./subfolder/index.js"); -async function h() { +import { h as _h } from "./index.js"; +const mod = __require("./index.js"); +import { f } from "./subfolder/index.js"; +const mod2 = __require("./subfolder/index.js"); +export async function h() { const mod3 = await import("./index.js"); const mod4 = await import("./subfolder/index.js"); - (0, index_js_2.f)(); + f(); } //// [index.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff index 2db2a9c034..e30c6e4ffc 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsSynchronousCallErrors(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesAllowJsSynchronousCallErrors(module=node18).js +++ new.nodeModulesAllowJsSynchronousCallErrors(module=node18).js -@@= skipped -33, +33 lines =@@ - } - - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.h = h; - // esm format file --import { h as _h } from "./index.js"; --const mod = __require("./index.js"); --import { f } from "./subfolder/index.js"; --const mod2 = __require("./subfolder/index.js"); --export async function h() { -+const index_js_1 = require("./index.js"); -+const mod = require("./index.js"); -+const index_js_2 = require("./subfolder/index.js"); -+const mod2 = require("./subfolder/index.js"); -+async function h() { - const mod3 = await import("./index.js"); - const mod4 = await import("./subfolder/index.js"); -- f(); -+ (0, index_js_2.f)(); - } - //// [index.js] - "use strict"; -@@= skipped -29, +30 lines =@@ +@@= skipped -62, +62 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js index 83ba969813..d7e534e7c4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js @@ -30,12 +30,9 @@ const x = await 1; exports.x = x; for await (const y of []) { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = await 1; -exports.x = x; +export { x }; for await (const y of []) { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff index 05093d7f3f..01f87ccf86 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesAllowJsTopLevelAwait(module=node18).js +++ new.nodeModulesAllowJsTopLevelAwait(module=node18).js -@@= skipped -29, +29 lines =@@ - exports.x = x; - for await (const y of []) { } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = await 1; --export { x }; -+exports.x = x; - for await (const y of []) { } +@@= skipped -36, +36 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js index 1efea14d47..5653139603 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js @@ -25,11 +25,9 @@ exports.a = void 0; // cjs format file exports.a = 1; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const index_js_1 = require("./subfolder/index.js"); -index_js_1.default; +import mod from "./subfolder/index.js"; +mod; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff index b8e99b4bdc..10fc6b270b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js.diff @@ -1,16 +1,6 @@ --- old.nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js +++ new.nodeModulesCjsFormatFileAlwaysHasDefault(module=node18).js -@@= skipped -24, +24 lines =@@ - // cjs format file - exports.a = 1; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import mod from "./subfolder/index.js"; --mod; -+const index_js_1 = require("./subfolder/index.js"); -+index_js_1.default; +@@= skipped -30, +30 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js index 4054eb19a5..c632632d5c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js @@ -123,19 +123,17 @@ export const cjsSource = true; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; @@ -159,19 +157,17 @@ mjsi.cjsSource; typei.implicitCjsSource; ts.cjsSource; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/a"); -const mjsi = require("inner/b"); -const typei = require("inner"); -const ts = require("inner/types"); +import * as cjsi from "inner/a"; +import * as mjsi from "inner/b"; +import * as typei from "inner"; +import * as ts from "inner/types"; cjsi.mjsSource; mjsi.mjsSource; typei.mjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff index 6dd37fc06a..f2420e32b9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node18).js.diff @@ -1,32 +1,6 @@ --- old.nodeModulesConditionalPackageExports(module=node18).js +++ new.nodeModulesConditionalPackageExports(module=node18).js -@@= skipped -122, +122 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; +@@= skipped -139, +139 lines =@@ ts.mjsSource; //// [index.cjs] "use strict"; @@ -84,29 +58,4 @@ +const ts = require("inner/types"); cjsi.cjsSource; mjsi.cjsSource; - typei.implicitCjsSource; - ts.cjsSource; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/a"; --import * as mjsi from "inner/b"; --import * as typei from "inner"; --import * as ts from "inner/types"; -+const cjsi = require("inner/a"); -+const mjsi = require("inner/b"); -+const typei = require("inner"); -+const ts = require("inner/types"); - cjsi.mjsSource; - mjsi.mjsSource; - typei.mjsSource; \ No newline at end of file + typei.implicitCjsSource; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js index 5b00ba5489..9cf59460af 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js @@ -71,46 +71,32 @@ export const cjsNonmain = true; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); //// [other.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.c = exports.b = exports.a = void 0; // esm format file -exports.a = await import("package/cjs"); -exports.b = await import("package/mjs"); -exports.c = await import("package"); -exports.f = await import("inner"); +export const a = await import("package/cjs"); +export const b = await import("package/mjs"); +export const c = await import("package"); +export const f = await import("inner"); //// [other2.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.e = exports.d = void 0; // esm format file -exports.d = await import("inner/cjs"); -exports.e = await import("inner/mjs"); +export const d = await import("inner/cjs"); +export const e = await import("inner/mjs"); //// [other.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.c = exports.b = exports.a = void 0; // esm format file -exports.a = await import("package/cjs"); -exports.b = await import("package/mjs"); -exports.c = await import("package"); -exports.f = await import("inner"); +export const a = await import("package/cjs"); +export const b = await import("package/mjs"); +export const c = await import("package"); +export const f = await import("inner"); //// [other2.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.e = exports.d = void 0; // esm format file -exports.d = await import("inner/cjs"); -exports.e = await import("inner/mjs"); +export const d = await import("inner/cjs"); +export const e = await import("inner/mjs"); //// [other.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff index a5c478595a..62041dcb9f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js.diff @@ -1,67 +1,6 @@ --- old.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js +++ new.nodeModulesDeclarationEmitDynamicImportWithPackageExports(module=node18).js -@@= skipped -70, +70 lines =@@ - } - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [index.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [index.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - //// [other.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.c = exports.b = exports.a = void 0; - // esm format file --export const a = await import("package/cjs"); --export const b = await import("package/mjs"); --export const c = await import("package"); --export const f = await import("inner"); -+exports.a = await import("package/cjs"); -+exports.b = await import("package/mjs"); -+exports.c = await import("package"); -+exports.f = await import("inner"); - //// [other2.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.e = exports.d = void 0; - // esm format file --export const d = await import("inner/cjs"); --export const e = await import("inner/mjs"); -+exports.d = await import("inner/cjs"); -+exports.e = await import("inner/mjs"); - //// [other.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.c = exports.b = exports.a = void 0; - // esm format file --export const a = await import("package/cjs"); --export const b = await import("package/mjs"); --export const c = await import("package"); --export const f = await import("inner"); -+exports.a = await import("package/cjs"); -+exports.b = await import("package/mjs"); -+exports.c = await import("package"); -+exports.f = await import("inner"); - //// [other2.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.e = exports.d = void 0; - // esm format file --export const d = await import("inner/cjs"); --export const e = await import("inner/mjs"); -+exports.d = await import("inner/cjs"); -+exports.e = await import("inner/mjs"); - //// [other.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -@@= skipped -45, +59 lines =@@ +@@= skipped -115, +115 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js index 9b4abfd62b..d13987b541 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js @@ -92,22 +92,19 @@ export const cjsNonmain = true; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); -exports.a = cjs; -exports.b = mjs; -exports.c = type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); -exports.d = cjsi; -exports.e = mjsi; -exports.f = typei; +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +export const a = cjs; +export const b = mjs; +export const c = type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +export const d = cjsi; +export const e = mjsi; +export const f = typei; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -126,22 +123,19 @@ exports.d = cjsi; exports.e = mjsi; exports.f = typei; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); -exports.a = cjs; -exports.b = mjs; -exports.c = type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); -exports.d = cjsi; -exports.e = mjsi; -exports.f = typei; +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; +export const a = cjs; +export const b = mjs; +export const c = type; +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; +export const d = cjsi; +export const e = mjsi; +export const f = typei; //// [index.d.mts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff index 229d49e8bf..4443916e75 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node18).js.diff @@ -1,37 +1,7 @@ --- old.nodeModulesDeclarationEmitWithPackageExports(module=node18).js +++ new.nodeModulesDeclarationEmitWithPackageExports(module=node18).js -@@= skipped -91, +91 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; --export const a = cjs; --export const b = mjs; --export const c = type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; --export const d = cjsi; --export const e = mjsi; --export const f = typei; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); -+exports.a = cjs; -+exports.b = mjs; -+exports.c = type; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); -+exports.d = cjsi; -+exports.e = mjsi; -+exports.f = typei; +@@= skipped -106, +106 lines =@@ + export const f = typei; //// [index.cjs] "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { @@ -88,35 +58,7 @@ exports.d = cjsi; exports.e = mjsi; exports.f = typei; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; --export const a = cjs; --export const b = mjs; --export const c = type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; --export const d = cjsi; --export const e = mjsi; --export const f = typei; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); -+exports.a = cjs; -+exports.b = mjs; -+exports.c = type; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); -+exports.d = cjsi; -+exports.e = mjsi; -+exports.f = typei; +@@= skipped -65, +32 lines =@@ //// [index.d.mts] @@ -124,7 +66,7 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -93, +67 lines =@@ +@@= skipped -13, +14 lines =@@ export declare const e: typeof mjsi; export declare const f: typeof typei; //// [index.d.cts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js index f5f694667d..2c495b6d6f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js @@ -32,11 +32,8 @@ async function main() { const { readFile } = await import("fs"); } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.main = main; // esm format file -async function main() { +export async function main() { const { readFile } = await import("fs"); } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff index 4c8eed3d9b..6aa2977844 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesDynamicImport(module=node18).js +++ new.nodeModulesDynamicImport(module=node18).js -@@= skipped -31, +31 lines =@@ - const { readFile } = await import("fs"); - } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.main = main; - // esm format file --export async function main() { -+async function main() { - const { readFile } = await import("fs"); - } +@@= skipped -38, +38 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js index 0544f67b1f..c313c5a4e3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js @@ -25,10 +25,9 @@ export = a; const a = {}; module.exports = a; //// [index.js] -"use strict"; // esm format file const a = {}; -module.exports = a; +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff index f91df92763..6039080c15 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node18).js.diff @@ -1,14 +1,6 @@ --- old.nodeModulesExportAssignments(module=node18).js +++ new.nodeModulesExportAssignments(module=node18).js -@@= skipped -24, +24 lines =@@ - const a = {}; - module.exports = a; - //// [index.js] -+"use strict"; - // esm format file - const a = {}; --export {}; -+module.exports = a; +@@= skipped -30, +30 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js index f558b624be..8ce6f039f9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js @@ -27,10 +27,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner")).x(); +export const a = (await import("inner")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff index 6273ee13d9..47fcb643b1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksSpecifierResolution(module=node18).js.diff @@ -1,14 +1,9 @@ --- old.nodeModulesExportsBlocksSpecifierResolution(module=node18).js +++ new.nodeModulesExportsBlocksSpecifierResolution(module=node18).js -@@= skipped -26, +26 lines =@@ - } +@@= skipped -27, +27 lines =@@ //// [index.js] --export const a = (await import("inner")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner")).x(); + export const a = (await import("inner")).x(); + + +//// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js index f7796d030e..396ca2dfc4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js @@ -67,5 +67,4 @@ import {} from "just-types-versions/foo"; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); //// [main.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff deleted file mode 100644 index f9ce834ef0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.nodeModulesExportsBlocksTypesVersions(module=node18).js -+++ new.nodeModulesExportsBlocksTypesVersions(module=node18).js -@@= skipped -66, +66 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - //// [main.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt index 358a0e6143..5e2123c5d1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt @@ -31,4 +31,5 @@ index.ts(3,14): error TS2742: The inferred type of 'a' cannot be named without a "private": true, "type": "module", "exports": "./index.ts" - } \ No newline at end of file + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff new file mode 100644 index 0000000000..cdbbbdc879 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff @@ -0,0 +1,7 @@ +--- old.nodeModulesExportsSourceTs(module=node16).errors.txt ++++ new.nodeModulesExportsSourceTs(module=node16).errors.txt +@@= skipped -31, +31 lines =@@ + "type": "module", + "exports": "./index.ts" + } ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js index 40ad0b0219..5f4f5d5c97 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js @@ -25,7 +25,8 @@ export const x: () => Thing = null as any; "private": true, "type": "module", "exports": "./index.ts" -} +} + //// [other.js] export const x = null; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff index 92d3bf86a9..c421b67a5b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff @@ -1,6 +1,14 @@ --- old.nodeModulesExportsSourceTs(module=node16).js +++ new.nodeModulesExportsSourceTs(module=node16).js -@@= skipped -36, +36 lines =@@ +@@= skipped -26, +26 lines =@@ + "exports": "./index.ts" + } + ++ + //// [other.js] + export const x = null; + //// [index.js] +@@= skipped -10, +11 lines =@@ //// [other.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt index 358a0e6143..5e2123c5d1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt @@ -31,4 +31,5 @@ index.ts(3,14): error TS2742: The inferred type of 'a' cannot be named without a "private": true, "type": "module", "exports": "./index.ts" - } \ No newline at end of file + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff new file mode 100644 index 0000000000..7e96745a87 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff @@ -0,0 +1,7 @@ +--- old.nodeModulesExportsSourceTs(module=node18).errors.txt ++++ new.nodeModulesExportsSourceTs(module=node18).errors.txt +@@= skipped -31, +31 lines =@@ + "type": "module", + "exports": "./index.ts" + } ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js index b0fd44dec1..5f4f5d5c97 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js @@ -25,25 +25,16 @@ export const x: () => Thing = null as any; "private": true, "type": "module", "exports": "./index.ts" -} +} + //// [other.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; -exports.x = null; +export const x = null; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file -const other_js_1 = require("./other.js"); -Object.defineProperty(exports, "x", { enumerable: true, get: function () { return other_js_1.x; } }); +export { x } from "./other.js"; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner")).x(); +export const a = (await import("inner")).x(); //// [other.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff index e10d35ccab..438d34d148 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff @@ -1,28 +1,14 @@ --- old.nodeModulesExportsSourceTs(module=node18).js +++ new.nodeModulesExportsSourceTs(module=node18).js -@@= skipped -27, +27 lines =@@ +@@= skipped -26, +26 lines =@@ + "exports": "./index.ts" } ++ //// [other.js] --export const x = null; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+exports.x = null; + export const x = null; //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file --export { x } from "./other.js"; -+const other_js_1 = require("./other.js"); -+Object.defineProperty(exports, "x", { enumerable: true, get: function () { return other_js_1.x; } }); - //// [index.js] --export const a = (await import("inner")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner")).x(); +@@= skipped -10, +11 lines =@@ //// [other.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt index 358a0e6143..5e2123c5d1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt @@ -31,4 +31,5 @@ index.ts(3,14): error TS2742: The inferred type of 'a' cannot be named without a "private": true, "type": "module", "exports": "./index.ts" - } \ No newline at end of file + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff new file mode 100644 index 0000000000..33874f4af6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff @@ -0,0 +1,7 @@ +--- old.nodeModulesExportsSourceTs(module=nodenext).errors.txt ++++ new.nodeModulesExportsSourceTs(module=nodenext).errors.txt +@@= skipped -31, +31 lines =@@ + "type": "module", + "exports": "./index.ts" + } ++ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js index 40ad0b0219..5f4f5d5c97 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js @@ -25,7 +25,8 @@ export const x: () => Thing = null as any; "private": true, "type": "module", "exports": "./index.ts" -} +} + //// [other.js] export const x = null; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff index b5a19f47ad..fef8635cfd 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff @@ -1,6 +1,14 @@ --- old.nodeModulesExportsSourceTs(module=nodenext).js +++ new.nodeModulesExportsSourceTs(module=nodenext).js -@@= skipped -36, +36 lines =@@ +@@= skipped -26, +26 lines =@@ + "exports": "./index.ts" + } + ++ + //// [other.js] + export const x = null; + //// [index.js] +@@= skipped -10, +11 lines =@@ //// [other.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js index 0b91e6e8c2..5db58ae2f7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js @@ -34,10 +34,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner")).x(); +export const a = (await import("inner")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff deleted file mode 100644 index 7f96d4e79d..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationConditions(module=node18).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.nodeModulesExportsSpecifierGenerationConditions(module=node18).js -+++ new.nodeModulesExportsSpecifierGenerationConditions(module=node18).js -@@= skipped -33, +33 lines =@@ - } - - //// [index.js] --export const a = (await import("inner")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner")).x(); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js index a29dc3b42f..c0d6b006b3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js @@ -29,10 +29,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner/index.js")).x(); +export const a = (await import("inner/index.js")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff deleted file mode 100644 index 266c59ef77..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationDirectory(module=node18).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.nodeModulesExportsSpecifierGenerationDirectory(module=node18).js -+++ new.nodeModulesExportsSpecifierGenerationDirectory(module=node18).js -@@= skipped -28, +28 lines =@@ - } - - //// [index.js] --export const a = (await import("inner/index.js")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner/index.js")).x(); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js index 691f9516da..dcdd62bed6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js @@ -29,10 +29,7 @@ export const x: () => Thing; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.a = void 0; -exports.a = (await import("inner/index.js")).x(); +export const a = (await import("inner/index.js")).x(); //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff deleted file mode 100644 index dd2a33ad0f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSpecifierGenerationPattern(module=node18).js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.nodeModulesExportsSpecifierGenerationPattern(module=node18).js -+++ new.nodeModulesExportsSpecifierGenerationPattern(module=node18).js -@@= skipped -28, +28 lines =@@ - } - - //// [index.js] --export const a = (await import("inner/index.js")).x(); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.a = void 0; -+exports.a = (await import("inner/index.js")).x(); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js index 74838d8ee3..6971e6bd1f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js @@ -81,12 +81,9 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -102,26 +99,17 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -130,12 +118,9 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -144,12 +129,9 @@ exports.x = void 0; const x = () => (void 0); exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = () => (void 0); -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff index acf7db9767..2f8d7ce15b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node18).js.diff @@ -1,63 +1,9 @@ --- old.nodeModulesForbidenSyntax(module=node18).js +++ new.nodeModulesForbidenSyntax(module=node18).js -@@= skipped -80, +80 lines =@@ - const x = () => (void 0); - exports.x = x; - //// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.js] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.mjs] --// esm format file --const x = () => (void 0); --export { x }; --//// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; --// cjs format file --const x = () => (void 0); --exports.x = x; --//// [index.js] --// esm format file --const x = () => (void 0); --export { x }; -- -- --//// [index.d.ts] +@@= skipped -134, +134 lines =@@ + + + //// [index.d.ts] -declare const x: () => T; -export { x }; -//// [index.d.cts] @@ -91,78 +37,6 @@ -declare const x: () => T; -export { x }; -//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.cjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// cjs format file -+const x = () => (void 0); -+exports.x = x; -+//// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; -+// esm format file -+const x = () => (void 0); -+exports.x = x; -+ -+ -+//// [index.d.ts] +// cjs format file +declare const x: () => T; +export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js index 6c9362e51d..f6d7e91e77 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js @@ -39,18 +39,13 @@ class Object { exports.Object = Object; exports.__esModule = false; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Object = exports.exports = exports.__esModule = void 0; -exports.require = require; // esm format file function require() { } const exports = {}; -exports.exports = exports; class Object { } -exports.Object = Object; -exports.__esModule = false; +export const __esModule = false; +export { require, exports, Object }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff index d18df47808..77e75ace75 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node18).js.diff @@ -1,23 +1,6 @@ --- old.nodeModulesGeneratedNameCollisions(module=node18).js +++ new.nodeModulesGeneratedNameCollisions(module=node18).js -@@= skipped -38, +38 lines =@@ - exports.Object = Object; - exports.__esModule = false; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.Object = exports.exports = exports.__esModule = void 0; -+exports.require = require; - // esm format file - function require() { } - const exports = {}; -+exports.exports = exports; - class Object { - } --export const __esModule = false; --export { require, exports, Object }; -+exports.Object = Object; -+exports.__esModule = false; +@@= skipped -48, +48 lines =@@ //// [index.d.ts] @@ -25,7 +8,7 @@ declare function require(): void; declare const exports: {}; declare class Object { -@@= skipped -17, +23 lines =@@ +@@= skipped -7, +8 lines =@@ export declare const __esModule = false; export { require, exports, Object }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js index e8d43f0ad3..091166d523 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js @@ -13,8 +13,7 @@ const json2 = import("./package.json", { assert: { type: "json" } }); // should } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [otherc.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff deleted file mode 100644 index d7362002ab..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportAssertions(module=node18).js -+++ new.nodeModulesImportAssertions(module=node18).js -@@= skipped -12, +12 lines =@@ - } - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [otherc.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js index 4a8f44fd00..c73ff1177a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js @@ -38,21 +38,23 @@ const fs = require("fs"); fs.readFile; exports.fs2 = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire } from "module"; +const __require = _createRequire(import.meta.url); // esm format file -const fs = require("fs"); +const fs = __require("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require("fs"); +export { fs2 }; //// [file.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +import { createRequire as _createRequire_1 } from "module"; +const __require_1 = _createRequire_1(import.meta.url); // esm format file const __require = null; const _createRequire = null; -const fs = require("fs"); +const fs = __require_1("fs"); fs.readFile; -exports.fs2 = require("fs"); +const fs2 = __require_1("fs"); +export { fs2 }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff deleted file mode 100644 index cb056d2ff3..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node18).js.diff +++ /dev/null @@ -1,34 +0,0 @@ ---- old.nodeModulesImportAssignments(module=node18).js -+++ new.nodeModulesImportAssignments(module=node18).js -@@= skipped -37, +37 lines =@@ - fs.readFile; - exports.fs2 = require("fs"); - //// [index.js] --import { createRequire as _createRequire } from "module"; --const __require = _createRequire(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --const fs = __require("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require("fs"); --export { fs2 }; -+exports.fs2 = require("fs"); - //// [file.js] --import { createRequire as _createRequire_1 } from "module"; --const __require_1 = _createRequire_1(import.meta.url); -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file - const __require = null; - const _createRequire = null; --const fs = __require_1("fs"); -+const fs = require("fs"); - fs.readFile; --const fs2 = __require_1("fs"); --export { fs2 }; -+exports.fs2 = require("fs"); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js index 9653caaf24..fb3984fd32 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js @@ -14,8 +14,7 @@ const json2 = import("./package.json", { with: { type: "json" } }); // should be //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [otherc.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff deleted file mode 100644 index 07ba2cc729..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportAttributes(module=node18).js -+++ new.nodeModulesImportAttributes(module=node18).js -@@= skipped -13, +13 lines =@@ - - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [otherc.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js index 69c5d82a55..afe399f85b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js @@ -33,8 +33,7 @@ export type { ImportInterface } from "pkg" with { "resolution-mode": "import" }; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff deleted file mode 100644 index 146f1252d6..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js -+++ new.nodeModulesImportAttributesModeDeclarationEmit2(module=node18).js -@@= skipped -32, +32 lines =@@ - - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js index aab681b9db..3d9892e080 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js @@ -38,12 +38,10 @@ fs_1.default.readFile; const fs = require("fs"); fs.readFile; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const fs_1 = require("fs"); -fs_1.default.readFile; -const fs = require("fs"); +import { default as _fs } from "fs"; +_fs.readFile; +import * as fs from "fs"; fs.readFile; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff index 786cbf3cc6..09914a654b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node18).js.diff @@ -13,14 +13,4 @@ +const fs = require("fs"); fs.readFile; //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import { default as _fs } from "fs"; --_fs.readFile; --import * as fs from "fs"; -+const fs_1 = require("fs"); -+fs_1.default.readFile; -+const fs = require("fs"); - fs.readFile; - + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js index 8dd77961a8..898916a8c8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js @@ -34,13 +34,9 @@ const tslib_1 = require("tslib"); tslib_1.__exportStar(require("fs"), exports); exports.fs = require("fs"); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.fs = void 0; -const tslib_1 = require("tslib"); // esm format file -__exportStar(require("fs"), exports); -exports.fs = require("fs"); +export * from "fs"; +export * as fs from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff index c14f215bf2..93658bb97c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node18).js.diff @@ -7,29 +7,16 @@ -exports.fs = tslib_1.__importStar(require("fs")); +exports.fs = require("fs"); //// [index.js] --// esm format file --export * from "fs"; --export * as fs from "fs"; -- -- --//// [index.d.ts] --export * from "fs"; --export * as fs from "fs"; --//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.fs = void 0; -+const tslib_1 = require("tslib"); -+// esm format file -+__exportStar(require("fs"), exports); -+exports.fs = require("fs"); -+ -+ -+//// [index.d.ts] + // esm format file + export * from "fs"; +@@= skipped -8, +8 lines =@@ + + + //// [index.d.ts] +// cjs format file -+export * from "fs"; -+export * as fs from "fs"; -+//// [index.d.ts] + export * from "fs"; + export * as fs from "fs"; + //// [index.d.ts] +// esm format file export * from "fs"; export * as fs from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js index a02a775c7b..ea40ccdcd2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js @@ -31,12 +31,8 @@ exports.default = void 0; const fs_1 = require("fs"); Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; // esm format file -const fs_1 = require("fs"); -Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); +export { default } from "fs"; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff index 973473e599..025ed636d5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node18).js.diff @@ -11,24 +11,13 @@ +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); //// [index.js] --// esm format file --export { default } from "fs"; -- -- --//// [index.d.ts] --export { default } from "fs"; --//// [index.d.ts] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.default = void 0; -+// esm format file -+const fs_1 = require("fs"); -+Object.defineProperty(exports, "default", { enumerable: true, get: function () { return fs_1.default; } }); -+ -+ -+//// [index.d.ts] + // esm format file + export { default } from "fs"; + + + //// [index.d.ts] +// cjs format file -+export { default } from "fs"; -+//// [index.d.ts] + export { default } from "fs"; + //// [index.d.ts] +// esm format file export { default } from "fs"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js index 1d28f5cae8..1a527e246c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js @@ -27,12 +27,9 @@ exports.x = void 0; const x = import.meta.url; exports.x = x; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = import.meta.url; -exports.x = x; +export { x }; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff index 34da05dee1..4fcb37cf58 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node18).js.diff @@ -1,16 +1,6 @@ --- old.nodeModulesImportMeta(module=node18).js +++ new.nodeModulesImportMeta(module=node18).js -@@= skipped -26, +26 lines =@@ - const x = import.meta.url; - exports.x = x; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = import.meta.url; --export { x }; -+exports.x = x; +@@= skipped -32, +32 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js index 7495778bd6..fad19d466a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js @@ -33,8 +33,7 @@ export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff deleted file mode 100644 index 975254ff9a..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportModeDeclarationEmit2(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesImportModeDeclarationEmit2(module=node18).js -+++ new.nodeModulesImportModeDeclarationEmit2(module=node18).js -@@= skipped -32, +32 lines =@@ - - - //// [index.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - - - //// [index.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js index 1a56ef1572..5fa5db8901 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js @@ -30,16 +30,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); const type = require("#type"); type; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff index dbb658b961..7681881ed7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node18).js.diff @@ -43,17 +43,4 @@ +const type = require("#type"); type; //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); - type; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); - type; - + // esm format file \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js index 4d9239ee43..66855a1118 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js @@ -24,16 +24,12 @@ type; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const type = require("#type"); +import * as type from "#type"; type; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff index 9437116310..8dd53dfcc3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodeModulesImportResolutionNoCycle(module=node18).js +++ new.nodeModulesImportResolutionNoCycle(module=node18).js -@@= skipped -23, +23 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); - type; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as type from "#type"; -+const type = require("#type"); +@@= skipped -32, +32 lines =@@ type; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js index 4c8e3b229d..afeca4d652 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js @@ -89,18 +89,16 @@ export { type }; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; @@ -121,18 +119,16 @@ cjsi; mjsi; typei; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("package/cjs"); -const mjs = require("package/mjs"); -const type = require("package"); +import * as cjs from "package/cjs"; +import * as mjs from "package/mjs"; +import * as type from "package"; cjs; mjs; type; -const cjsi = require("inner/cjs"); -const mjsi = require("inner/mjs"); -const typei = require("inner"); +import * as cjsi from "inner/cjs"; +import * as mjsi from "inner/mjs"; +import * as typei from "inner"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff index d87bdb89ea..684c35f444 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node18).js.diff @@ -1,29 +1,6 @@ --- old.nodeModulesPackageExports(module=node18).js +++ new.nodeModulesPackageExports(module=node18).js -@@= skipped -88, +88 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; +@@= skipped -103, +103 lines =@@ typei; //// [index.cjs] "use strict"; @@ -76,28 +53,6 @@ -const typei = __importStar(require("inner")); +const cjsi = require("inner/cjs"); +const mjsi = require("inner/mjs"); -+const typei = require("inner"); - cjsi; - mjsi; - typei; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "package/cjs"; --import * as mjs from "package/mjs"; --import * as type from "package"; -+const cjs = require("package/cjs"); -+const mjs = require("package/mjs"); -+const type = require("package"); - cjs; - mjs; - type; --import * as cjsi from "inner/cjs"; --import * as mjsi from "inner/mjs"; --import * as typei from "inner"; -+const cjsi = require("inner/cjs"); -+const mjsi = require("inner/mjs"); +const typei = require("inner"); cjsi; mjsi; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js index 0144a3d9cd..c51cf9fc0d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js @@ -38,12 +38,10 @@ type; } //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; @@ -58,12 +56,10 @@ cjs; mjs; type; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjs = require("#cjs"); -const mjs = require("#mjs"); -const type = require("#type"); +import * as cjs from "#cjs"; +import * as mjs from "#mjs"; +import * as type from "#type"; cjs; mjs; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff index 6207758d64..0483f1b912 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node18).js.diff @@ -1,20 +1,6 @@ --- old.nodeModulesPackageImports(module=node18).js +++ new.nodeModulesPackageImports(module=node18).js -@@= skipped -37, +37 lines =@@ - } - - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; +@@= skipped -46, +46 lines =@@ type; //// [index.cjs] "use strict"; @@ -58,19 +44,6 @@ -const type = __importStar(require("#type")); +const cjs = require("#cjs"); +const mjs = require("#mjs"); -+const type = require("#type"); - cjs; - mjs; - type; - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjs from "#cjs"; --import * as mjs from "#mjs"; --import * as type from "#type"; -+const cjs = require("#cjs"); -+const mjs = require("#mjs"); +const type = require("#type"); cjs; mjs; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js index eea8a56131..4b17e66606 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index"); -const mjsi = require("inner/mjs/index"); -const typei = require("inner/js/index"); +import * as cjsi from "inner/cjs/index"; +import * as mjsi from "inner/mjs/index"; +import * as typei from "inner/js/index"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff index aaaf511197..ed73d7a279 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesPackagePatternExports(module=node18).js +++ new.nodeModulesPackagePatternExports(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index"; --import * as mjsi from "inner/mjs/index"; --import * as typei from "inner/js/index"; -+const cjsi = require("inner/cjs/index"); -+const mjsi = require("inner/mjs/index"); -+const typei = require("inner/js/index"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js index 47d4d67006..cea2e74915 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js @@ -111,34 +111,30 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; -const cjsi2 = require("inner/cjs/index"); -const mjsi2 = require("inner/mjs/index"); -const typei2 = require("inner/js/index"); +import * as cjsi2 from "inner/cjs/index"; +import * as mjsi2 from "inner/mjs/index"; +import * as typei2 from "inner/js/index"; cjsi2; mjsi2; typei2; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/exclude/index"); -const mjsi = require("inner/mjs/exclude/index"); -const typei = require("inner/js/exclude/index"); +import * as cjsi from "inner/cjs/exclude/index"; +import * as mjsi from "inner/mjs/exclude/index"; +import * as typei from "inner/js/exclude/index"; cjsi; mjsi; typei; -const cjsi2 = require("inner/cjs/index"); -const mjsi2 = require("inner/mjs/index"); -const typei2 = require("inner/js/index"); +import * as cjsi2 from "inner/cjs/index"; +import * as mjsi2 from "inner/mjs/index"; +import * as typei2 from "inner/js/index"; cjsi2; mjsi2; typei2; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff index 2610150cc7..069f8f4eed 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node18).js.diff @@ -1,51 +1,6 @@ --- old.nodeModulesPackagePatternExportsExclude(module=node18).js +++ new.nodeModulesPackagePatternExportsExclude(module=node18).js -@@= skipped -110, +110 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; - typei; --import * as cjsi2 from "inner/cjs/index"; --import * as mjsi2 from "inner/mjs/index"; --import * as typei2 from "inner/js/index"; -+const cjsi2 = require("inner/cjs/index"); -+const mjsi2 = require("inner/mjs/index"); -+const typei2 = require("inner/js/index"); - cjsi2; - mjsi2; - typei2; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/exclude/index"; --import * as mjsi from "inner/mjs/exclude/index"; --import * as typei from "inner/js/exclude/index"; -+const cjsi = require("inner/cjs/exclude/index"); -+const mjsi = require("inner/mjs/exclude/index"); -+const typei = require("inner/js/exclude/index"); - cjsi; - mjsi; - typei; --import * as cjsi2 from "inner/cjs/index"; --import * as mjsi2 from "inner/mjs/index"; --import * as typei2 from "inner/js/index"; -+const cjsi2 = require("inner/cjs/index"); -+const mjsi2 = require("inner/mjs/index"); -+const typei2 = require("inner/js/index"); - cjsi2; - mjsi2; +@@= skipped -139, +139 lines =@@ typei2; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js index 09239e1b57..ca0158174b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js @@ -66,22 +66,18 @@ export { type }; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const cjsi = require("inner/cjs/index.cjs"); -const mjsi = require("inner/mjs/index.mjs"); -const typei = require("inner/js/index.js"); +import * as cjsi from "inner/cjs/index.cjs"; +import * as mjsi from "inner/mjs/index.mjs"; +import * as typei from "inner/js/index.js"; cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff index 008395f2bc..54dc3740aa 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node18).js.diff @@ -1,33 +1,6 @@ --- old.nodeModulesPackagePatternExportsTrailers(module=node18).js +++ new.nodeModulesPackagePatternExportsTrailers(module=node18).js -@@= skipped -65, +65 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; - typei; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as cjsi from "inner/cjs/index.cjs"; --import * as mjsi from "inner/mjs/index.mjs"; --import * as typei from "inner/js/index.js"; -+const cjsi = require("inner/cjs/index.cjs"); -+const mjsi = require("inner/mjs/index.mjs"); -+const typei = require("inner/js/index.js"); - cjsi; - mjsi; +@@= skipped -82, +82 lines =@@ typei; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js index 7575e58f0c..87a4cfeb47 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js @@ -27,14 +27,11 @@ export const name2 = ns.default.name; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.name2 = exports.thing = exports.name = void 0; -const package_json_1 = require("./package.json"); -exports.name = package_json_1.default.name; -const ns = require("./package.json"); -exports.thing = ns; -exports.name2 = ns.default.name; +import pkg from "./package.json" with { type: "json" }; +export const name = pkg.name; +import * as ns from "./package.json" with { type: "json" }; +export const thing = ns; +export const name2 = ns.default.name; //// [index.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -45,14 +42,11 @@ const ns = require("./package.json"); exports.thing = ns; exports.name2 = ns.default.name; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.name2 = exports.thing = exports.name = void 0; -const package_json_1 = require("./package.json"); -exports.name = package_json_1.default.name; -const ns = require("./package.json"); -exports.thing = ns; -exports.name2 = ns.default.name; +import pkg from "./package.json" with { type: "json" }; +export const name = pkg.name; +import * as ns from "./package.json" with { type: "json" }; +export const thing = ns; +export const name2 = ns.default.name; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff index 2a50e0db74..3e647c09ed 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node18).js.diff @@ -12,19 +12,10 @@ - "default": "misedirection" -} //// [index.js] --import pkg from "./package.json" with { type: "json" }; --export const name = pkg.name; --import * as ns from "./package.json" with { type: "json" }; --export const thing = ns; --export const name2 = ns.default.name; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.name2 = exports.thing = exports.name = void 0; -+const package_json_1 = require("./package.json"); -+exports.name = package_json_1.default.name; -+const ns = require("./package.json"); -+exports.thing = ns; -+exports.name2 = ns.default.name; + import pkg from "./package.json" with { type: "json" }; + export const name = pkg.name; +@@= skipped -15, +8 lines =@@ + export const name2 = ns.default.name; //// [index.cjs] "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { @@ -73,23 +64,7 @@ exports.thing = ns; exports.name2 = ns.default.name; //// [index.mjs] --import pkg from "./package.json" with { type: "json" }; --export const name = pkg.name; --import * as ns from "./package.json" with { type: "json" }; --export const thing = ns; --export const name2 = ns.default.name; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.name2 = exports.thing = exports.name = void 0; -+const package_json_1 = require("./package.json"); -+exports.name = package_json_1.default.name; -+const ns = require("./package.json"); -+exports.thing = ns; -+exports.name2 = ns.default.name; - - - //// [index.d.ts] -@@= skipped -78, +41 lines =@@ +@@= skipped -63, +27 lines =@@ }; export declare const name2: string; //// [index.d.cts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js index 0b0f71fc7f..f317196b7b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js @@ -34,14 +34,11 @@ export async function h() { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.h = h; -const index_js_1 = require("./subfolder/index.js"); -async function h() { +import { f } from "./subfolder/index.js"; +export async function h() { const mod3 = await import("./index.js"); const mod4 = await import("./subfolder/index.js"); - (0, index_js_1.f)(); + f(); } //// [index.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff deleted file mode 100644 index 05eff5db29..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node18).js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.nodeModulesSynchronousCallErrors(module=node18).js -+++ new.nodeModulesSynchronousCallErrors(module=node18).js -@@= skipped -33, +33 lines =@@ - } - - //// [index.js] --import { f } from "./subfolder/index.js"; --export async function h() { -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.h = h; -+const index_js_1 = require("./subfolder/index.js"); -+async function h() { - const mod3 = await import("./index.js"); - const mod4 = await import("./subfolder/index.js"); -- f(); -+ (0, index_js_1.f)(); - } - //// [index.js] - "use strict"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js index d55f8ee5af..322d38627a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js @@ -30,12 +30,9 @@ const x = await 1; exports.x = x; for await (const y of []) { } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.x = void 0; // esm format file const x = await 1; -exports.x = x; +export { x }; for await (const y of []) { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff index 3aee12d2da..0f17fbb0a0 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node18).js.diff @@ -1,17 +1,6 @@ --- old.nodeModulesTopLevelAwait(module=node18).js +++ new.nodeModulesTopLevelAwait(module=node18).js -@@= skipped -29, +29 lines =@@ - exports.x = x; - for await (const y of []) { } - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.x = void 0; - // esm format file - const x = await 1; --export { x }; -+exports.x = x; - for await (const y of []) { } +@@= skipped -36, +36 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js index ad43258895..1ba9e42041 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js @@ -29,9 +29,8 @@ declare global { export interface LocalInterface extends ImportInterface {} //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff index 8029440b1d..76d0ce5cc5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js.diff @@ -1,13 +1,6 @@ --- old.nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js +++ new.nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node18).js -@@= skipped -28, +28 lines =@@ - export interface LocalInterface extends ImportInterface {} - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// --export {}; +@@= skipped -33, +33 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js index e2101c5b26..015af34735 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js @@ -29,9 +29,8 @@ declare global { export interface LocalInterface extends RequireInterface {} //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// +export {}; //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff index b9f38be185..67dcd3a69e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js.diff @@ -1,13 +1,6 @@ --- old.nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js +++ new.nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node18).js -@@= skipped -28, +28 lines =@@ - export interface LocalInterface extends RequireInterface {} - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// --export {}; +@@= skipped -33, +33 lines =@@ //// [index.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js index bb5bbb5856..41e3b9ac02 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js @@ -49,22 +49,18 @@ import obj2 from "./sub2/uses.js" export default [obj1, obj2.default] as const; //// [uses.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// -exports.default = getInterI(); +export default getInterI(); //// [uses.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /// exports.default = getInterR(); //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // only an esm file can `import` both kinds of files -const uses_js_1 = require("./sub1/uses.js"); -const uses_js_2 = require("./sub2/uses.js"); -exports.default = [uses_js_1.default, uses_js_2.default.default]; +import obj1 from "./sub1/uses.js"; +import obj2 from "./sub2/uses.js"; +export default [obj1, obj2.default]; //// [uses.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff index b6bda16489..819efaa96f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js.diff @@ -1,29 +1,6 @@ --- old.nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js +++ new.nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node18).js -@@= skipped -48, +48 lines =@@ - export default [obj1, obj2.default] as const; - - //// [uses.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// --export default getInterI(); -+exports.default = getInterI(); - //// [uses.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /// - exports.default = getInterR(); - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // only an esm file can `import` both kinds of files --import obj1 from "./sub1/uses.js"; --import obj2 from "./sub2/uses.js"; --export default [obj1, obj2.default]; -+const uses_js_1 = require("./sub1/uses.js"); -+const uses_js_2 = require("./sub2/uses.js"); -+exports.default = [uses_js_1.default, uses_js_2.default.default]; +@@= skipped -63, +63 lines =@@ //// [uses.d.ts] @@ -35,7 +12,7 @@ declare const _default: RequireInterface; export default _default; //// [index.d.ts] -@@= skipped -64, +66 lines =@@ +@@= skipped -49, +47 lines =@@ function getInterR(): RequireInterface; } ==== out/sub1/uses.d.ts (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js index 70cf2e6b25..aee176689b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js @@ -31,8 +31,7 @@ bar; export {}; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// foo; // foo should resolve while bar should not, since index.js is esm bar; +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff deleted file mode 100644 index f1b7a36bca..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride2(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesTripleSlashReferenceModeOverride2(module=node18).js -+++ new.nodeModulesTripleSlashReferenceModeOverride2(module=node18).js -@@= skipped -30, +30 lines =@@ - export {}; - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// - foo; // foo should resolve while bar should not, since index.js is esm - bar; --export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js index 7bde651a81..c6806f897d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js @@ -31,8 +31,7 @@ bar; // bar should resolve while foo should not, since even though index.js is e export {}; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); /// foo; bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff deleted file mode 100644 index 3cead8cad9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeOverride3(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.nodeModulesTripleSlashReferenceModeOverride3(module=node18).js -+++ new.nodeModulesTripleSlashReferenceModeOverride3(module=node18).js -@@= skipped -30, +30 lines =@@ - export {}; - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - /// - foo; - bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs --export {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js index d2267d0661..e134277196 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js @@ -52,16 +52,12 @@ export const futureVersionApplied = true; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const mod = require("inner"); +import * as mod from "inner"; mod.correctVersionApplied; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const mod = require("inner"); +import * as mod from "inner"; mod.correctVersionApplied; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff index 7120d13e9c..ef3e0f5684 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodeModulesTypesVersionPackageExports(module=node18).js +++ new.nodeModulesTypesVersionPackageExports(module=node18).js -@@= skipped -51, +51 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as mod from "inner"; -+const mod = require("inner"); - mod.correctVersionApplied; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as mod from "inner"; -+const mod = require("inner"); +@@= skipped -60, +60 lines =@@ mod.correctVersionApplied; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js index 808f7208b8..e1a383e4d9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js @@ -21,16 +21,12 @@ self; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("package"); +import * as self from "package"; self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff index 419b17006a..6f36f54177 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodePackageSelfName(module=node18).js +++ new.nodePackageSelfName(module=node18).js -@@= skipped -20, +20 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); - self; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "package"; -+const self = require("package"); +@@= skipped -29, +29 lines =@@ self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js index 0ab838fc3e..d8b9f2d540 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js @@ -21,16 +21,12 @@ self; } //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("@scope/package"); +import * as self from "@scope/package"; self; //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); // esm format file -const self = require("@scope/package"); +import * as self from "@scope/package"; self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff index b0e6f1c773..fae08d9236 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node18).js.diff @@ -1,21 +1,6 @@ --- old.nodePackageSelfNameScoped(module=node18).js +++ new.nodePackageSelfNameScoped(module=node18).js -@@= skipped -20, +20 lines =@@ - } - - //// [index.js] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "@scope/package"; -+const self = require("@scope/package"); - self; - //// [index.mjs] -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - // esm format file --import * as self from "@scope/package"; -+const self = require("@scope/package"); +@@= skipped -29, +29 lines =@@ self; //// [index.cjs] "use strict"; diff --git a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js b/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js index 7952812e2f..117d199aa7 100644 --- a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js @@ -11,5 +11,4 @@ import {} from "./example.json" with { type: "json" }; // Ok import {} from "./styles.css"; // Ok //// [index.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff deleted file mode 100644 index 8a2da2c058..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nonTSExtensions(module=node18).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.nonTSExtensions(module=node18).js -+++ new.nonTSExtensions(module=node18).js -@@= skipped -10, +10 lines =@@ - import {} from "./styles.css"; // Ok - - //// [index.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js b/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js index c735076d9e..5a0805f046 100644 --- a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js @@ -28,14 +28,10 @@ import {} from "#internal/foo.ts"; // Error import {} from "pkg/foo.ts"; // Ok //// [foo.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [foo.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [index.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const _foo_ts_1 = require("#foo.ts"); // Ok -const foo_ts_1 = require("#internal/foo.ts"); // Error -const foo_ts_2 = require("pkg/foo.ts"); // Ok +import {} from "#foo.ts"; // Ok +import {} from "#internal/foo.ts"; // Error +import {} from "pkg/foo.ts"; // Ok diff --git a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff deleted file mode 100644 index e94f0783f4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/packageJsonImportsErrors(module=node18).js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.packageJsonImportsErrors(module=node18).js -+++ new.packageJsonImportsErrors(module=node18).js -@@= skipped -27, +27 lines =@@ - import {} from "pkg/foo.ts"; // Ok - - //// [foo.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [foo.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [index.js] --import {} from "#foo.ts"; // Ok --import {} from "#internal/foo.ts"; // Error --import {} from "pkg/foo.ts"; // Ok -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+const _foo_ts_1 = require("#foo.ts"); // Ok -+const foo_ts_1 = require("#internal/foo.ts"); // Error -+const foo_ts_2 = require("pkg/foo.ts"); // Ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js index 5ba6ae1ae7..01b406ded5 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js @@ -13,8 +13,7 @@ type _3 = typeof import("./module.mts", { with: { "resolution-mode": "require" } //// [module.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; //// [common.cjs] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff deleted file mode 100644 index 91e7042d3e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS(module=node18).js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.typeOnlyESMImportFromCJS(module=node18).js -+++ new.typeOnlyESMImportFromCJS(module=node18).js -@@= skipped -12, +12 lines =@@ - - - //// [module.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); - //// [common.cjs] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file From c355fac068b9ca9ac24cdb7c11db03ee56ed093c Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:35:50 -0700 Subject: [PATCH 09/10] Fix isCommonJSContainingModuleKind --- internal/ast/utilities.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/ast/utilities.go b/internal/ast/utilities.go index 6e6fdad7c2..248db74ab3 100644 --- a/internal/ast/utilities.go +++ b/internal/ast/utilities.go @@ -1611,7 +1611,7 @@ func IsEffectiveExternalModule(node *SourceFile, compilerOptions *core.CompilerO } func isCommonJSContainingModuleKind(kind core.ModuleKind) bool { - return kind == core.ModuleKindCommonJS || kind == core.ModuleKindNode16 || kind == core.ModuleKindNodeNext + return kind == core.ModuleKindCommonJS || core.ModuleKindNode16 <= kind && kind <= core.ModuleKindNodeNext } func IsExternalModuleIndicator(node *Statement) bool { From 833f6f0955d3c7c762234879db3ac8f3db4b3227 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:40:34 -0700 Subject: [PATCH 10/10] oops --- ...odeModulesExportsSourceTs(module=node16).errors.txt | 3 +-- ...dulesExportsSourceTs(module=node16).errors.txt.diff | 7 ------- .../nodeModulesExportsSourceTs(module=node16).js | 3 +-- .../nodeModulesExportsSourceTs(module=node16).js.diff | 10 +--------- ...odeModulesExportsSourceTs(module=node18).errors.txt | 3 +-- ...dulesExportsSourceTs(module=node18).errors.txt.diff | 7 ------- .../nodeModulesExportsSourceTs(module=node18).js | 3 +-- .../nodeModulesExportsSourceTs(module=node18).js.diff | 10 +--------- ...eModulesExportsSourceTs(module=nodenext).errors.txt | 3 +-- ...lesExportsSourceTs(module=nodenext).errors.txt.diff | 7 ------- .../nodeModulesExportsSourceTs(module=nodenext).js | 3 +-- ...nodeModulesExportsSourceTs(module=nodenext).js.diff | 10 +--------- 12 files changed, 9 insertions(+), 60 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt index 5e2123c5d1..358a0e6143 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt @@ -31,5 +31,4 @@ index.ts(3,14): error TS2742: The inferred type of 'a' cannot be named without a "private": true, "type": "module", "exports": "./index.ts" - } - \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff deleted file mode 100644 index cdbbbdc879..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).errors.txt.diff +++ /dev/null @@ -1,7 +0,0 @@ ---- old.nodeModulesExportsSourceTs(module=node16).errors.txt -+++ new.nodeModulesExportsSourceTs(module=node16).errors.txt -@@= skipped -31, +31 lines =@@ - "type": "module", - "exports": "./index.ts" - } -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js index 5f4f5d5c97..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js @@ -25,8 +25,7 @@ export const x: () => Thing = null as any; "private": true, "type": "module", "exports": "./index.ts" -} - +} //// [other.js] export const x = null; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff index c421b67a5b..92d3bf86a9 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node16).js.diff @@ -1,14 +1,6 @@ --- old.nodeModulesExportsSourceTs(module=node16).js +++ new.nodeModulesExportsSourceTs(module=node16).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } - -+ - //// [other.js] - export const x = null; - //// [index.js] -@@= skipped -10, +11 lines =@@ +@@= skipped -36, +36 lines =@@ //// [other.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt index 5e2123c5d1..358a0e6143 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt @@ -31,5 +31,4 @@ index.ts(3,14): error TS2742: The inferred type of 'a' cannot be named without a "private": true, "type": "module", "exports": "./index.ts" - } - \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff deleted file mode 100644 index 7e96745a87..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).errors.txt.diff +++ /dev/null @@ -1,7 +0,0 @@ ---- old.nodeModulesExportsSourceTs(module=node18).errors.txt -+++ new.nodeModulesExportsSourceTs(module=node18).errors.txt -@@= skipped -31, +31 lines =@@ - "type": "module", - "exports": "./index.ts" - } -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js index 5f4f5d5c97..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js @@ -25,8 +25,7 @@ export const x: () => Thing = null as any; "private": true, "type": "module", "exports": "./index.ts" -} - +} //// [other.js] export const x = null; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff index 438d34d148..01e4bdcd4a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=node18).js.diff @@ -1,14 +1,6 @@ --- old.nodeModulesExportsSourceTs(module=node18).js +++ new.nodeModulesExportsSourceTs(module=node18).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } - -+ - //// [other.js] - export const x = null; - //// [index.js] -@@= skipped -10, +11 lines =@@ +@@= skipped -36, +36 lines =@@ //// [other.d.ts] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt index 5e2123c5d1..358a0e6143 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt @@ -31,5 +31,4 @@ index.ts(3,14): error TS2742: The inferred type of 'a' cannot be named without a "private": true, "type": "module", "exports": "./index.ts" - } - \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff deleted file mode 100644 index 33874f4af6..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).errors.txt.diff +++ /dev/null @@ -1,7 +0,0 @@ ---- old.nodeModulesExportsSourceTs(module=nodenext).errors.txt -+++ new.nodeModulesExportsSourceTs(module=nodenext).errors.txt -@@= skipped -31, +31 lines =@@ - "type": "module", - "exports": "./index.ts" - } -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js index 5f4f5d5c97..40ad0b0219 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js @@ -25,8 +25,7 @@ export const x: () => Thing = null as any; "private": true, "type": "module", "exports": "./index.ts" -} - +} //// [other.js] export const x = null; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff index fef8635cfd..b5a19f47ad 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsSourceTs(module=nodenext).js.diff @@ -1,14 +1,6 @@ --- old.nodeModulesExportsSourceTs(module=nodenext).js +++ new.nodeModulesExportsSourceTs(module=nodenext).js -@@= skipped -26, +26 lines =@@ - "exports": "./index.ts" - } - -+ - //// [other.js] - export const x = null; - //// [index.js] -@@= skipped -10, +11 lines =@@ +@@= skipped -36, +36 lines =@@ //// [other.d.ts]