diff --git a/internal/ast/ast.go b/internal/ast/ast.go index 5acec0a301..d55fa17e52 100644 --- a/internal/ast/ast.go +++ b/internal/ast/ast.go @@ -8666,6 +8666,11 @@ type CommentDirective struct { // SourceFile +type SourceFileMetaData struct { + PackageJsonType string + ImpliedNodeFormat core.ResolutionMode +} + type SourceFile struct { NodeBase DeclarationBase @@ -8726,7 +8731,6 @@ type SourceFile struct { // !!! - ImpliedNodeFormat core.ModuleKind CommonJsModuleIndicator *Node ExternalModuleIndicator *Node JsGlobalAugmentations SymbolTable @@ -8811,7 +8815,6 @@ func (node *SourceFile) copyFrom(other *SourceFile) { node.ReferencedFiles = other.ReferencedFiles node.TypeReferenceDirectives = other.TypeReferenceDirectives node.LibReferenceDirectives = other.LibReferenceDirectives - node.ImpliedNodeFormat = other.ImpliedNodeFormat node.CommonJsModuleIndicator = other.CommonJsModuleIndicator node.ExternalModuleIndicator = other.ExternalModuleIndicator node.JsGlobalAugmentations = other.JsGlobalAugmentations diff --git a/internal/ast/utilities.go b/internal/ast/utilities.go index 18e220157b..283e54895c 100644 --- a/internal/ast/utilities.go +++ b/internal/ast/utilities.go @@ -2354,27 +2354,40 @@ func IsDefaultImport(node *Node /*ImportDeclaration | ImportEqualsDeclaration | return importClause != nil && importClause.AsImportClause().name != nil } -func GetEmitModuleFormatOfFileWorker(sourceFile *SourceFile, options *core.CompilerOptions) core.ModuleKind { - result := GetImpliedNodeFormatForEmitWorker(sourceFile, options) +func GetImpliedNodeFormatForFile(path string, packageJsonType string) core.ModuleKind { + impliedNodeFormat := core.ResolutionModeNone + if tspath.FileExtensionIsOneOf(path, []string{tspath.ExtensionDmts, tspath.ExtensionMts, tspath.ExtensionMjs}) { + impliedNodeFormat = core.ResolutionModeESM + } else if tspath.FileExtensionIsOneOf(path, []string{tspath.ExtensionDcts, tspath.ExtensionCts, tspath.ExtensionCjs}) { + impliedNodeFormat = core.ResolutionModeCommonJS + } else if packageJsonType != "" && tspath.FileExtensionIsOneOf(path, []string{tspath.ExtensionDts, tspath.ExtensionTs, tspath.ExtensionTsx, tspath.ExtensionJs, tspath.ExtensionJsx}) { + impliedNodeFormat = core.IfElse(packageJsonType == "module", core.ResolutionModeESM, core.ResolutionModeCommonJS) + } + + return impliedNodeFormat +} + +func GetEmitModuleFormatOfFileWorker(sourceFile *SourceFile, options *core.CompilerOptions, sourceFileMetaData *SourceFileMetaData) core.ModuleKind { + result := GetImpliedNodeFormatForEmitWorker(sourceFile.FileName(), options, sourceFileMetaData) if result != core.ModuleKindNone { return result } return options.GetEmitModuleKind() } -func GetImpliedNodeFormatForEmitWorker(sourceFile *SourceFile, options *core.CompilerOptions) core.ResolutionMode { +func GetImpliedNodeFormatForEmitWorker(fileName string, options *core.CompilerOptions, sourceFileMetaData *SourceFileMetaData) core.ModuleKind { moduleKind := options.GetEmitModuleKind() - if core.ModuleKindNode16 <= moduleKind && moduleKind <= core.ModuleKindNodeNext { - return sourceFile.ImpliedNodeFormat + if core.ModuleKindNode16 <= moduleKind && moduleKind <= core.ModuleKindNodeNext && sourceFileMetaData != nil { + return sourceFileMetaData.ImpliedNodeFormat } - if sourceFile.ImpliedNodeFormat == core.ModuleKindCommonJS && - ( /*sourceFile.packageJsonScope.contents.packageJsonContent.type == "commonjs" ||*/ // !!! - tspath.FileExtensionIsOneOf(sourceFile.FileName(), []string{tspath.ExtensionCjs, tspath.ExtensionCts})) { + if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS && + (sourceFileMetaData.PackageJsonType != "module" || + tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionCjs, tspath.ExtensionCts})) { return core.ModuleKindCommonJS } - if sourceFile.ImpliedNodeFormat == core.ModuleKindESNext && - ( /*sourceFile.packageJsonScope?.contents.packageJsonContent.type === "module" ||*/ // !!! - tspath.FileExtensionIsOneOf(sourceFile.fileName, []string{tspath.ExtensionMjs, tspath.ExtensionMts})) { + if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindESNext && + (sourceFileMetaData.PackageJsonType == "module" || + tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionMjs, tspath.ExtensionMts})) { return core.ModuleKindESNext } return core.ModuleKindNone diff --git a/internal/checker/checker.go b/internal/checker/checker.go index 9d3aadbce1..e78c0abca0 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -514,6 +514,7 @@ type Program interface { GetEmitModuleFormatOfFile(sourceFile *ast.SourceFile) core.ModuleKind GetImpliedNodeFormatForEmit(sourceFile *ast.SourceFile) core.ModuleKind GetResolvedModule(currentSourceFile *ast.SourceFile, moduleReference string) *ast.SourceFile + GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData } type Host interface{} diff --git a/internal/checker/grammarchecks.go b/internal/checker/grammarchecks.go index 15a5e4e7bb..fd083f5430 100644 --- a/internal/checker/grammarchecks.go +++ b/internal/checker/grammarchecks.go @@ -1217,7 +1217,8 @@ func (c *Checker) checkGrammarForInOrForOfStatement(forInOrOfStatement *ast.ForI } switch c.moduleKind { case core.ModuleKindNode16, core.ModuleKindNodeNext: - if sourceFile.ImpliedNodeFormat == core.ModuleKindCommonJS { + sourceFileMetaData := c.program.GetSourceFileMetaData(sourceFile.Path()) + if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS { c.diagnostics.Add(createDiagnosticForNode(forInOrOfStatement.AwaitModifier, diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)) break } @@ -1719,7 +1720,8 @@ func (c *Checker) checkGrammarAwaitOrAwaitUsing(node *ast.Node) bool { switch c.moduleKind { case core.ModuleKindNode16, core.ModuleKindNodeNext: - if sourceFile.ImpliedNodeFormat == core.ModuleKindCommonJS { + sourceFileMetaData := c.program.GetSourceFileMetaData(sourceFile.Path()) + if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS { if !spanCalculated { span = scanner.GetRangeOfTokenAtPosition(sourceFile, node.Pos()) } diff --git a/internal/compiler/emitHost.go b/internal/compiler/emitHost.go index 875afd34c0..01445eeb10 100644 --- a/internal/compiler/emitHost.go +++ b/internal/compiler/emitHost.go @@ -4,6 +4,7 @@ import ( "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/printer" + "github.com/microsoft/typescript-go/internal/tspath" ) type WriteFileData struct { @@ -23,6 +24,7 @@ type EmitHost interface { CommonSourceDirectory() string IsEmitBlocked(file string) bool WriteFile(fileName string, text string, writeByteOrderMark bool, relatedSourceFiles []*ast.SourceFile, data *WriteFileData) error + GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool) printer.EmitResolver } @@ -54,3 +56,7 @@ func (host *emitHost) GetEmitResolver(file *ast.SourceFile, skipDiagnostics bool checker := host.program.GetTypeCheckerForFile(file) return checker.GetEmitResolver(file, skipDiagnostics) } + +func (host *emitHost) GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData { + return host.program.GetSourceFileMetaData(path) +} diff --git a/internal/compiler/emitter.go b/internal/compiler/emitter.go index db477bc669..657a0db6c3 100644 --- a/internal/compiler/emitter.go +++ b/internal/compiler/emitter.go @@ -38,13 +38,13 @@ func (e *emitter) emit() { e.emitBuildInfo(e.paths.buildInfoPath) } -func (e *emitter) getModuleTransformer(emitContext *printer.EmitContext, resolver binder.ReferenceResolver) *transformers.Transformer { +func (e *emitter) getModuleTransformer(emitContext *printer.EmitContext, resolver binder.ReferenceResolver, sourceFileMetaDataProvider printer.SourceFileMetaDataProvider) *transformers.Transformer { options := e.host.Options() switch options.GetEmitModuleKind() { case core.ModuleKindPreserve: // `ESModuleTransformer` contains logic for preserving CJS input syntax in `--module preserve` - return transformers.NewESModuleTransformer(emitContext, options, resolver) + return transformers.NewESModuleTransformer(emitContext, options, resolver, sourceFileMetaDataProvider) case core.ModuleKindESNext, core.ModuleKindES2022, @@ -53,10 +53,10 @@ func (e *emitter) getModuleTransformer(emitContext *printer.EmitContext, resolve core.ModuleKindNode16, core.ModuleKindNodeNext, core.ModuleKindCommonJS: - return transformers.NewImpliedModuleTransformer(emitContext, options, resolver) + return transformers.NewImpliedModuleTransformer(emitContext, options, resolver, sourceFileMetaDataProvider) default: - return transformers.NewCommonJSModuleTransformer(emitContext, options, resolver) + return transformers.NewCommonJSModuleTransformer(emitContext, options, resolver, sourceFileMetaDataProvider) } } @@ -89,7 +89,7 @@ func (e *emitter) getScriptTransformers(emitContext *printer.EmitContext, source tx = append(tx, transformers.NewRuntimeSyntaxTransformer(emitContext, options, referenceResolver)) // transform module syntax - tx = append(tx, e.getModuleTransformer(emitContext, referenceResolver)) + tx = append(tx, e.getModuleTransformer(emitContext, referenceResolver, e.host)) return tx } diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index 0b35e5d91a..62e4f71c24 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -23,6 +23,9 @@ type fileLoader struct { resolvedModulesMutex sync.Mutex resolvedModules map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule] + sourceFileMetaDatasMutex sync.RWMutex + sourceFileMetaDatas map[tspath.Path]*ast.SourceFileMetaData + mu sync.Mutex wg core.WorkGroup tasksByFileName map[string]*parseTask @@ -40,7 +43,7 @@ func processAllProgramFiles( resolver *module.Resolver, rootFiles []string, libs []string, -) (files []*ast.SourceFile, resolvedModules map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule]) { +) (files []*ast.SourceFile, resolvedModules map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule], sourceFileMetaDatas map[tspath.Path]*ast.SourceFileMetaData) { supportedExtensions := tsoptions.GetSupportedExtensions(compilerOptions, nil /*extraFileExtensions*/) loader := fileLoader{ host: host, @@ -76,7 +79,7 @@ func processAllProgramFiles( } loader.sortLibs(libFiles) - return append(libFiles, files...), loader.resolvedModules + return append(libFiles, files...), loader.resolvedModules, loader.sourceFileMetaDatas } func (p *fileLoader) addRootTasks(files []string, isLib bool) { @@ -221,9 +224,33 @@ func (t *parseTask) start(loader *fileLoader) { }) } +func (p *fileLoader) loadSourceFileMetaData(path tspath.Path) { + p.sourceFileMetaDatasMutex.RLock() + _, ok := p.sourceFileMetaDatas[path] + p.sourceFileMetaDatasMutex.RUnlock() + if ok { + return + } + + packageJsonType := p.resolver.GetPackageJsonTypeIfApplicable(string(path)) + impliedNodeFormat := ast.GetImpliedNodeFormatForFile(string(path), packageJsonType) + metadata := &ast.SourceFileMetaData{ + PackageJsonType: packageJsonType, + ImpliedNodeFormat: impliedNodeFormat, + } + + p.sourceFileMetaDatasMutex.Lock() + defer p.sourceFileMetaDatasMutex.Unlock() + if p.sourceFileMetaDatas == nil { + p.sourceFileMetaDatas = make(map[tspath.Path]*ast.SourceFileMetaData) + } + p.sourceFileMetaDatas[path] = metadata +} + func (p *fileLoader) parseSourceFile(fileName string) *ast.SourceFile { path := tspath.ToPath(fileName, p.host.GetCurrentDirectory(), p.host.FS().UseCaseSensitiveFileNames()) sourceFile := p.host.GetSourceFile(fileName, path, p.compilerOptions.GetEmitScriptTarget()) + p.loadSourceFileMetaData(path) return sourceFile } diff --git a/internal/compiler/module/resolver.go b/internal/compiler/module/resolver.go index ebf084558c..1196611c04 100644 --- a/internal/compiler/module/resolver.go +++ b/internal/compiler/module/resolver.go @@ -145,6 +145,28 @@ func (r *Resolver) GetPackageScopeForPath(directory string) *packagejson.InfoCac return (&resolutionState{compilerOptions: r.compilerOptions, resolver: r}).getPackageScopeForPath(directory) } +func (r *Resolver) GetPackageJsonTypeIfApplicable(path string) string { + if tspath.FileExtensionIsOneOf(path, []string{tspath.ExtensionMts, tspath.ExtensionCts, tspath.ExtensionMjs, tspath.ExtensionCjs}) { + return "" + } + + var moduleResolutionKind core.ModuleResolutionKind + if r.compilerOptions != nil { + moduleResolutionKind = r.compilerOptions.GetModuleResolutionKind() + } + + var packageJsonType string + shouldLookupFromPackageJson := core.ModuleResolutionKindNode16 <= moduleResolutionKind && moduleResolutionKind <= core.ModuleResolutionKindNodeNext || strings.Contains(path, "/node_modules/") + if shouldLookupFromPackageJson { + packageJsonScope := r.GetPackageScopeForPath(tspath.GetDirectoryPath(path)) + if packageJsonScope.Exists() { + packageJsonType, _ = packageJsonScope.Contents.Type.GetValue() + } + } + + return packageJsonType +} + func (r *Resolver) ResolveTypeReferenceDirective(typeReferenceDirectiveName string, containingFile string, resolutionMode core.ResolutionMode, redirectedReference *ResolvedProjectReference) *ResolvedTypeReferenceDirective { traceEnabled := r.traceEnabled() diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 6a8b659836..8bb83b6d28 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -49,6 +49,8 @@ type Program struct { files []*ast.SourceFile filesByPath map[tspath.Path]*ast.SourceFile + sourceFileMetaDatas map[tspath.Path]*ast.SourceFileMetaData + // The below settings are to track if a .js file should be add to the program if loaded via searching under node_modules. // This works as imported modules are discovered recursively in a depth first manner, specifically: // - For each root file, findSourceFile is called. @@ -68,13 +70,12 @@ type Program struct { unsupportedExtensions []string } -var extensions = []string{".ts", ".tsx"} - func NewProgram(options ProgramOptions) *Program { p := &Program{} p.programOptions = options p.compilerOptions = options.Options p.configFileParsingDiagnostics = slices.Clip(options.ConfigFileParsingDiagnostics) + p.sourceFileMetaDatas = make(map[tspath.Path]*ast.SourceFileMetaData) if p.compilerOptions == nil { p.compilerOptions = &core.CompilerOptions{} } @@ -152,7 +153,7 @@ func NewProgram(options ProgramOptions) *Program { } } - p.files, p.resolvedModules = processAllProgramFiles(p.host, p.programOptions, p.compilerOptions, p.resolver, rootFiles, libs) + p.files, p.resolvedModules, p.sourceFileMetaDatas = processAllProgramFiles(p.host, p.programOptions, p.compilerOptions, p.resolver, rootFiles, libs) p.filesByPath = make(map[tspath.Path]*ast.SourceFile, len(p.files)) for _, file := range p.files { p.filesByPath[file.Path()] = file @@ -416,16 +417,20 @@ func (p *Program) PrintSourceFileWithTypes() { } } +func (p *Program) GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData { + return p.sourceFileMetaDatas[path] +} + func (p *Program) GetEmitModuleFormatOfFile(sourceFile *ast.SourceFile) core.ModuleKind { return p.GetEmitModuleFormatOfFileWorker(sourceFile, p.compilerOptions) } func (p *Program) GetEmitModuleFormatOfFileWorker(sourceFile *ast.SourceFile, options *core.CompilerOptions) core.ModuleKind { - return ast.GetEmitModuleFormatOfFileWorker(sourceFile, options) + return ast.GetEmitModuleFormatOfFileWorker(sourceFile, options, p.GetSourceFileMetaData(sourceFile.Path())) } func (p *Program) GetImpliedNodeFormatForEmit(sourceFile *ast.SourceFile) core.ResolutionMode { - return ast.GetImpliedNodeFormatForEmitWorker(sourceFile, p.compilerOptions) + return ast.GetImpliedNodeFormatForEmitWorker(sourceFile.FileName(), p.compilerOptions, p.GetSourceFileMetaData(sourceFile.Path())) } func (p *Program) CommonSourceDirectory() string { diff --git a/internal/printer/sourcefilemetadataprovider.go b/internal/printer/sourcefilemetadataprovider.go new file mode 100644 index 0000000000..fbecce9280 --- /dev/null +++ b/internal/printer/sourcefilemetadataprovider.go @@ -0,0 +1,10 @@ +package printer + +import ( + "github.com/microsoft/typescript-go/internal/ast" + "github.com/microsoft/typescript-go/internal/tspath" +) + +type SourceFileMetaDataProvider interface { + GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData +} diff --git a/internal/transformers/commonjsmodule.go b/internal/transformers/commonjsmodule.go index 63978e54d2..74633360fc 100644 --- a/internal/transformers/commonjsmodule.go +++ b/internal/transformers/commonjsmodule.go @@ -12,25 +12,26 @@ import ( type CommonJSModuleTransformer struct { Transformer - topLevelVisitor *ast.NodeVisitor // visits statements at top level of a module - topLevelNestedVisitor *ast.NodeVisitor // visits nested statements at top level of a module - discardedValueVisitor *ast.NodeVisitor // visits expressions whose values would be discarded at runtime - assignmentPatternVisitor *ast.NodeVisitor // visits assignment patterns in a destructuring assignment - compilerOptions *core.CompilerOptions - resolver binder.ReferenceResolver - moduleKind core.ModuleKind - languageVersion core.ScriptTarget - currentSourceFile *ast.SourceFile - currentModuleInfo *externalModuleInfo - parentNode *ast.Node // used for ancestor tracking via pushNode/popNode to detect expression identifiers - currentNode *ast.Node // used for ancestor tracking via pushNode/popNode to detect expression identifiers -} - -func NewCommonJSModuleTransformer(emitContext *printer.EmitContext, compilerOptions *core.CompilerOptions, resolver binder.ReferenceResolver) *Transformer { + topLevelVisitor *ast.NodeVisitor // visits statements at top level of a module + topLevelNestedVisitor *ast.NodeVisitor // visits nested statements at top level of a module + discardedValueVisitor *ast.NodeVisitor // visits expressions whose values would be discarded at runtime + assignmentPatternVisitor *ast.NodeVisitor // visits assignment patterns in a destructuring assignment + compilerOptions *core.CompilerOptions + resolver binder.ReferenceResolver + sourceFileMetaDataProvider printer.SourceFileMetaDataProvider + moduleKind core.ModuleKind + languageVersion core.ScriptTarget + currentSourceFile *ast.SourceFile + currentModuleInfo *externalModuleInfo + parentNode *ast.Node // used for ancestor tracking via pushNode/popNode to detect expression identifiers + currentNode *ast.Node // used for ancestor tracking via pushNode/popNode to detect expression identifiers +} + +func NewCommonJSModuleTransformer(emitContext *printer.EmitContext, compilerOptions *core.CompilerOptions, resolver binder.ReferenceResolver, sourceFileMetaDataProvider printer.SourceFileMetaDataProvider) *Transformer { if resolver == nil { resolver = binder.NewReferenceResolver(compilerOptions, binder.ReferenceResolverHooks{}) } - tx := &CommonJSModuleTransformer{compilerOptions: compilerOptions, resolver: resolver} + tx := &CommonJSModuleTransformer{compilerOptions: compilerOptions, resolver: resolver, sourceFileMetaDataProvider: sourceFileMetaDataProvider} tx.topLevelVisitor = emitContext.NewNodeVisitor(tx.visitTopLevel) tx.topLevelNestedVisitor = emitContext.NewNodeVisitor(tx.visitTopLevelNested) tx.discardedValueVisitor = emitContext.NewNodeVisitor(tx.visitDiscardedValue) @@ -362,7 +363,7 @@ func (tx *CommonJSModuleTransformer) transformCommonJSModule(node *ast.SourceFil result := tx.factory.UpdateSourceFile(node, statementList).AsSourceFile() tx.emitContext.AddEmitHelper(result.AsNode(), tx.emitContext.ReadEmitHelpers()...) - externalHelpersImportDeclaration := createExternalHelpersImportDeclarationIfNeeded(tx.emitContext, result, tx.compilerOptions, false /*hasExportStarsToExportValues*/, false /*hasImportStar*/, false /*hasImportDefault*/) + externalHelpersImportDeclaration := createExternalHelpersImportDeclarationIfNeeded(tx.emitContext, result, tx.compilerOptions, tx.sourceFileMetaDataProvider, false /*hasExportStarsToExportValues*/, false /*hasImportStar*/, false /*hasImportDefault*/) if externalHelpersImportDeclaration != nil { prologue, rest := tx.emitContext.SplitStandardPrologue(result.Statements.Nodes) custom, rest := tx.emitContext.SplitCustomPrologue(rest) @@ -1680,7 +1681,7 @@ func (tx *CommonJSModuleTransformer) visitCallExpression(node *ast.CallExpressio func (tx *CommonJSModuleTransformer) shouldTransformImportCall() bool { // !!! host.shouldTransformImportCall? - return shouldTransformImportCallWorker(tx.currentSourceFile, tx.compilerOptions) + return shouldTransformImportCallWorker(tx.currentSourceFile, tx.compilerOptions, tx.sourceFileMetaDataProvider.GetSourceFileMetaData(tx.currentSourceFile.Path())) } func (tx *CommonJSModuleTransformer) visitImportCallExpression(node *ast.CallExpression, rewriteOrShim bool) *ast.Node { @@ -1997,10 +1998,10 @@ func (tx *CommonJSModuleTransformer) getExports(name *ast.IdentifierNode) []*ast return nil } -func shouldTransformImportCallWorker(sourceFile *ast.SourceFile, options *core.CompilerOptions) bool { +func shouldTransformImportCallWorker(sourceFile *ast.SourceFile, options *core.CompilerOptions, sourceFileMetaData *ast.SourceFileMetaData) bool { moduleKind := options.GetEmitModuleKind() if core.ModuleKindNode16 <= moduleKind && moduleKind <= core.ModuleKindNodeNext || moduleKind == core.ModuleKindPreserve { return false } - return ast.GetEmitModuleFormatOfFileWorker(sourceFile, options) < core.ModuleKindES2015 + return ast.GetEmitModuleFormatOfFileWorker(sourceFile, options, sourceFileMetaData) < core.ModuleKindES2015 } diff --git a/internal/transformers/commonjsmodule_test.go b/internal/transformers/commonjsmodule_test.go index 8afebff5fd..cf12798064 100644 --- a/internal/transformers/commonjsmodule_test.go +++ b/internal/transformers/commonjsmodule_test.go @@ -9,8 +9,15 @@ import ( "github.com/microsoft/typescript-go/internal/printer" "github.com/microsoft/typescript-go/internal/testutil/emittestutil" "github.com/microsoft/typescript-go/internal/testutil/parsetestutil" + "github.com/microsoft/typescript-go/internal/tspath" ) +type fakeSourceFileMetaDataProvider struct{} + +func (p *fakeSourceFileMetaDataProvider) GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData { + return nil +} + func TestCommonJSModuleTransformer(t *testing.T) { t.Parallel() data := []struct { @@ -1027,8 +1034,10 @@ exports.a = a;`, emitContext := printer.NewEmitContext() resolver := binder.NewReferenceResolver(&compilerOptions, binder.ReferenceResolverHooks{}) + program := &fakeSourceFileMetaDataProvider{} + file = NewRuntimeSyntaxTransformer(emitContext, &compilerOptions, resolver).TransformSourceFile(file) - file = NewCommonJSModuleTransformer(emitContext, &compilerOptions, resolver).TransformSourceFile(file) + file = NewCommonJSModuleTransformer(emitContext, &compilerOptions, resolver, program).TransformSourceFile(file) emittestutil.CheckEmit(t, emitContext, file, rec.output) }) } diff --git a/internal/transformers/esmodule.go b/internal/transformers/esmodule.go index a0c11d25aa..bbbc0bbce7 100644 --- a/internal/transformers/esmodule.go +++ b/internal/transformers/esmodule.go @@ -11,11 +11,12 @@ import ( type ESModuleTransformer struct { Transformer - compilerOptions *core.CompilerOptions - resolver binder.ReferenceResolver - currentSourceFile *ast.SourceFile - importRequireStatements *importRequireStatements - helperNameSubstitutions map[string]*ast.IdentifierNode + compilerOptions *core.CompilerOptions + resolver binder.ReferenceResolver + sourceFileMetaDataProvider printer.SourceFileMetaDataProvider + currentSourceFile *ast.SourceFile + importRequireStatements *importRequireStatements + helperNameSubstitutions map[string]*ast.IdentifierNode } type importRequireStatements struct { @@ -23,11 +24,11 @@ type importRequireStatements struct { requireHelperName *ast.IdentifierNode } -func NewESModuleTransformer(emitContext *printer.EmitContext, compilerOptions *core.CompilerOptions, resolver binder.ReferenceResolver) *Transformer { +func NewESModuleTransformer(emitContext *printer.EmitContext, compilerOptions *core.CompilerOptions, resolver binder.ReferenceResolver, sourceFileMetaDataProvider printer.SourceFileMetaDataProvider) *Transformer { if resolver == nil { resolver = binder.NewReferenceResolver(compilerOptions, binder.ReferenceResolverHooks{}) } - tx := &ESModuleTransformer{compilerOptions: compilerOptions, resolver: resolver} + tx := &ESModuleTransformer{compilerOptions: compilerOptions, resolver: resolver, sourceFileMetaDataProvider: sourceFileMetaDataProvider} return tx.newTransformer(tx.visit, emitContext) } @@ -64,7 +65,7 @@ func (tx *ESModuleTransformer) visitSourceFile(node *ast.SourceFile) *ast.Node { result := tx.visitor.VisitEachChild(node.AsNode()).AsSourceFile() tx.emitContext.AddEmitHelper(result.AsNode(), tx.emitContext.ReadEmitHelpers()...) - externalHelpersImportDeclaration := createExternalHelpersImportDeclarationIfNeeded(tx.emitContext, result, tx.compilerOptions, false /*hasExportStarsToExportValues*/, false /*hasImportStar*/, false /*hasImportDefault*/) + externalHelpersImportDeclaration := createExternalHelpersImportDeclarationIfNeeded(tx.emitContext, result, tx.compilerOptions, tx.sourceFileMetaDataProvider, false /*hasExportStarsToExportValues*/, false /*hasImportStar*/, false /*hasImportDefault*/) if externalHelpersImportDeclaration != nil || tx.importRequireStatements != nil { prologue, rest := tx.emitContext.SplitStandardPrologue(result.Statements.Nodes) statements := slices.Clone(prologue) diff --git a/internal/transformers/esmodule_test.go b/internal/transformers/esmodule_test.go index 94a0a5a7a1..ff1eef01e1 100644 --- a/internal/transformers/esmodule_test.go +++ b/internal/transformers/esmodule_test.go @@ -233,8 +233,10 @@ var __rewriteRelativeImportExtension;`, emitContext := printer.NewEmitContext() resolver := binder.NewReferenceResolver(&compilerOptions, binder.ReferenceResolverHooks{}) + program := &fakeSourceFileMetaDataProvider{} + file = NewRuntimeSyntaxTransformer(emitContext, &compilerOptions, resolver).TransformSourceFile(file) - file = NewESModuleTransformer(emitContext, &compilerOptions, resolver).TransformSourceFile(file) + file = NewESModuleTransformer(emitContext, &compilerOptions, resolver, program).TransformSourceFile(file) emittestutil.CheckEmit(t, emitContext, file, rec.output) }) } diff --git a/internal/transformers/externalmoduleinfo.go b/internal/transformers/externalmoduleinfo.go index b643bd4bc4..e7da2c1fd7 100644 --- a/internal/transformers/externalmoduleinfo.go +++ b/internal/transformers/externalmoduleinfo.go @@ -246,10 +246,10 @@ func (c *externalModuleInfoCollector) collectExportedVariableInfo(decl *ast.Node const externalHelpersModuleNameText = "tslib" -func createExternalHelpersImportDeclarationIfNeeded(emitContext *printer.EmitContext, sourceFile *ast.SourceFile, compilerOptions *core.CompilerOptions, hasExportStarsToExportValues bool, hasImportStar bool, hasImportDefault bool) *ast.Node /*ImportDeclaration | ImportEqualsDeclaration*/ { +func createExternalHelpersImportDeclarationIfNeeded(emitContext *printer.EmitContext, sourceFile *ast.SourceFile, compilerOptions *core.CompilerOptions, sourceFileMetaDataProvider printer.SourceFileMetaDataProvider, hasExportStarsToExportValues bool, hasImportStar bool, hasImportDefault bool) *ast.Node /*ImportDeclaration | ImportEqualsDeclaration*/ { if compilerOptions.ImportHelpers.IsTrue() && ast.IsEffectiveExternalModule(sourceFile, compilerOptions) { moduleKind := compilerOptions.GetEmitModuleKind() - impliedModuleKind := ast.GetImpliedNodeFormatForEmitWorker(sourceFile, compilerOptions) + impliedModuleKind := ast.GetImpliedNodeFormatForEmitWorker(sourceFile.FileName(), compilerOptions, sourceFileMetaDataProvider.GetSourceFileMetaData(sourceFile.Path())) helpers := getImportedHelpers(emitContext, sourceFile) if (moduleKind >= core.ModuleKindES2015 && moduleKind <= core.ModuleKindESNext) || impliedModuleKind == core.ModuleKindESNext || @@ -291,7 +291,7 @@ func createExternalHelpersImportDeclarationIfNeeded(emitContext *printer.EmitCon } } else { // When we emit to a non-ES module, generate a synthetic `import tslib = require("tslib")` to be further transformed. - externalHelpersModuleName := getOrCreateExternalHelpersModuleNameIfNeeded(emitContext, sourceFile, compilerOptions, helpers, hasExportStarsToExportValues, hasImportStar || hasImportDefault) + externalHelpersModuleName := getOrCreateExternalHelpersModuleNameIfNeeded(emitContext, sourceFile, compilerOptions, helpers, hasExportStarsToExportValues, hasImportStar || hasImportDefault, sourceFileMetaDataProvider.GetSourceFileMetaData(sourceFile.Path())) if externalHelpersModuleName != nil { externalHelpersImportDeclaration := emitContext.Factory.NewImportEqualsDeclaration( nil, /*modifiers*/ @@ -317,7 +317,7 @@ func getImportedHelpers(emitContext *printer.EmitContext, sourceFile *ast.Source return helpers } -func getOrCreateExternalHelpersModuleNameIfNeeded(emitContext *printer.EmitContext, node *ast.SourceFile, compilerOptions *core.CompilerOptions, helpers []*printer.EmitHelper, hasExportStarsToExportValues bool, hasImportStarOrImportDefault bool) *ast.IdentifierNode { +func getOrCreateExternalHelpersModuleNameIfNeeded(emitContext *printer.EmitContext, node *ast.SourceFile, compilerOptions *core.CompilerOptions, helpers []*printer.EmitHelper, hasExportStarsToExportValues bool, hasImportStarOrImportDefault bool, sourceFileMetaData *ast.SourceFileMetaData) *ast.IdentifierNode { externalHelpersModuleName := emitContext.GetExternalHelpersModuleName(node) if externalHelpersModuleName != nil { return externalHelpersModuleName @@ -325,7 +325,7 @@ func getOrCreateExternalHelpersModuleNameIfNeeded(emitContext *printer.EmitConte create := len(helpers) > 0 || (hasExportStarsToExportValues || compilerOptions.GetESModuleInterop() && hasImportStarOrImportDefault) && - ast.GetEmitModuleFormatOfFileWorker(node, compilerOptions) < core.ModuleKindSystem + ast.GetEmitModuleFormatOfFileWorker(node, compilerOptions, sourceFileMetaData) < core.ModuleKindSystem if create { externalHelpersModuleName = emitContext.NewUniqueName(externalHelpersModuleNameText, printer.AutoGenerateOptions{}) diff --git a/internal/transformers/impliedmodule.go b/internal/transformers/impliedmodule.go index 3cd0f1e2fa..b23018b8bd 100644 --- a/internal/transformers/impliedmodule.go +++ b/internal/transformers/impliedmodule.go @@ -9,17 +9,18 @@ import ( type ImpliedModuleTransformer struct { Transformer - compilerOptions *core.CompilerOptions - resolver binder.ReferenceResolver - cjsTransformer *Transformer - esmTransformer *Transformer + compilerOptions *core.CompilerOptions + resolver binder.ReferenceResolver + sourceFileMetaDataProvider printer.SourceFileMetaDataProvider + cjsTransformer *Transformer + esmTransformer *Transformer } -func NewImpliedModuleTransformer(emitContext *printer.EmitContext, compilerOptions *core.CompilerOptions, resolver binder.ReferenceResolver) *Transformer { +func NewImpliedModuleTransformer(emitContext *printer.EmitContext, compilerOptions *core.CompilerOptions, resolver binder.ReferenceResolver, sourceFileMetaDataProvider printer.SourceFileMetaDataProvider) *Transformer { if resolver == nil { resolver = binder.NewReferenceResolver(compilerOptions, binder.ReferenceResolverHooks{}) } - tx := &ImpliedModuleTransformer{compilerOptions: compilerOptions, resolver: resolver} + tx := &ImpliedModuleTransformer{compilerOptions: compilerOptions, resolver: resolver, sourceFileMetaDataProvider: sourceFileMetaDataProvider} return tx.newTransformer(tx.visit, emitContext) } @@ -41,12 +42,12 @@ func (tx *ImpliedModuleTransformer) visitSourceFile(node *ast.SourceFile) *ast.N var transformer *Transformer if format >= core.ModuleKindES2015 { if tx.esmTransformer == nil { - tx.esmTransformer = NewESModuleTransformer(tx.emitContext, tx.compilerOptions, tx.resolver) + tx.esmTransformer = NewESModuleTransformer(tx.emitContext, tx.compilerOptions, tx.resolver, tx.sourceFileMetaDataProvider) } transformer = tx.esmTransformer } else { if tx.cjsTransformer == nil { - tx.cjsTransformer = NewCommonJSModuleTransformer(tx.emitContext, tx.compilerOptions, tx.resolver) + tx.cjsTransformer = NewCommonJSModuleTransformer(tx.emitContext, tx.compilerOptions, tx.resolver, tx.sourceFileMetaDataProvider) } transformer = tx.cjsTransformer } @@ -56,5 +57,5 @@ func (tx *ImpliedModuleTransformer) visitSourceFile(node *ast.SourceFile) *ast.N func (tx *ImpliedModuleTransformer) getEmitModuleFormatOfFile(node *ast.SourceFile) core.ModuleKind { // !!! host.getEmitModuleFormatOfFile? - return ast.GetEmitModuleFormatOfFileWorker(node, tx.compilerOptions) + return ast.GetEmitModuleFormatOfFileWorker(node, tx.compilerOptions, tx.sourceFileMetaDataProvider.GetSourceFileMetaData(node.Path())) } diff --git a/internal/transformers/importelision_test.go b/internal/transformers/importelision_test.go index a6a80868af..9fae01b6fa 100644 --- a/internal/transformers/importelision_test.go +++ b/internal/transformers/importelision_test.go @@ -10,6 +10,7 @@ import ( "github.com/microsoft/typescript-go/internal/printer" "github.com/microsoft/typescript-go/internal/testutil/emittestutil" "github.com/microsoft/typescript-go/internal/testutil/parsetestutil" + "github.com/microsoft/typescript-go/internal/tspath" ) type fakeProgram struct { @@ -53,6 +54,10 @@ func (p *fakeProgram) GetResolvedModule(currentSourceFile *ast.SourceFile, modul return p.getResolvedModule(currentSourceFile, moduleReference) } +func (p *fakeProgram) GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData { + return nil +} + func TestImportElision(t *testing.T) { t.Parallel() data := []struct { diff --git a/testdata/baselines/reference/submodule/compiler/esmModeDeclarationFileWithExportAssignment.errors.txt b/testdata/baselines/reference/submodule/compiler/esmModeDeclarationFileWithExportAssignment.errors.txt new file mode 100644 index 0000000000..b6240849cb --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/esmModeDeclarationFileWithExportAssignment.errors.txt @@ -0,0 +1,12 @@ +other.d.mts(2,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. + + +==== other.d.mts (1 errors) ==== + declare function example(): 5; + export = example; + ~~~~~~~~~~~~~~~~~ +!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. + +==== main.mts (0 errors) ==== + import example from "./other.mjs"; + example(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/esmModeDeclarationFileWithExportAssignment.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/esmModeDeclarationFileWithExportAssignment.errors.txt.diff index 96df190192..581614db47 100644 --- a/testdata/baselines/reference/submodule/compiler/esmModeDeclarationFileWithExportAssignment.errors.txt.diff +++ b/testdata/baselines/reference/submodule/compiler/esmModeDeclarationFileWithExportAssignment.errors.txt.diff @@ -1,20 +1,17 @@ --- old.esmModeDeclarationFileWithExportAssignment.errors.txt +++ new.esmModeDeclarationFileWithExportAssignment.errors.txt -@@= skipped -0, +-1 lines =@@ +@@= skipped -0, +0 lines =@@ -main.mts(1,8): error TS1192: Module '"other"' has no default export. --other.d.mts(2,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -- -- --==== other.d.mts (1 errors) ==== -- declare function example(): 5; -- export = example; -- ~~~~~~~~~~~~~~~~~ --!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -- + other.d.mts(2,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. + + +@@= skipped -7, +6 lines =@@ + ~~~~~~~~~~~~~~~~~ + !!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. + -==== main.mts (1 errors) ==== -- import example from "./other.mjs"; ++==== main.mts (0 errors) ==== + import example from "./other.mjs"; - ~~~~~~~ -!!! error TS1192: Module '"other"' has no default export. -- example(); -@@= skipped --1, +1 lines =@@ -+ + example(); diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js index 65a0219e88..77dc36cb22 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js +++ b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js @@ -34,7 +34,9 @@ self.default.default(); self.def.default(); //// [mod.cjs] -export default fun; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = fun; //// [b.mjs] import a from "./mod.cjs"; import { default as b } from "./mod.cjs"; diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js.diff b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js.diff index 28c564033c..de8492ed12 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=node16).js.diff @@ -1,17 +1,6 @@ --- old.moduleNodeDefaultImports(module=node16).js +++ new.moduleNodeDefaultImports(module=node16).js -@@= skipped -33, +33 lines =@@ - self.def.default(); - - //// [mod.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.default = fun; -+export default fun; - //// [b.mjs] - import a from "./mod.cjs"; - import { default as b } from "./mod.cjs"; -@@= skipped -15, +13 lines =@@ +@@= skipped -48, +48 lines =@@ c === d; d === self.default; self.default === self.def; diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js index 65a0219e88..77dc36cb22 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js @@ -34,7 +34,9 @@ self.default.default(); self.def.default(); //// [mod.cjs] -export default fun; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = fun; //// [b.mjs] import a from "./mod.cjs"; import { default as b } from "./mod.cjs"; diff --git a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js.diff index b7674b3a38..7f55fa22fc 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/compiler/moduleNodeDefaultImports(module=nodenext).js.diff @@ -1,17 +1,6 @@ --- old.moduleNodeDefaultImports(module=nodenext).js +++ new.moduleNodeDefaultImports(module=nodenext).js -@@= skipped -33, +33 lines =@@ - self.def.default(); - - //// [mod.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.default = fun; -+export default fun; - //// [b.mjs] - import a from "./mod.cjs"; - import { default as b } from "./mod.cjs"; -@@= skipped -15, +13 lines =@@ +@@= skipped -48, +48 lines =@@ c === d; d === self.default; self.default === self.def; diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt b/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt index b458497d9a..278f546051 100644 --- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt @@ -1,4 +1,5 @@ /a.js(2,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. +/f.cts(1,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /g.js(1,1): error TS2304: Cannot find name 'exports'. /main1.ts(1,13): error TS2305: Module '"/a"' has no exported member 'y'. /main1.ts(3,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. @@ -10,12 +11,18 @@ /main2.mts(5,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. /main2.mts(19,16): error TS2306: File '/g.js' is not a module. /main2.mts(20,21): error TS2306: File '/g.js' is not a module. +/main3.cjs(1,10): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main3.cjs(1,13): error TS2305: Module '"/a"' has no exported member 'y'. /main3.cjs(3,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. +/main3.cjs(5,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main3.cjs(6,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. +/main3.cjs(8,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main3.cjs(9,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. +/main3.cjs(10,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main3.cjs(11,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. +/main3.cjs(12,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main3.cjs(13,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. +/main3.cjs(14,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main3.cjs(15,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. /main3.cjs(17,16): error TS2306: File '/g.js' is not a module. /main3.cjs(18,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. @@ -43,8 +50,10 @@ ==== /e.mts (0 errors) ==== export = 0; -==== /f.cts (0 errors) ==== +==== /f.cts (1 errors) ==== export default 0; + ~~~~~~~~~~~~~~~~~ +!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. ==== /g.js (1 errors) ==== exports.default = 0; @@ -127,8 +136,10 @@ ~~~~~ !!! error TS2306: File '/g.js' is not a module. -==== /main3.cjs (9 errors) ==== +==== /main3.cjs (15 errors) ==== import { x, y } from "./a"; // No y + ~ +!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. ~ !!! error TS2305: Module '"/a"' has no exported member 'y'. import a1 = require("./a"); // Error in JS @@ -137,23 +148,33 @@ !!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import b1 from "./b"; // 0 + ~~ +!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const b2 = require("./b"); // { default: 0 } ~~~~~~~ !!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import c1 from "./c"; // { default: [Function: default] } + ~~ +!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const c2 = require("./c"); // { default: [Function: default] } ~~~~~~~ !!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import d1 from "./d"; // [Function: default] + ~~ +!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const d2 = require("./d"); // [Function: default] ~~~~~~~ !!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import e1 from "./e.mjs"; // 0 + ~~ +!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const e2 = require("./e.mjs"); // 0 ~~~~~~~ !!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import f1 from "./f.cjs"; // 0 + ~~ +!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const f2 = require("./f.cjs"); // { default: 0 } ~~~~~~~ !!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js index c142bff294..8488614028 100644 --- a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js +++ b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js @@ -11,7 +11,10 @@ d.a; ns.default.a; //// [a.cjs] -export const a = 1; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 1; //// [foo.mjs] import d, { a } from './a.cjs'; import * as ns from './a.cjs'; diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js.diff b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js.diff index 00d76c52b3..ecb8aa5782 100644 --- a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault1.js.diff @@ -1,17 +1,6 @@ --- old.nodeNextCjsNamespaceImportDefault1.js +++ new.nodeNextCjsNamespaceImportDefault1.js -@@= skipped -10, +10 lines =@@ - ns.default.a; - - //// [a.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.a = void 0; --exports.a = 1; -+export const a = 1; - //// [foo.mjs] - import d, { a } from './a.cjs'; - import * as ns from './a.cjs'; +@@= skipped -20, +20 lines =@@ export { d, a, ns }; d.a; ns.default.a; diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js index ca61cd5014..61e2da3766 100644 --- a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js +++ b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js @@ -12,8 +12,11 @@ d.a; ns.default.a; //// [a.cjs] -export const a = 1; -export default 'string'; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 1; +exports.default = 'string'; //// [foo.mjs] import d, { a } from './a.cjs'; import * as ns from './a.cjs'; diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js.diff b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js.diff index 80366801cb..4286da6a2f 100644 --- a/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/nodeNextCjsNamespaceImportDefault2.js.diff @@ -1,19 +1,6 @@ --- old.nodeNextCjsNamespaceImportDefault2.js +++ new.nodeNextCjsNamespaceImportDefault2.js -@@= skipped -11, +11 lines =@@ - ns.default.a; - - //// [a.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.a = void 0; --exports.a = 1; --exports.default = 'string'; -+export const a = 1; -+export default 'string'; - //// [foo.mjs] - import d, { a } from './a.cjs'; - import * as ns from './a.cjs'; +@@= skipped -22, +22 lines =@@ export { d, a, ns }; d.a; ns.default.a; diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextImportModeImplicitIndexResolution2.js b/testdata/baselines/reference/submodule/compiler/nodeNextImportModeImplicitIndexResolution2.js index b7f91afcc7..3125a73f6e 100644 --- a/testdata/baselines/reference/submodule/compiler/nodeNextImportModeImplicitIndexResolution2.js +++ b/testdata/baselines/reference/submodule/compiler/nodeNextImportModeImplicitIndexResolution2.js @@ -40,4 +40,5 @@ import dedent4 from "dedent4"; // Error //// [index.mjs] export {}; //// [index.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextImportModeImplicitIndexResolution2.js.diff b/testdata/baselines/reference/submodule/compiler/nodeNextImportModeImplicitIndexResolution2.js.diff deleted file mode 100644 index 101a37eab7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/nodeNextImportModeImplicitIndexResolution2.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.nodeNextImportModeImplicitIndexResolution2.js -+++ new.nodeNextImportModeImplicitIndexResolution2.js -@@= skipped -39, +39 lines =@@ - //// [index.mjs] - export {}; - //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution1.js b/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution1.js index d76bd3acd7..a006d7840c 100644 --- a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution1.js +++ b/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution1.js @@ -15,5 +15,4 @@ import {x} from "foo"; //// [app.js] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution1.js.diff b/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution1.js.diff deleted file mode 100644 index 682724bccb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution1.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.nodeNextModuleResolution1.js -+++ new.nodeNextModuleResolution1.js -@@= skipped -14, +14 lines =@@ - - - //// [app.js] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution2.js b/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution2.js index 19475675a5..e57c0f2575 100644 --- a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution2.js +++ b/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution2.js @@ -16,5 +16,4 @@ import {x} from "foo"; //// [app.mjs] -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); +export {}; diff --git a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution2.js.diff b/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution2.js.diff deleted file mode 100644 index 8777899528..0000000000 --- a/testdata/baselines/reference/submodule/compiler/nodeNextModuleResolution2.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.nodeNextModuleResolution2.js -+++ new.nodeNextModuleResolution2.js -@@= skipped -15, +15 lines =@@ - - - //// [app.mjs] --export {}; -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js b/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js index 49092764d1..b594b0de06 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js @@ -16,6 +16,7 @@ import { esm } from "./esm.mjs"; //// [esm.mjs] export const esm = 0; //// [not-actually-cjs.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //// [still-not-cjs.js] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js.diff index d2d1041602..901a3740eb 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportESM(module=esnext).js.diff @@ -7,8 +7,5 @@ -export var esm = 0; +export const esm = 0; //// [not-actually-cjs.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; - //// [still-not-cjs.js] - export {}; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/bundlerNodeModules1(module=esnext).js b/testdata/baselines/reference/submodule/conformance/bundlerNodeModules1(module=esnext).js index 1272b9f38f..c870e2e452 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerNodeModules1(module=esnext).js +++ b/testdata/baselines/reference/submodule/conformance/bundlerNodeModules1(module=esnext).js @@ -42,4 +42,5 @@ export {}; //// [main.mjs] export {}; //// [main.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/bundlerNodeModules1(module=esnext).js.diff b/testdata/baselines/reference/submodule/conformance/bundlerNodeModules1(module=esnext).js.diff deleted file mode 100644 index 9fa2e21d82..0000000000 --- a/testdata/baselines/reference/submodule/conformance/bundlerNodeModules1(module=esnext).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.bundlerNodeModules1(module=esnext).js -+++ new.bundlerNodeModules1(module=esnext).js -@@= skipped -41, +41 lines =@@ - //// [main.mjs] - export {}; - //// [main.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension6.js b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension6.js index bf536ed1b3..7568c3532b 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension6.js +++ b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension6.js @@ -7,4 +7,5 @@ import { foo } from "./foo"; // should error, should not ask for extension //// [bar.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension6.js.diff b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension6.js.diff deleted file mode 100644 index fb3a3e5714..0000000000 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension6.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.moduleResolutionWithoutExtension6.js -+++ new.moduleResolutionWithoutExtension6.js -@@= skipped -6, +6 lines =@@ - import { foo } from "./foo"; // should error, should not ask for extension - - //// [bar.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension7.js b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension7.js index 70c35383bc..68df550488 100644 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension7.js +++ b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension7.js @@ -5,4 +5,5 @@ import foo = require("./foo"); // should error, should not ask for extension //// [bar.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension7.js.diff b/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension7.js.diff deleted file mode 100644 index 19ef837aa4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/moduleResolutionWithoutExtension7.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.moduleResolutionWithoutExtension7.js -+++ new.moduleResolutionWithoutExtension7.js -@@= skipped -4, +4 lines =@@ - import foo = require("./foo"); // should error, should not ask for extension - - //// [bar.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js index 8fd6ed770b..3f54e22db5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js @@ -321,11 +321,17 @@ export {x}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [index.mjs] const x = 1; export { x }; @@ -333,8 +339,11 @@ export { x }; const x = 1; export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [index.mjs] const x = 1; export { x }; @@ -345,34 +354,61 @@ export { x }; const x = 1; export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [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"; -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"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const m1 = __importStar(require("./index.js")); +const m2 = __importStar(require("./index.mjs")); +const m3 = __importStar(require("./index.cjs")); +const m4 = __importStar(require("./subfolder/index.js")); +const m5 = __importStar(require("./subfolder/index.mjs")); +const m6 = __importStar(require("./subfolder/index.cjs")); +const m7 = __importStar(require("./subfolder2/index.js")); +const m8 = __importStar(require("./subfolder2/index.mjs")); +const m9 = __importStar(require("./subfolder2/index.cjs")); +const m10 = __importStar(require("./subfolder2/another/index.js")); +const m11 = __importStar(require("./subfolder2/another/index.mjs")); +const m12 = __importStar(require("./subfolder2/another/index.cjs")); +const m13 = __importStar(require("./")); +const m14 = __importStar(require("./index")); +const m15 = __importStar(require("./subfolder")); +const m16 = __importStar(require("./subfolder/")); +const m17 = __importStar(require("./subfolder/index")); +const m18 = __importStar(require("./subfolder2")); +const m19 = __importStar(require("./subfolder2/")); +const m20 = __importStar(require("./subfolder2/index")); +const m21 = __importStar(require("./subfolder2/another")); +const m22 = __importStar(require("./subfolder2/another/")); +const m23 = __importStar(require("./subfolder2/another/index")); void m1; void m2; void m3; @@ -396,17 +432,17 @@ void m20; void m21; void m22; void m23; -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; @@ -430,7 +466,7 @@ const _m43 = import("./subfolder2/another"); const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); const x = 1; -export { x }; +exports.x = x; //// [index.js] import { createRequire as _createRequire } from "module"; const __require = _createRequire(import.meta.url); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js.diff index 47821adbf6..4ea1a2cc9b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=node16).js.diff @@ -1,24 +1,19 @@ --- old.nodeModules1(module=node16).js +++ new.nodeModules1(module=node16).js -@@= skipped -320, +320 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -323, +323 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = 1; @@ -32,13 +27,12 @@ -exports.x = x; +export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = 1; @@ -52,123 +46,37 @@ const x = 1; export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = 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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -74, +62 lines =@@ + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// ESM-format imports below should issue errors --const m1 = __importStar(require("./index.js")); --const m2 = __importStar(require("./index.mjs")); --const m3 = __importStar(require("./index.cjs")); --const m4 = __importStar(require("./subfolder/index.js")); --const m5 = __importStar(require("./subfolder/index.mjs")); --const m6 = __importStar(require("./subfolder/index.cjs")); --const m7 = __importStar(require("./subfolder2/index.js")); --const m8 = __importStar(require("./subfolder2/index.mjs")); --const m9 = __importStar(require("./subfolder2/index.cjs")); --const m10 = __importStar(require("./subfolder2/another/index.js")); --const m11 = __importStar(require("./subfolder2/another/index.mjs")); --const m12 = __importStar(require("./subfolder2/another/index.cjs")); + const m1 = __importStar(require("./index.js")); + const m2 = __importStar(require("./index.mjs")); + const m3 = __importStar(require("./index.cjs")); +@@= skipped -13, +12 lines =@@ + const m10 = __importStar(require("./subfolder2/another/index.js")); + const m11 = __importStar(require("./subfolder2/another/index.mjs")); + const m12 = __importStar(require("./subfolder2/another/index.cjs")); -// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) --const m13 = __importStar(require("./")); --const m14 = __importStar(require("./index")); --const m15 = __importStar(require("./subfolder")); --const m16 = __importStar(require("./subfolder/")); --const m17 = __importStar(require("./subfolder/index")); --const m18 = __importStar(require("./subfolder2")); --const m19 = __importStar(require("./subfolder2/")); --const m20 = __importStar(require("./subfolder2/index")); --const m21 = __importStar(require("./subfolder2/another")); --const m22 = __importStar(require("./subfolder2/another/")); --const m23 = __importStar(require("./subfolder2/another/index")); -+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"; -+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; -@@= skipped -125, +75 lines =@@ + const m13 = __importStar(require("./")); + const m14 = __importStar(require("./index")); + const m15 = __importStar(require("./subfolder")); +@@= skipped -35, +34 lines =@@ 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; + const m24 = require("./"); + const m25 = require("./index"); + const m26 = require("./subfolder"); @@= skipped -23, +22 lines =@@ void m32; void m33; @@ -183,11 +91,8 @@ const _m45 = import("./subfolder2/another/index"); -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.js] - import { createRequire as _createRequire } from "module"; - const __require = _createRequire(import.meta.url); @@= skipped -18, +17 lines =@@ import * as m10 from "./subfolder2/another/index.js"; import * as m11 from "./subfolder2/another/index.mjs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js index 8fd6ed770b..3f54e22db5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js @@ -321,11 +321,17 @@ export {x}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [index.mjs] const x = 1; export { x }; @@ -333,8 +339,11 @@ export { x }; const x = 1; export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [index.mjs] const x = 1; export { x }; @@ -345,34 +354,61 @@ export { x }; const x = 1; export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = 1; -export { x }; +exports.x = x; //// [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"; -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"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; +const m1 = __importStar(require("./index.js")); +const m2 = __importStar(require("./index.mjs")); +const m3 = __importStar(require("./index.cjs")); +const m4 = __importStar(require("./subfolder/index.js")); +const m5 = __importStar(require("./subfolder/index.mjs")); +const m6 = __importStar(require("./subfolder/index.cjs")); +const m7 = __importStar(require("./subfolder2/index.js")); +const m8 = __importStar(require("./subfolder2/index.mjs")); +const m9 = __importStar(require("./subfolder2/index.cjs")); +const m10 = __importStar(require("./subfolder2/another/index.js")); +const m11 = __importStar(require("./subfolder2/another/index.mjs")); +const m12 = __importStar(require("./subfolder2/another/index.cjs")); +const m13 = __importStar(require("./")); +const m14 = __importStar(require("./index")); +const m15 = __importStar(require("./subfolder")); +const m16 = __importStar(require("./subfolder/")); +const m17 = __importStar(require("./subfolder/index")); +const m18 = __importStar(require("./subfolder2")); +const m19 = __importStar(require("./subfolder2/")); +const m20 = __importStar(require("./subfolder2/index")); +const m21 = __importStar(require("./subfolder2/another")); +const m22 = __importStar(require("./subfolder2/another/")); +const m23 = __importStar(require("./subfolder2/another/index")); void m1; void m2; void m3; @@ -396,17 +432,17 @@ void m20; void m21; void m22; void m23; -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; @@ -430,7 +466,7 @@ const _m43 = import("./subfolder2/another"); const _m44 = import("./subfolder2/another/"); const _m45 = import("./subfolder2/another/index"); const x = 1; -export { x }; +exports.x = x; //// [index.js] import { createRequire as _createRequire } from "module"; const __require = _createRequire(import.meta.url); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js.diff index fe0a6135d8..928ccabae1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModules1(module=nodenext).js.diff @@ -1,24 +1,19 @@ --- old.nodeModules1(module=nodenext).js +++ new.nodeModules1(module=nodenext).js -@@= skipped -320, +320 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -323, +323 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = 1; @@ -32,13 +27,12 @@ -exports.x = x; +export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = 1; @@ -52,123 +46,37 @@ const x = 1; export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = 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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -74, +62 lines =@@ + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// ESM-format imports below should issue errors --const m1 = __importStar(require("./index.js")); --const m2 = __importStar(require("./index.mjs")); --const m3 = __importStar(require("./index.cjs")); --const m4 = __importStar(require("./subfolder/index.js")); --const m5 = __importStar(require("./subfolder/index.mjs")); --const m6 = __importStar(require("./subfolder/index.cjs")); --const m7 = __importStar(require("./subfolder2/index.js")); --const m8 = __importStar(require("./subfolder2/index.mjs")); --const m9 = __importStar(require("./subfolder2/index.cjs")); --const m10 = __importStar(require("./subfolder2/another/index.js")); --const m11 = __importStar(require("./subfolder2/another/index.mjs")); --const m12 = __importStar(require("./subfolder2/another/index.cjs")); + const m1 = __importStar(require("./index.js")); + const m2 = __importStar(require("./index.mjs")); + const m3 = __importStar(require("./index.cjs")); +@@= skipped -13, +12 lines =@@ + const m10 = __importStar(require("./subfolder2/another/index.js")); + const m11 = __importStar(require("./subfolder2/another/index.mjs")); + const m12 = __importStar(require("./subfolder2/another/index.cjs")); -// The next ones should _mostly_ work - cjs format files have index resolution and extension resolution (except for those which resolve to an esm format file) --const m13 = __importStar(require("./")); --const m14 = __importStar(require("./index")); --const m15 = __importStar(require("./subfolder")); --const m16 = __importStar(require("./subfolder/")); --const m17 = __importStar(require("./subfolder/index")); --const m18 = __importStar(require("./subfolder2")); --const m19 = __importStar(require("./subfolder2/")); --const m20 = __importStar(require("./subfolder2/index")); --const m21 = __importStar(require("./subfolder2/another")); --const m22 = __importStar(require("./subfolder2/another/")); --const m23 = __importStar(require("./subfolder2/another/index")); -+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"; -+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; -@@= skipped -125, +75 lines =@@ + const m13 = __importStar(require("./")); + const m14 = __importStar(require("./index")); + const m15 = __importStar(require("./subfolder")); +@@= skipped -35, +34 lines =@@ 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; + const m24 = require("./"); + const m25 = require("./index"); + const m26 = require("./subfolder"); @@= skipped -23, +22 lines =@@ void m32; void m33; @@ -183,11 +91,8 @@ const _m45 = import("./subfolder2/another/index"); -// cjs format file const x = 1; --exports.x = x; -+export { x }; + exports.x = x; //// [index.js] - import { createRequire as _createRequire } from "module"; - const __require = _createRequire(import.meta.url); @@= skipped -18, +17 lines =@@ import * as m10 from "./subfolder2/another/index.js"; import * as m11 from "./subfolder2/another/index.mjs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt index 4658ca6470..5c37afd462 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt @@ -1,15 +1,12 @@ file.js(4,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. subfolder/file.js(3,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. -subfolder/index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -==== subfolder/index.js (1 errors) ==== +==== subfolder/index.js (0 errors) ==== // cjs format file const a = {}; export = a; - ~~~~~~~~~~~ -!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. ==== subfolder/file.js (1 errors) ==== // cjs format file const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt index 4658ca6470..5c37afd462 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt @@ -1,15 +1,12 @@ file.js(4,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. subfolder/file.js(3,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. -subfolder/index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -==== subfolder/index.js (1 errors) ==== +==== subfolder/index.js (0 errors) ==== // cjs format file const a = {}; export = a; - ~~~~~~~~~~~ -!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. ==== subfolder/file.js (1 errors) ==== // cjs format file const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt new file mode 100644 index 0000000000..6bdf1d41c6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt @@ -0,0 +1,35 @@ +subfolder/index.js(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. +subfolder/index.js(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +subfolder/index.js(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + +==== subfolder/index.js (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + const exports = {}; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} + export const __esModule = false; + ~~~~~~~~~~ +!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + export {require, exports, Object}; +==== index.js (0 errors) ==== + // esm format file + function require() {} + const exports = {}; + class Object {} + export const __esModule = false; + export {require, exports, Object}; +==== package.json (0 errors) ==== + { + "name": "package", + "private": true, + "type": "module" + } +==== subfolder/package.json (0 errors) ==== + { + "type": "commonjs" + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt new file mode 100644 index 0000000000..6bdf1d41c6 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt @@ -0,0 +1,35 @@ +subfolder/index.js(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. +subfolder/index.js(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +subfolder/index.js(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + +==== subfolder/index.js (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + const exports = {}; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} + export const __esModule = false; + ~~~~~~~~~~ +!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + export {require, exports, Object}; +==== index.js (0 errors) ==== + // esm format file + function require() {} + const exports = {}; + class Object {} + export const __esModule = false; + export {require, exports, Object}; +==== package.json (0 errors) ==== + { + "name": "package", + "private": true, + "type": "module" + } +==== subfolder/package.json (0 errors) ==== + { + "type": "commonjs" + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt index 976ff9888e..6d1336b928 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt @@ -1,18 +1,18 @@ index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +subfolder/index.js(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +subfolder/index.js(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== subfolder/index.js (2 errors) ==== // cjs format file const x = await 1; ~~~~~ -!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. export {x}; for await (const y of []) {} ~~~~~ -!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== index.js (2 errors) ==== // esm format file const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt index 976ff9888e..6d1336b928 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt @@ -1,18 +1,18 @@ index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +subfolder/index.js(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +subfolder/index.js(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== subfolder/index.js (2 errors) ==== // cjs format file const x = await 1; ~~~~~ -!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. export {x}; for await (const y of []) {} ~~~~~ -!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== index.js (2 errors) ==== // esm format file const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js index e8ad87d1c3..8a3bfef422 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js @@ -19,7 +19,10 @@ mod; } //// [index.js] -export const a = 1; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 1; //// [index.js] import mod from "./subfolder/index.js"; mod; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js.diff index acc7f13212..c9d180f78b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js.diff @@ -1,15 +1,11 @@ --- old.nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js +++ new.nodeModulesCjsFormatFileAlwaysHasDefault(module=node16).js -@@= skipped -18, +18 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.a = void 0; +@@= skipped -21, +21 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.a = void 0; -// cjs format file --exports.a = 1; -+export const a = 1; + exports.a = 1; //// [index.js] -// esm format file import mod from "./subfolder/index.js"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js index e8ad87d1c3..8a3bfef422 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js @@ -19,7 +19,10 @@ mod; } //// [index.js] -export const a = 1; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 1; //// [index.js] import mod from "./subfolder/index.js"; mod; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js.diff index 6c872ee450..3069469c3f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js.diff @@ -1,15 +1,11 @@ --- old.nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js +++ new.nodeModulesCjsFormatFileAlwaysHasDefault(module=nodenext).js -@@= skipped -18, +18 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.a = void 0; +@@= skipped -21, +21 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.a = void 0; -// cjs format file --exports.a = 1; -+export const a = 1; + exports.a = 1; //// [index.js] -// esm format file import mod from "./subfolder/index.js"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js index 884cda0b62..1ef6cd7bec 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js @@ -138,16 +138,41 @@ mjsi.mjsSource; typei.mjsSource; ts.mjsSource; //// [index.cjs] -import * as cjs from "package/cjs"; -import * as mjs from "package/mjs"; -import * as type from "package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(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 = __importStar(require("inner/a")); +const mjsi = __importStar(require("inner/b")); +const typei = __importStar(require("inner")); +const ts = __importStar(require("inner/types")); cjsi.cjsSource; mjsi.cjsSource; typei.implicitCjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js.diff index 497857a1ac..dc70540cb6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=node16).js.diff @@ -8,55 +8,15 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -16, +15 lines =@@ - typei.mjsSource; - ts.mjsSource; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -41, +40 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjs = __importStar(require("package/cjs")); --const mjs = __importStar(require("package/mjs")); --const type = __importStar(require("package")); -+import * as cjs from "package/cjs"; -+import * as mjs from "package/mjs"; -+import * as type from "package"; - cjs; - mjs; - type; --const cjsi = __importStar(require("inner/a")); --const mjsi = __importStar(require("inner/b")); --const typei = __importStar(require("inner")); --const ts = __importStar(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.cjsSource; - mjsi.cjsSource; + const cjs = __importStar(require("package/cjs")); + const mjs = __importStar(require("package/mjs")); + const type = __importStar(require("package")); +@@= skipped -16, +15 lines =@@ typei.implicitCjsSource; ts.cjsSource; //// [index.js] @@ -64,7 +24,7 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -56, +29 lines =@@ +@@= skipped -15, +14 lines =@@ mjsi.mjsSource; typei.mjsSource; ts.mjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js index 884cda0b62..1ef6cd7bec 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js @@ -138,16 +138,41 @@ mjsi.mjsSource; typei.mjsSource; ts.mjsSource; //// [index.cjs] -import * as cjs from "package/cjs"; -import * as mjs from "package/mjs"; -import * as type from "package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(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 = __importStar(require("inner/a")); +const mjsi = __importStar(require("inner/b")); +const typei = __importStar(require("inner")); +const ts = __importStar(require("inner/types")); cjsi.cjsSource; mjsi.cjsSource; typei.implicitCjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js.diff index 053861230a..1d25431280 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesConditionalPackageExports(module=nodenext).js.diff @@ -8,55 +8,15 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -16, +15 lines =@@ - typei.mjsSource; - ts.mjsSource; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -41, +40 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjs = __importStar(require("package/cjs")); --const mjs = __importStar(require("package/mjs")); --const type = __importStar(require("package")); -+import * as cjs from "package/cjs"; -+import * as mjs from "package/mjs"; -+import * as type from "package"; - cjs; - mjs; - type; --const cjsi = __importStar(require("inner/a")); --const mjsi = __importStar(require("inner/b")); --const typei = __importStar(require("inner")); --const ts = __importStar(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.cjsSource; - mjsi.cjsSource; + const cjs = __importStar(require("package/cjs")); + const mjs = __importStar(require("package/mjs")); + const type = __importStar(require("package")); +@@= skipped -16, +15 lines =@@ typei.implicitCjsSource; ts.cjsSource; //// [index.js] @@ -64,7 +24,7 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -56, +29 lines =@@ +@@= skipped -15, +14 lines =@@ mjsi.mjsSource; typei.mjsSource; ts.mjsSource; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js index b8384d5f4f..b189ca9980 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js @@ -75,7 +75,8 @@ export {}; //// [index.mjs] export {}; //// [index.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //// [other.js] export const a = await import("package/cjs"); export const b = await import("package/mjs"); @@ -93,10 +94,16 @@ export const f = await import("inner"); export const d = await import("inner/cjs"); export const e = await import("inner/mjs"); //// [other.cjs] -export const a = import("package/cjs"); -export const b = import("package/mjs"); -export const c = import("package"); -export const f = import("inner"); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = exports.c = exports.b = exports.a = void 0; +exports.a = import("package/cjs"); +exports.b = import("package/mjs"); +exports.c = import("package"); +exports.f = import("inner"); //// [other2.cjs] -export const d = import("inner/cjs"); -export const e = import("inner/mjs"); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.e = exports.d = void 0; +exports.d = import("inner/cjs"); +exports.e = import("inner/mjs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js.diff index 52206e0650..79f8d5b4c8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js.diff @@ -1,12 +1,8 @@ --- old.nodeModulesDeclarationEmitDynamicImportWithPackageExports.js +++ new.nodeModulesDeclarationEmitDynamicImportWithPackageExports.js -@@= skipped -74, +74 lines =@@ - //// [index.mjs] - export {}; - //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; +@@= skipped -77, +77 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); //// [other.js] -// esm format file export const a = await import("package/cjs"); @@ -28,25 +24,20 @@ export const d = await import("inner/cjs"); export const e = await import("inner/mjs"); //// [other.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.f = exports.c = exports.b = exports.a = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.f = exports.c = exports.b = exports.a = void 0; -// cjs format file, no TLA --exports.a = import("package/cjs"); --exports.b = import("package/mjs"); --exports.c = import("package"); --exports.f = import("inner"); -+export const a = import("package/cjs"); -+export const b = import("package/mjs"); -+export const c = import("package"); -+export const f = import("inner"); - //// [other2.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.e = exports.d = void 0; + exports.a = import("package/cjs"); + exports.b = import("package/mjs"); + exports.c = import("package"); +@@= skipped -32, +27 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.e = exports.d = void 0; -// cjs format file, no TLA --exports.d = import("inner/cjs"); --exports.e = import("inner/mjs"); + exports.d = import("inner/cjs"); + exports.e = import("inner/mjs"); - - -//// [index.d.ts] @@ -103,5 +94,3 @@ - cjsNonmain: true; -}>; -export declare const e: Promise; -+export const d = import("inner/cjs"); -+export const e = import("inner/mjs"); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js index e593da39a0..d017a6dad5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js @@ -105,18 +105,44 @@ export const d = cjsi; export const e = mjsi; export const f = typei; //// [index.cjs] -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; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); +exports.a = cjs; +exports.b = mjs; +exports.c = type; +const cjsi = __importStar(require("inner/cjs")); +const mjsi = __importStar(require("inner/mjs")); +const typei = __importStar(require("inner")); +exports.d = cjsi; +exports.e = mjsi; +exports.f = typei; //// [index.js] import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js.diff index b8188749f9..4ed0968d01 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=node16).js.diff @@ -8,74 +8,38 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -14, +13 lines =@@ - export const e = mjsi; - export const f = typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; +@@= skipped -40, +39 lines =@@ + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; -// cjs format file --const cjs = __importStar(require("package/cjs")); --const mjs = __importStar(require("package/mjs")); --const type = __importStar(require("package")); --exports.a = cjs; --exports.b = mjs; --exports.c = type; --const cjsi = __importStar(require("inner/cjs")); --const mjsi = __importStar(require("inner/mjs")); --const typei = __importStar(require("inner")); --exports.d = cjsi; --exports.e = mjsi; --exports.f = typei; --//// [index.js] + const cjs = __importStar(require("package/cjs")); + const mjs = __importStar(require("package/mjs")); + const type = __importStar(require("package")); +@@= skipped -14, +13 lines =@@ + exports.e = mjsi; + exports.f = typei; + //// [index.js] -// esm format file import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -53, +12 lines =@@ +@@= skipped -13, +12 lines =@@ export const d = cjsi; export const e = mjsi; export const f = typei; - - -//// [index.d.mts] -+//// [index.js] - import * as cjs from "package/cjs"; - import * as mjs from "package/mjs"; - import * as type from "package"; +-import * as cjs from "package/cjs"; +-import * as mjs from "package/mjs"; +-import * as type from "package"; -export declare const a: typeof cjs; -export declare const b: typeof mjs; -export declare const c: typeof type; -+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"; +-import * as cjsi from "inner/cjs"; +-import * as mjsi from "inner/mjs"; +-import * as typei from "inner"; -export declare const d: typeof cjsi; -export declare const e: typeof mjsi; -export declare const f: typeof typei; @@ -105,6 +69,3 @@ -export declare const d: typeof cjsi; -export declare const e: typeof mjsi; -export declare const f: typeof typei; -+export const d = cjsi; -+export const e = mjsi; -+export const f = typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js index e593da39a0..d017a6dad5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js @@ -105,18 +105,44 @@ export const d = cjsi; export const e = mjsi; export const f = typei; //// [index.cjs] -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; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); +exports.a = cjs; +exports.b = mjs; +exports.c = type; +const cjsi = __importStar(require("inner/cjs")); +const mjsi = __importStar(require("inner/mjs")); +const typei = __importStar(require("inner")); +exports.d = cjsi; +exports.e = mjsi; +exports.f = typei; //// [index.js] import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js.diff index 7e9b0a6c6c..4065590fca 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js.diff @@ -8,74 +8,38 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -14, +13 lines =@@ - export const e = mjsi; - export const f = typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; +@@= skipped -40, +39 lines =@@ + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.f = exports.e = exports.d = exports.c = exports.b = exports.a = void 0; -// cjs format file --const cjs = __importStar(require("package/cjs")); --const mjs = __importStar(require("package/mjs")); --const type = __importStar(require("package")); --exports.a = cjs; --exports.b = mjs; --exports.c = type; --const cjsi = __importStar(require("inner/cjs")); --const mjsi = __importStar(require("inner/mjs")); --const typei = __importStar(require("inner")); --exports.d = cjsi; --exports.e = mjsi; --exports.f = typei; --//// [index.js] + const cjs = __importStar(require("package/cjs")); + const mjs = __importStar(require("package/mjs")); + const type = __importStar(require("package")); +@@= skipped -14, +13 lines =@@ + exports.e = mjsi; + exports.f = typei; + //// [index.js] -// esm format file import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -53, +12 lines =@@ +@@= skipped -13, +12 lines =@@ export const d = cjsi; export const e = mjsi; export const f = typei; - - -//// [index.d.mts] -+//// [index.js] - import * as cjs from "package/cjs"; - import * as mjs from "package/mjs"; - import * as type from "package"; +-import * as cjs from "package/cjs"; +-import * as mjs from "package/mjs"; +-import * as type from "package"; -export declare const a: typeof cjs; -export declare const b: typeof mjs; -export declare const c: typeof type; -+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"; +-import * as cjsi from "inner/cjs"; +-import * as mjsi from "inner/mjs"; +-import * as typei from "inner"; -export declare const d: typeof cjsi; -export declare const e: typeof mjsi; -export declare const f: typeof typei; @@ -105,6 +69,3 @@ -export declare const d: typeof cjsi; -export declare const e: typeof mjsi; -export declare const f: typeof typei; -+export const d = cjsi; -+export const e = mjsi; -+export const f = typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js index dba9a01ae7..7fb343e7fc 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js @@ -24,7 +24,10 @@ export async function main() { declare module "fs"; //// [index.js] -export async function main() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.main = main; +async function main() { const { readFile } = await import("fs"); } //// [index.js] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js.diff index c54067ceac..26e191c562 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=node16).js.diff @@ -1,15 +1,11 @@ --- old.nodeModulesDynamicImport(module=node16).js +++ new.nodeModulesDynamicImport(module=node16).js -@@= skipped -23, +23 lines =@@ - declare module "fs"; - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.main = main; +@@= skipped -26, +26 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.main = main; -// cjs format file --async function main() { -+export async function main() { + async function main() { const { readFile } = await import("fs"); } //// [index.js] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js index dba9a01ae7..7fb343e7fc 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js @@ -24,7 +24,10 @@ export async function main() { declare module "fs"; //// [index.js] -export async function main() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.main = main; +async function main() { const { readFile } = await import("fs"); } //// [index.js] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js.diff index 1c9ce35d66..fda6aa81a4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesDynamicImport(module=nodenext).js.diff @@ -1,15 +1,11 @@ --- old.nodeModulesDynamicImport(module=nodenext).js +++ new.nodeModulesDynamicImport(module=nodenext).js -@@= skipped -23, +23 lines =@@ - declare module "fs"; - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.main = main; +@@= skipped -26, +26 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.main = main; -// cjs format file --async function main() { -+export async function main() { + async function main() { const { readFile } = await import("fs"); } //// [index.js] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).errors.txt index 0b39eaa7b4..edb49c7a61 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).errors.txt @@ -1,13 +1,10 @@ index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -subfolder/index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -==== subfolder/index.ts (1 errors) ==== +==== subfolder/index.ts (0 errors) ==== // cjs format file const a = {}; export = a; - ~~~~~~~~~~~ -!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. ==== index.ts (1 errors) ==== // esm format file const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).errors.txt.diff deleted file mode 100644 index 903e9f9ca1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).errors.txt.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.nodeModulesExportAssignments(module=node16).errors.txt -+++ new.nodeModulesExportAssignments(module=node16).errors.txt -@@= skipped -0, +0 lines =@@ - index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -+subfolder/index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. - - --==== subfolder/index.ts (0 errors) ==== -+==== subfolder/index.ts (1 errors) ==== - // cjs format file - const a = {}; - export = a; -+ ~~~~~~~~~~~ -+!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. - ==== index.ts (1 errors) ==== - // esm format file - const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js index aefe789bab..5b2027b8d7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js @@ -20,8 +20,9 @@ export = a; } //// [index.js] +"use strict"; const a = {}; -export {}; +module.exports = a; //// [index.js] const a = {}; export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js.diff index 0a5a87d03c..0a8ab237a6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=node16).js.diff @@ -1,14 +1,12 @@ --- old.nodeModulesExportAssignments(module=node16).js +++ new.nodeModulesExportAssignments(module=node16).js -@@= skipped -19, +19 lines =@@ - } +@@= skipped -20, +20 lines =@@ //// [index.js] --"use strict"; + "use strict"; -// cjs format file const a = {}; --module.exports = a; -+export {}; + module.exports = a; //// [index.js] -// esm format file const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).errors.txt index 0b39eaa7b4..edb49c7a61 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).errors.txt @@ -1,13 +1,10 @@ index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -subfolder/index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -==== subfolder/index.ts (1 errors) ==== +==== subfolder/index.ts (0 errors) ==== // cjs format file const a = {}; export = a; - ~~~~~~~~~~~ -!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. ==== index.ts (1 errors) ==== // esm format file const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).errors.txt.diff deleted file mode 100644 index 6efa30090b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).errors.txt.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.nodeModulesExportAssignments(module=nodenext).errors.txt -+++ new.nodeModulesExportAssignments(module=nodenext).errors.txt -@@= skipped -0, +0 lines =@@ - index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. -+subfolder/index.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. - - --==== subfolder/index.ts (0 errors) ==== -+==== subfolder/index.ts (1 errors) ==== - // cjs format file - const a = {}; - export = a; -+ ~~~~~~~~~~~ -+!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. - ==== index.ts (1 errors) ==== - // esm format file - const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js index aefe789bab..5b2027b8d7 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js @@ -20,8 +20,9 @@ export = a; } //// [index.js] +"use strict"; const a = {}; -export {}; +module.exports = a; //// [index.js] const a = {}; export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js.diff index 0aef964cde..4e1332708e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportAssignments(module=nodenext).js.diff @@ -1,14 +1,12 @@ --- old.nodeModulesExportAssignments(module=nodenext).js +++ new.nodeModulesExportAssignments(module=nodenext).js -@@= skipped -19, +19 lines =@@ - } +@@= skipped -20, +20 lines =@@ //// [index.js] --"use strict"; + "use strict"; -// cjs format file const a = {}; --module.exports = a; -+export {}; + module.exports = a; //// [index.js] -// esm format file const a = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node16).js index 5548ce22de..396ca2dfc4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node16).js @@ -64,6 +64,7 @@ import {} from "just-types-versions/foo"; //// [main.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //// [main.mjs] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node16).js.diff deleted file mode 100644 index a5fafcb010..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=node16).js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.nodeModulesExportsBlocksTypesVersions(module=node16).js -+++ new.nodeModulesExportsBlocksTypesVersions(module=node16).js -@@= skipped -63, +63 lines =@@ - - - //// [main.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; - //// [main.mjs] - export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=nodenext).js index 5548ce22de..396ca2dfc4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=nodenext).js @@ -64,6 +64,7 @@ import {} from "just-types-versions/foo"; //// [main.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); //// [main.mjs] export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=nodenext).js.diff deleted file mode 100644 index 07b79ffdf0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesExportsBlocksTypesVersions(module=nodenext).js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.nodeModulesExportsBlocksTypesVersions(module=nodenext).js -+++ new.nodeModulesExportsBlocksTypesVersions(module=nodenext).js -@@= skipped -63, +63 lines =@@ - - - //// [main.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; - //// [main.mjs] - export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js index 182b9100a7..45905d258d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js @@ -67,11 +67,17 @@ export {x}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.mjs] const x = () => (void 0); export { x }; @@ -79,8 +85,11 @@ export { x }; const x = () => (void 0); export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.mjs] const x = () => (void 0); export { x }; @@ -91,14 +100,20 @@ export { x }; const x = () => (void 0); export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.mjs] const x = () => (void 0); export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.js] const x = () => (void 0); export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js.diff index 376bd197f7..b39b40fe7c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=node16).js.diff @@ -1,24 +1,19 @@ --- old.nodeModulesForbidenSyntax(module=node16).js +++ new.nodeModulesForbidenSyntax(module=node16).js -@@= skipped -66, +66 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -69, +69 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = () => (void 0); @@ -32,13 +27,12 @@ -exports.x = x; +export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = () => (void 0); @@ -52,25 +46,23 @@ const x = () => (void 0); export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + 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; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.js] -// esm format file const x = () => (void 0); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js index 182b9100a7..45905d258d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js @@ -67,11 +67,17 @@ export {x}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.mjs] const x = () => (void 0); export { x }; @@ -79,8 +85,11 @@ export { x }; const x = () => (void 0); export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.mjs] const x = () => (void 0); export { x }; @@ -91,14 +100,20 @@ export { x }; const x = () => (void 0); export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.mjs] const x = () => (void 0); export { x }; //// [index.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = () => (void 0); -export { x }; +exports.x = x; //// [index.js] const x = () => (void 0); export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js.diff index 36abb92b52..92c1f6df1d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesForbidenSyntax(module=nodenext).js.diff @@ -1,24 +1,19 @@ --- old.nodeModulesForbidenSyntax(module=nodenext).js +++ new.nodeModulesForbidenSyntax(module=nodenext).js -@@= skipped -66, +66 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -69, +69 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = () => (void 0); @@ -32,13 +27,12 @@ -exports.x = x; +export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.mjs] -// esm format file const x = () => (void 0); @@ -52,25 +46,23 @@ const x = () => (void 0); export { x }; //// [index.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + 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; + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = () => (void 0); --exports.x = x; -+export { x }; + exports.x = x; //// [index.js] -// esm format file const x = () => (void 0); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).errors.txt new file mode 100644 index 0000000000..cba5d90874 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).errors.txt @@ -0,0 +1,35 @@ +subfolder/index.ts(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. +subfolder/index.ts(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +subfolder/index.ts(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + +==== subfolder/index.ts (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + const exports = {}; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} + export const __esModule = false; + ~~~~~~~~~~ +!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + export {require, exports, Object}; +==== index.ts (0 errors) ==== + // esm format file + function require() {} + const exports = {}; + class Object {} + export const __esModule = false; + export {require, exports, Object}; +==== package.json (0 errors) ==== + { + "name": "package", + "private": true, + "type": "module" + } +==== subfolder/package.json (0 errors) ==== + { + "type": "commonjs" + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).errors.txt.diff index 96bc456916..818a4590d6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).errors.txt.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).errors.txt.diff @@ -1,43 +1,23 @@ --- old.nodeModulesGeneratedNameCollisions(module=node16).errors.txt +++ new.nodeModulesGeneratedNameCollisions(module=node16).errors.txt -@@= skipped -0, +-1 lines =@@ --subfolder/index.ts(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. --subfolder/index.ts(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +@@= skipped -0, +0 lines =@@ + subfolder/index.ts(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + subfolder/index.ts(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -subfolder/index.ts(4,7): error TS2725: Class name cannot be 'Object' when targeting ES5 with module Node16. --subfolder/index.ts(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- -- + subfolder/index.ts(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + -==== subfolder/index.ts (4 errors) ==== -- // cjs format file -- function require() {} -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. -- const exports = {}; -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -- class Object {} ++==== subfolder/index.ts (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +@@= skipped -12, +11 lines =@@ + ~~~~~~~ + !!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} - ~~~~~~ -!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module Node16. -- export const __esModule = false; -- ~~~~~~~~~~ --!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- export {require, exports, Object}; --==== index.ts (0 errors) ==== -- // esm format file -- function require() {} -- const exports = {}; -- class Object {} -- export const __esModule = false; -- export {require, exports, Object}; --==== package.json (0 errors) ==== -- { -- "name": "package", -- "private": true, -- "type": "module" -- } --==== subfolder/package.json (0 errors) ==== -- { -- "type": "commonjs" -- } -@@= skipped --1, +1 lines =@@ -+ + export const __esModule = false; + ~~~~~~~~~~ + !!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js index f28f49c0c2..573c448fa3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js @@ -26,12 +26,17 @@ export {require, exports, Object}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Object = exports.exports = exports.__esModule = void 0; +exports.require = require; function require() { } const exports = {}; +exports.exports = exports; class Object { } -export const __esModule = false; -export { require, exports, Object }; +exports.Object = Object; +exports.__esModule = false; //// [index.js] function require() { } const exports = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js.diff index ba34044f19..b097913e6b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=node16).js.diff @@ -1,23 +1,16 @@ --- old.nodeModulesGeneratedNameCollisions(module=node16).js +++ new.nodeModulesGeneratedNameCollisions(module=node16).js -@@= skipped -25, +25 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.Object = exports.exports = exports.__esModule = void 0; --exports.require = require; +@@= skipped -29, +29 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Object = exports.exports = exports.__esModule = void 0; + exports.require = require; -// cjs 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 }; + exports.exports = exports; +@@= skipped -9, +8 lines =@@ + exports.Object = Object; + exports.__esModule = false; //// [index.js] -// esm format file function require() { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt new file mode 100644 index 0000000000..cba5d90874 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt @@ -0,0 +1,35 @@ +subfolder/index.ts(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. +subfolder/index.ts(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +subfolder/index.ts(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + +==== subfolder/index.ts (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + const exports = {}; + ~~~~~~~ +!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} + export const __esModule = false; + ~~~~~~~~~~ +!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + export {require, exports, Object}; +==== index.ts (0 errors) ==== + // esm format file + function require() {} + const exports = {}; + class Object {} + export const __esModule = false; + export {require, exports, Object}; +==== package.json (0 errors) ==== + { + "name": "package", + "private": true, + "type": "module" + } +==== subfolder/package.json (0 errors) ==== + { + "type": "commonjs" + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt.diff index a0ffe6084d..5887fb5182 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt.diff @@ -1,43 +1,23 @@ --- old.nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt +++ new.nodeModulesGeneratedNameCollisions(module=nodenext).errors.txt -@@= skipped -0, +-1 lines =@@ --subfolder/index.ts(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. --subfolder/index.ts(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +@@= skipped -0, +0 lines =@@ + subfolder/index.ts(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + subfolder/index.ts(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -subfolder/index.ts(4,7): error TS2725: Class name cannot be 'Object' when targeting ES5 with module NodeNext. --subfolder/index.ts(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- -- + subfolder/index.ts(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + -==== subfolder/index.ts (4 errors) ==== -- // cjs format file -- function require() {} -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. -- const exports = {}; -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -- class Object {} ++==== subfolder/index.ts (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +@@= skipped -12, +11 lines =@@ + ~~~~~~~ + !!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} - ~~~~~~ -!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module NodeNext. -- export const __esModule = false; -- ~~~~~~~~~~ --!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- export {require, exports, Object}; --==== index.ts (0 errors) ==== -- // esm format file -- function require() {} -- const exports = {}; -- class Object {} -- export const __esModule = false; -- export {require, exports, Object}; --==== package.json (0 errors) ==== -- { -- "name": "package", -- "private": true, -- "type": "module" -- } --==== subfolder/package.json (0 errors) ==== -- { -- "type": "commonjs" -- } -@@= skipped --1, +1 lines =@@ -+ + export const __esModule = false; + ~~~~~~~~~~ + !!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js index f28f49c0c2..573c448fa3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js @@ -26,12 +26,17 @@ export {require, exports, Object}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Object = exports.exports = exports.__esModule = void 0; +exports.require = require; function require() { } const exports = {}; +exports.exports = exports; class Object { } -export const __esModule = false; -export { require, exports, Object }; +exports.Object = Object; +exports.__esModule = false; //// [index.js] function require() { } const exports = {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js.diff index 57350f610b..770d7333b8 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesGeneratedNameCollisions(module=nodenext).js.diff @@ -1,23 +1,16 @@ --- old.nodeModulesGeneratedNameCollisions(module=nodenext).js +++ new.nodeModulesGeneratedNameCollisions(module=nodenext).js -@@= skipped -25, +25 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.Object = exports.exports = exports.__esModule = void 0; --exports.require = require; +@@= skipped -29, +29 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Object = exports.exports = exports.__esModule = void 0; + exports.require = require; -// cjs 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 }; + exports.exports = exports; +@@= skipped -9, +8 lines =@@ + exports.Object = Object; + exports.__esModule = false; //// [index.js] -// esm format file function require() { } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js index db8dd95e05..4cb4915473 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js @@ -15,5 +15,6 @@ const json2 = import("./package.json", { assert: { type: "json" } }); // should //// [index.js] export {}; //// [otherc.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const json2 = import("./package.json", { assert: { type: "json" } }); -export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js.diff index eab61f94db..129164d1a4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=node16).js.diff @@ -1,11 +1,8 @@ --- old.nodeModulesImportAssertions(module=node16).js +++ new.nodeModulesImportAssertions(module=node16).js -@@= skipped -14, +14 lines =@@ - //// [index.js] - export {}; +@@= skipped -16, +16 lines =@@ //// [otherc.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +const json2 = import("./package.json", { assert: { type: "json" } }); -+export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js index db8dd95e05..4cb4915473 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js @@ -15,5 +15,6 @@ const json2 = import("./package.json", { assert: { type: "json" } }); // should //// [index.js] export {}; //// [otherc.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const json2 = import("./package.json", { assert: { type: "json" } }); -export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js.diff index 0b9424fed9..b70ca68f91 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssertions(module=nodenext).js.diff @@ -1,11 +1,8 @@ --- old.nodeModulesImportAssertions(module=nodenext).js +++ new.nodeModulesImportAssertions(module=nodenext).js -@@= skipped -14, +14 lines =@@ - //// [index.js] - export {}; +@@= skipped -16, +16 lines =@@ //// [otherc.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +const json2 = import("./package.json", { assert: { type: "json" } }); -+export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js index 252f03ad4d..ceb9f4c724 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js @@ -31,12 +31,11 @@ export import fs2 = require("fs"); declare module "fs"; //// [index.js] -import { createRequire as _createRequire } from "module"; -const __require = _createRequire(import.meta.url); -const fs = __require("fs"); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = require("fs"); fs.readFile; -const fs2 = __require("fs"); -export { fs2 }; +exports.fs2 = require("fs"); //// [index.js] import { createRequire as _createRequire } from "module"; const __require = _createRequire(import.meta.url); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js.diff index 1f96113ea4..a07055039f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=node16).js.diff @@ -1,20 +1,13 @@ --- old.nodeModulesImportAssignments(module=node16).js +++ new.nodeModulesImportAssignments(module=node16).js -@@= skipped -30, +30 lines =@@ - declare module "fs"; - +@@= skipped -32, +32 lines =@@ //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const fs = require("fs"); -+import { createRequire as _createRequire } from "module"; -+const __require = _createRequire(import.meta.url); -+const fs = __require("fs"); + const fs = require("fs"); fs.readFile; --exports.fs2 = require("fs"); -+const fs2 = __require("fs"); -+export { fs2 }; + exports.fs2 = require("fs"); //// [index.js] import { createRequire as _createRequire } from "module"; const __require = _createRequire(import.meta.url); @@ -22,7 +15,7 @@ const fs = __require("fs"); fs.readFile; const fs2 = __require("fs"); -@@= skipped -17, +16 lines =@@ +@@= skipped -15, +13 lines =@@ //// [file.js] import { createRequire as _createRequire_1 } from "module"; const __require_1 = _createRequire_1(import.meta.url); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js index 252f03ad4d..ceb9f4c724 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js @@ -31,12 +31,11 @@ export import fs2 = require("fs"); declare module "fs"; //// [index.js] -import { createRequire as _createRequire } from "module"; -const __require = _createRequire(import.meta.url); -const fs = __require("fs"); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = require("fs"); fs.readFile; -const fs2 = __require("fs"); -export { fs2 }; +exports.fs2 = require("fs"); //// [index.js] import { createRequire as _createRequire } from "module"; const __require = _createRequire(import.meta.url); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js.diff index 7a1f1bde3f..090a55632b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAssignments(module=nodenext).js.diff @@ -1,20 +1,13 @@ --- old.nodeModulesImportAssignments(module=nodenext).js +++ new.nodeModulesImportAssignments(module=nodenext).js -@@= skipped -30, +30 lines =@@ - declare module "fs"; - +@@= skipped -32, +32 lines =@@ //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const fs = require("fs"); -+import { createRequire as _createRequire } from "module"; -+const __require = _createRequire(import.meta.url); -+const fs = __require("fs"); + const fs = require("fs"); fs.readFile; --exports.fs2 = require("fs"); -+const fs2 = __require("fs"); -+export { fs2 }; + exports.fs2 = require("fs"); //// [index.js] import { createRequire as _createRequire } from "module"; const __require = _createRequire(import.meta.url); @@ -22,7 +15,7 @@ const fs = __require("fs"); fs.readFile; const fs2 = __require("fs"); -@@= skipped -17, +16 lines =@@ +@@= skipped -15, +13 lines =@@ //// [file.js] import { createRequire as _createRequire_1 } from "module"; const __require_1 = _createRequire_1(import.meta.url); diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js index f7a8c7058d..a0d013179d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js @@ -16,5 +16,6 @@ const json2 = import("./package.json", { with: { type: "json" } }); // should be //// [index.js] export {}; //// [otherc.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const json2 = import("./package.json", { with: { type: "json" } }); -export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js.diff index b673e58234..45d97aa086 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=node16).js.diff @@ -1,11 +1,8 @@ --- old.nodeModulesImportAttributes(module=node16).js +++ new.nodeModulesImportAttributes(module=node16).js -@@= skipped -15, +15 lines =@@ - //// [index.js] - export {}; +@@= skipped -17, +17 lines =@@ //// [otherc.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -const json2 = import("./package.json", { with: { type: "json" } }); // should be fine +const json2 = import("./package.json", { with: { type: "json" } }); -+export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js index f7a8c7058d..a0d013179d 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js @@ -16,5 +16,6 @@ const json2 = import("./package.json", { with: { type: "json" } }); // should be //// [index.js] export {}; //// [otherc.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); const json2 = import("./package.json", { with: { type: "json" } }); -export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js.diff index 8035e76427..d779863b19 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportAttributes(module=nodenext).js.diff @@ -1,11 +1,8 @@ --- old.nodeModulesImportAttributes(module=nodenext).js +++ new.nodeModulesImportAttributes(module=nodenext).js -@@= skipped -15, +15 lines =@@ - //// [index.js] - export {}; +@@= skipped -17, +17 lines =@@ //// [otherc.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -const json2 = import("./package.json", { with: { type: "json" } }); // should be fine +const json2 = import("./package.json", { with: { type: "json" } }); -+export {}; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js index 830340ead7..27ac2a8ed5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js @@ -30,9 +30,12 @@ declare module "tslib" { } //// [index.js] -import { default as _fs } from "fs"; -_fs.readFile; -import * as fs from "fs"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const tslib_1 = require("tslib"); +const fs_1 = tslib_1.__importDefault(require("fs")); +fs_1.default.readFile; +const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] import { default as _fs } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js.diff index 8ec9a34560..9852c5cd07 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=node16).js.diff @@ -1,19 +1,13 @@ --- old.nodeModulesImportHelpersCollisions(module=node16).js +++ new.nodeModulesImportHelpersCollisions(module=node16).js -@@= skipped -29, +29 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --const tslib_1 = require("tslib"); +@@= skipped -32, +32 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + const tslib_1 = require("tslib"); -// cjs format file --const fs_1 = tslib_1.__importDefault(require("fs")); --fs_1.default.readFile; --const fs = tslib_1.__importStar(require("fs")); -+import { default as _fs } from "fs"; -+_fs.readFile; -+import * as fs from "fs"; + const fs_1 = tslib_1.__importDefault(require("fs")); + fs_1.default.readFile; + const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] -// esm format file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js index 830340ead7..27ac2a8ed5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js @@ -30,9 +30,12 @@ declare module "tslib" { } //// [index.js] -import { default as _fs } from "fs"; -_fs.readFile; -import * as fs from "fs"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const tslib_1 = require("tslib"); +const fs_1 = tslib_1.__importDefault(require("fs")); +fs_1.default.readFile; +const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] import { default as _fs } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js.diff index 1ad857f3ad..a4b19fcbf2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions(module=nodenext).js.diff @@ -1,19 +1,13 @@ --- old.nodeModulesImportHelpersCollisions(module=nodenext).js +++ new.nodeModulesImportHelpersCollisions(module=nodenext).js -@@= skipped -29, +29 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --const tslib_1 = require("tslib"); +@@= skipped -32, +32 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + const tslib_1 = require("tslib"); -// cjs format file --const fs_1 = tslib_1.__importDefault(require("fs")); --fs_1.default.readFile; --const fs = tslib_1.__importStar(require("fs")); -+import { default as _fs } from "fs"; -+_fs.readFile; -+import * as fs from "fs"; + const fs_1 = tslib_1.__importDefault(require("fs")); + fs_1.default.readFile; + const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] -// esm format file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js index 101a2366bf..406d02e44f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js @@ -26,8 +26,12 @@ declare module "tslib" { } //// [index.js] -export * from "fs"; -export * as fs from "fs"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const tslib_1 = require("tslib"); +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); //// [index.js] export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js.diff index 4c546bec8b..1d0c9aab31 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=node16).js.diff @@ -1,26 +1,21 @@ --- old.nodeModulesImportHelpersCollisions2(module=node16).js +++ new.nodeModulesImportHelpersCollisions2(module=node16).js -@@= skipped -25, +25 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.fs = void 0; --const tslib_1 = require("tslib"); +@@= skipped -29, +29 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fs = void 0; + const tslib_1 = require("tslib"); -// cjs format file --tslib_1.__exportStar(require("fs"), exports); --exports.fs = tslib_1.__importStar(require("fs")); --//// [index.js] + tslib_1.__exportStar(require("fs"), exports); + exports.fs = tslib_1.__importStar(require("fs")); + //// [index.js] -// esm format file export * from "fs"; export * as fs from "fs"; - - -//// [index.d.ts] -+//// [index.js] - export * from "fs"; - export * as fs from "fs"; +-export * from "fs"; +-export * as fs from "fs"; -//// [index.d.ts] -export * from "fs"; -export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js index 101a2366bf..406d02e44f 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js @@ -26,8 +26,12 @@ declare module "tslib" { } //// [index.js] -export * from "fs"; -export * as fs from "fs"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const tslib_1 = require("tslib"); +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); //// [index.js] export * from "fs"; export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js.diff index 9713788710..36d3807ebf 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions2(module=nodenext).js.diff @@ -1,26 +1,21 @@ --- old.nodeModulesImportHelpersCollisions2(module=nodenext).js +++ new.nodeModulesImportHelpersCollisions2(module=nodenext).js -@@= skipped -25, +25 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.fs = void 0; --const tslib_1 = require("tslib"); +@@= skipped -29, +29 lines =@@ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fs = void 0; + const tslib_1 = require("tslib"); -// cjs format file --tslib_1.__exportStar(require("fs"), exports); --exports.fs = tslib_1.__importStar(require("fs")); --//// [index.js] + tslib_1.__exportStar(require("fs"), exports); + exports.fs = tslib_1.__importStar(require("fs")); + //// [index.js] -// esm format file export * from "fs"; export * as fs from "fs"; - - -//// [index.d.ts] -+//// [index.js] - export * from "fs"; - export * as fs from "fs"; +-export * from "fs"; +-export * as fs from "fs"; -//// [index.d.ts] -export * from "fs"; -export * as fs from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js index 557d0cb24a..7aa10b2c1a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js @@ -24,6 +24,11 @@ declare module "tslib" { } //// [index.js] -export { default } from "fs"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = void 0; +const tslib_1 = require("tslib"); +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); //// [index.js] export { default } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff index e8326e1a97..7809db21ea 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=node16).js.diff @@ -1,17 +1,15 @@ --- old.nodeModulesImportHelpersCollisions3(module=node16).js +++ new.nodeModulesImportHelpersCollisions3(module=node16).js -@@= skipped -23, +23 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.default = void 0; +@@= skipped -26, +26 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = void 0; -var tslib_1 = require("tslib"); -// cjs format file -var fs_1 = require("fs"); --Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); -+export { default } from "fs"; ++const tslib_1 = require("tslib"); ++const fs_1 = require("fs"); + Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); //// [index.js] -// esm format file export { default } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js index 557d0cb24a..7aa10b2c1a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js @@ -24,6 +24,11 @@ declare module "tslib" { } //// [index.js] -export { default } from "fs"; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = void 0; +const tslib_1 = require("tslib"); +const fs_1 = require("fs"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); //// [index.js] export { default } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff index 9a9abf93d9..8bf1f94eab 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportHelpersCollisions3(module=nodenext).js.diff @@ -1,17 +1,15 @@ --- old.nodeModulesImportHelpersCollisions3(module=nodenext).js +++ new.nodeModulesImportHelpersCollisions3(module=nodenext).js -@@= skipped -23, +23 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.default = void 0; +@@= skipped -26, +26 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = void 0; -var tslib_1 = require("tslib"); -// cjs format file -var fs_1 = require("fs"); --Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); -+export { default } from "fs"; ++const tslib_1 = require("tslib"); ++const fs_1 = require("fs"); + Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(fs_1).default; } }); //// [index.js] -// esm format file export { default } from "fs"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js index efb24cfd78..9cee009ef4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js @@ -20,8 +20,11 @@ export {x}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = import.meta.url; -export { x }; +exports.x = x; //// [index.js] const x = import.meta.url; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js.diff index 34496b9ab3..857eeb7523 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=node16).js.diff @@ -1,16 +1,12 @@ --- old.nodeModulesImportMeta(module=node16).js +++ new.nodeModulesImportMeta(module=node16).js -@@= skipped -19, +19 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -22, +22 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = import.meta.url; --exports.x = x; -+export { x }; + exports.x = x; //// [index.js] -// esm format file const x = import.meta.url; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js index efb24cfd78..9cee009ef4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js @@ -20,8 +20,11 @@ export {x}; } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = import.meta.url; -export { x }; +exports.x = x; //// [index.js] const x = import.meta.url; export { x }; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js.diff index b5968cfd7b..e991e9aeef 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportMeta(module=nodenext).js.diff @@ -1,16 +1,12 @@ --- old.nodeModulesImportMeta(module=nodenext).js +++ new.nodeModulesImportMeta(module=nodenext).js -@@= skipped -19, +19 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -22, +22 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = import.meta.url; --exports.x = x; -+export { x }; + exports.x = x; //// [index.js] -// esm format file const x = import.meta.url; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js index 504ad9de41..37c2e5b514 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js @@ -24,7 +24,32 @@ type; } //// [index.cjs] -import * as type from "#type"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const type = __importStar(require("#type")); type; //// [index.js] import * as type from "#type"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js.diff index a6499df541..9bf0519117 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=node16).js.diff @@ -1,37 +1,11 @@ --- old.nodeModulesImportResolutionIntoExport(module=node16).js +++ new.nodeModulesImportResolutionIntoExport(module=node16).js -@@= skipped -23, +23 lines =@@ - } - - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -48, +48 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const type = __importStar(require("#type")); -+import * as type from "#type"; + const type = __importStar(require("#type")); type; //// [index.js] -// esm format file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js index 504ad9de41..37c2e5b514 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js @@ -24,7 +24,32 @@ type; } //// [index.cjs] -import * as type from "#type"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const type = __importStar(require("#type")); type; //// [index.js] import * as type from "#type"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js.diff index 34c850d5ad..50ee7e78d3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionIntoExport(module=nodenext).js.diff @@ -1,37 +1,11 @@ --- old.nodeModulesImportResolutionIntoExport(module=nodenext).js +++ new.nodeModulesImportResolutionIntoExport(module=nodenext).js -@@= skipped -23, +23 lines =@@ - } - - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -48, +48 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const type = __importStar(require("#type")); -+import * as type from "#type"; + const type = __importStar(require("#type")); type; //// [index.js] -// esm format file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js index 1e3104e6d8..f6feb16f3b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js @@ -30,5 +30,30 @@ type; import * as type from "#type"; type; //// [index.cjs] -import * as type from "#type"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const type = __importStar(require("#type")); type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js.diff index 4f5af766f3..be30941ac2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=node16).js.diff @@ -12,34 +12,12 @@ import * as type from "#type"; type; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const type = __importStar(require("#type")); -+import * as type from "#type"; + const type = __importStar(require("#type")); type; - - diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js index 1e3104e6d8..f6feb16f3b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js @@ -30,5 +30,30 @@ type; import * as type from "#type"; type; //// [index.cjs] -import * as type from "#type"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const type = __importStar(require("#type")); type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js.diff index 7124cd7dd7..7338c86663 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesImportResolutionNoCycle(module=nodenext).js.diff @@ -12,34 +12,12 @@ import * as type from "#type"; type; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const type = __importStar(require("#type")); -+import * as type from "#type"; + const type = __importStar(require("#type")); type; - - diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js index c0c61a215f..763d2a1011 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js @@ -102,15 +102,40 @@ cjsi; mjsi; typei; //// [index.cjs] -import * as cjs from "package/cjs"; -import * as mjs from "package/mjs"; -import * as type from "package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); cjs; mjs; type; -import * as cjsi from "inner/cjs"; -import * as mjsi from "inner/mjs"; -import * as typei from "inner"; +const cjsi = __importStar(require("inner/cjs")); +const mjsi = __importStar(require("inner/mjs")); +const typei = __importStar(require("inner")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js.diff index 805e4c967d..605f9f619b 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=node16).js.diff @@ -8,52 +8,15 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -14, +13 lines =@@ - mjsi; - typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -39, +38 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjs = __importStar(require("package/cjs")); --const mjs = __importStar(require("package/mjs")); --const type = __importStar(require("package")); -+import * as cjs from "package/cjs"; -+import * as mjs from "package/mjs"; -+import * as type from "package"; - cjs; - mjs; - type; --const cjsi = __importStar(require("inner/cjs")); --const mjsi = __importStar(require("inner/mjs")); --const typei = __importStar(require("inner")); -+import * as cjsi from "inner/cjs"; -+import * as mjsi from "inner/mjs"; -+import * as typei from "inner"; - cjsi; + const cjs = __importStar(require("package/cjs")); + const mjs = __importStar(require("package/mjs")); + const type = __importStar(require("package")); +@@= skipped -14, +13 lines =@@ mjsi; typei; //// [index.js] @@ -61,7 +24,7 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -52, +25 lines =@@ +@@= skipped -13, +12 lines =@@ cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js index c0c61a215f..763d2a1011 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js @@ -102,15 +102,40 @@ cjsi; mjsi; typei; //// [index.cjs] -import * as cjs from "package/cjs"; -import * as mjs from "package/mjs"; -import * as type from "package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjs = __importStar(require("package/cjs")); +const mjs = __importStar(require("package/mjs")); +const type = __importStar(require("package")); cjs; mjs; type; -import * as cjsi from "inner/cjs"; -import * as mjsi from "inner/mjs"; -import * as typei from "inner"; +const cjsi = __importStar(require("inner/cjs")); +const mjsi = __importStar(require("inner/mjs")); +const typei = __importStar(require("inner")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js.diff index 5322704263..a655f42fc6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageExports(module=nodenext).js.diff @@ -8,52 +8,15 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -14, +13 lines =@@ - mjsi; - typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -39, +38 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjs = __importStar(require("package/cjs")); --const mjs = __importStar(require("package/mjs")); --const type = __importStar(require("package")); -+import * as cjs from "package/cjs"; -+import * as mjs from "package/mjs"; -+import * as type from "package"; - cjs; - mjs; - type; --const cjsi = __importStar(require("inner/cjs")); --const mjsi = __importStar(require("inner/mjs")); --const typei = __importStar(require("inner")); -+import * as cjsi from "inner/cjs"; -+import * as mjsi from "inner/mjs"; -+import * as typei from "inner"; - cjsi; + const cjs = __importStar(require("package/cjs")); + const mjs = __importStar(require("package/mjs")); + const type = __importStar(require("package")); +@@= skipped -14, +13 lines =@@ mjsi; typei; //// [index.js] @@ -61,7 +24,7 @@ import * as cjs from "package/cjs"; import * as mjs from "package/mjs"; import * as type from "package"; -@@= skipped -52, +25 lines =@@ +@@= skipped -13, +12 lines =@@ cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js index b5eeee3504..1f178e2821 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js @@ -45,9 +45,34 @@ cjs; mjs; type; //// [index.cjs] -import * as cjs from "#cjs"; -import * as mjs from "#mjs"; -import * as type from "#type"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjs = __importStar(require("#cjs")); +const mjs = __importStar(require("#mjs")); +const type = __importStar(require("#type")); cjs; mjs; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js.diff index 4d340c26f1..d32c56a733 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=node16).js.diff @@ -8,43 +8,15 @@ import * as cjs from "#cjs"; import * as mjs from "#mjs"; import * as type from "#type"; -@@= skipped -8, +7 lines =@@ - mjs; - type; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +32 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const cjs = __importStar(require("#cjs")); --const mjs = __importStar(require("#mjs")); --const type = __importStar(require("#type")); -+import * as cjs from "#cjs"; -+import * as mjs from "#mjs"; -+import * as type from "#type"; - cjs; + const cjs = __importStar(require("#cjs")); + const mjs = __importStar(require("#mjs")); + const type = __importStar(require("#type")); +@@= skipped -8, +7 lines =@@ mjs; type; //// [index.js] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js index b5eeee3504..1f178e2821 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js @@ -45,9 +45,34 @@ cjs; mjs; type; //// [index.cjs] -import * as cjs from "#cjs"; -import * as mjs from "#mjs"; -import * as type from "#type"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjs = __importStar(require("#cjs")); +const mjs = __importStar(require("#mjs")); +const type = __importStar(require("#type")); cjs; mjs; type; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js.diff index 94accbb885..500846d45c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackageImports(module=nodenext).js.diff @@ -8,43 +8,15 @@ import * as cjs from "#cjs"; import * as mjs from "#mjs"; import * as type from "#type"; -@@= skipped -8, +7 lines =@@ - mjs; - type; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +32 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const cjs = __importStar(require("#cjs")); --const mjs = __importStar(require("#mjs")); --const type = __importStar(require("#type")); -+import * as cjs from "#cjs"; -+import * as mjs from "#mjs"; -+import * as type from "#type"; - cjs; + const cjs = __importStar(require("#cjs")); + const mjs = __importStar(require("#mjs")); + const type = __importStar(require("#type")); +@@= skipped -8, +7 lines =@@ mjs; type; //// [index.js] diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js index 4763838fb6..fbdce36c14 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js @@ -80,9 +80,34 @@ cjsi; mjsi; typei; //// [index.cjs] -import * as cjsi from "inner/cjs/index"; -import * as mjsi from "inner/mjs/index"; -import * as typei from "inner/js/index"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjsi = __importStar(require("inner/cjs/index")); +const mjsi = __importStar(require("inner/mjs/index")); +const typei = __importStar(require("inner/js/index")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js.diff index fc34f37c6a..fe1ba967da 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=node16).js.diff @@ -16,42 +16,14 @@ import * as cjsi from "inner/cjs/index"; import * as mjsi from "inner/mjs/index"; import * as typei from "inner/js/index"; -@@= skipped -8, +7 lines =@@ - mjsi; - typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +32 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjsi = __importStar(require("inner/cjs/index")); --const mjsi = __importStar(require("inner/mjs/index")); --const typei = __importStar(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"; + const cjsi = __importStar(require("inner/cjs/index")); + const mjsi = __importStar(require("inner/mjs/index")); + const typei = __importStar(require("inner/js/index")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js index 4763838fb6..fbdce36c14 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js @@ -80,9 +80,34 @@ cjsi; mjsi; typei; //// [index.cjs] -import * as cjsi from "inner/cjs/index"; -import * as mjsi from "inner/mjs/index"; -import * as typei from "inner/js/index"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjsi = __importStar(require("inner/cjs/index")); +const mjsi = __importStar(require("inner/mjs/index")); +const typei = __importStar(require("inner/js/index")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js.diff index 155f420988..15d66b6ec5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExports(module=nodenext).js.diff @@ -16,42 +16,14 @@ import * as cjsi from "inner/cjs/index"; import * as mjsi from "inner/mjs/index"; import * as typei from "inner/js/index"; -@@= skipped -8, +7 lines =@@ - mjsi; - typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +32 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjsi = __importStar(require("inner/cjs/index")); --const mjsi = __importStar(require("inner/mjs/index")); --const typei = __importStar(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"; + const cjsi = __importStar(require("inner/cjs/index")); + const mjsi = __importStar(require("inner/mjs/index")); + const typei = __importStar(require("inner/js/index")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js index 68fc80837f..ee54fff65c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js @@ -137,15 +137,40 @@ cjsi2; mjsi2; typei2; //// [index.cjs] -import * as cjsi from "inner/cjs/exclude/index"; -import * as mjsi from "inner/mjs/exclude/index"; -import * as typei from "inner/js/exclude/index"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjsi = __importStar(require("inner/cjs/exclude/index")); +const mjsi = __importStar(require("inner/mjs/exclude/index")); +const typei = __importStar(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 = __importStar(require("inner/cjs/index")); +const mjsi2 = __importStar(require("inner/mjs/index")); +const typei2 = __importStar(require("inner/js/index")); cjsi2; mjsi2; typei2; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js.diff index 7179642946..800d29e0ad 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=node16).js.diff @@ -16,51 +16,15 @@ import * as cjsi from "inner/cjs/exclude/index"; import * as mjsi from "inner/mjs/exclude/index"; import * as typei from "inner/js/exclude/index"; -@@= skipped -14, +13 lines =@@ - mjsi2; - typei2; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -39, +38 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjsi = __importStar(require("inner/cjs/exclude/index")); --const mjsi = __importStar(require("inner/mjs/exclude/index")); --const typei = __importStar(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 = __importStar(require("inner/cjs/index")); --const mjsi2 = __importStar(require("inner/mjs/index")); --const typei2 = __importStar(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"; + const cjsi = __importStar(require("inner/cjs/exclude/index")); + const mjsi = __importStar(require("inner/mjs/exclude/index")); + const typei = __importStar(require("inner/js/exclude/index")); +@@= skipped -13, +12 lines =@@ cjsi2; mjsi2; typei2; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js index 68fc80837f..ee54fff65c 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js @@ -137,15 +137,40 @@ cjsi2; mjsi2; typei2; //// [index.cjs] -import * as cjsi from "inner/cjs/exclude/index"; -import * as mjsi from "inner/mjs/exclude/index"; -import * as typei from "inner/js/exclude/index"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjsi = __importStar(require("inner/cjs/exclude/index")); +const mjsi = __importStar(require("inner/mjs/exclude/index")); +const typei = __importStar(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 = __importStar(require("inner/cjs/index")); +const mjsi2 = __importStar(require("inner/mjs/index")); +const typei2 = __importStar(require("inner/js/index")); cjsi2; mjsi2; typei2; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js.diff index 0ab51abc76..56f894c148 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsExclude(module=nodenext).js.diff @@ -16,51 +16,15 @@ import * as cjsi from "inner/cjs/exclude/index"; import * as mjsi from "inner/mjs/exclude/index"; import * as typei from "inner/js/exclude/index"; -@@= skipped -14, +13 lines =@@ - mjsi2; - typei2; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -39, +38 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjsi = __importStar(require("inner/cjs/exclude/index")); --const mjsi = __importStar(require("inner/mjs/exclude/index")); --const typei = __importStar(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 = __importStar(require("inner/cjs/index")); --const mjsi2 = __importStar(require("inner/mjs/index")); --const typei2 = __importStar(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"; + const cjsi = __importStar(require("inner/cjs/exclude/index")); + const mjsi = __importStar(require("inner/mjs/exclude/index")); + const typei = __importStar(require("inner/js/exclude/index")); +@@= skipped -13, +12 lines =@@ cjsi2; mjsi2; typei2; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js index edee95848b..b0fd483ce1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js @@ -80,9 +80,34 @@ cjsi; mjsi; typei; //// [index.cjs] -import * as cjsi from "inner/cjs/index.cjs"; -import * as mjsi from "inner/mjs/index.mjs"; -import * as typei from "inner/js/index.js"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjsi = __importStar(require("inner/cjs/index.cjs")); +const mjsi = __importStar(require("inner/mjs/index.mjs")); +const typei = __importStar(require("inner/js/index.js")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js.diff index dda8eb72b0..adc6fe30ff 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=node16).js.diff @@ -16,42 +16,14 @@ import * as cjsi from "inner/cjs/index.cjs"; import * as mjsi from "inner/mjs/index.mjs"; import * as typei from "inner/js/index.js"; -@@= skipped -8, +7 lines =@@ - mjsi; - typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +32 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjsi = __importStar(require("inner/cjs/index.cjs")); --const mjsi = __importStar(require("inner/mjs/index.mjs")); --const typei = __importStar(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"; + const cjsi = __importStar(require("inner/cjs/index.cjs")); + const mjsi = __importStar(require("inner/mjs/index.mjs")); + const typei = __importStar(require("inner/js/index.js")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js index edee95848b..b0fd483ce1 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js @@ -80,9 +80,34 @@ cjsi; mjsi; typei; //// [index.cjs] -import * as cjsi from "inner/cjs/index.cjs"; -import * as mjsi from "inner/mjs/index.mjs"; -import * as typei from "inner/js/index.js"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const cjsi = __importStar(require("inner/cjs/index.cjs")); +const mjsi = __importStar(require("inner/mjs/index.mjs")); +const typei = __importStar(require("inner/js/index.js")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js.diff index bf027cc888..07a3587a0e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesPackagePatternExportsTrailers(module=nodenext).js.diff @@ -16,42 +16,14 @@ import * as cjsi from "inner/cjs/index.cjs"; import * as mjsi from "inner/mjs/index.mjs"; import * as typei from "inner/js/index.js"; -@@= skipped -8, +7 lines =@@ - mjsi; - typei; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +32 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const cjsi = __importStar(require("inner/cjs/index.cjs")); --const mjsi = __importStar(require("inner/mjs/index.mjs")); --const typei = __importStar(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"; + const cjsi = __importStar(require("inner/cjs/index.cjs")); + const mjsi = __importStar(require("inner/mjs/index.mjs")); + const typei = __importStar(require("inner/js/index.js")); cjsi; mjsi; typei; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js index c86a5e4af5..98a38cbbd4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js @@ -33,11 +33,40 @@ import * as ns from "./package.json" with { type: "json" }; export const thing = ns; export const name2 = ns.default.name; //// [index.cjs] -import pkg from "./package.json"; -export const name = pkg.name; -import * as ns from "./package.json"; -export const thing = ns; -export const name2 = ns.default.name; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.name2 = exports.thing = exports.name = void 0; +const package_json_1 = __importDefault(require("./package.json")); +exports.name = package_json_1.default.name; +const ns = __importStar(require("./package.json")); +exports.thing = ns; +exports.name2 = ns.default.name; //// [index.mjs] import pkg from "./package.json" with { type: "json" }; export const name = pkg.name; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js.diff index b224777e77..cb88d8fac2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=node16).js.diff @@ -14,52 +14,7 @@ //// [index.js] import pkg from "./package.json" with { type: "json" }; export const name = pkg.name; -@@= skipped -14, +7 lines =@@ - export const thing = ns; - export const name2 = ns.default.name; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --var __importDefault = (this && this.__importDefault) || function (mod) { -- return (mod && mod.__esModule) ? mod : { "default": mod }; --}; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.name2 = exports.thing = exports.name = void 0; --const package_json_1 = __importDefault(require("./package.json")); --exports.name = package_json_1.default.name; --const ns = __importStar(require("./package.json")); --exports.thing = ns; --exports.name2 = ns.default.name; -+import pkg from "./package.json"; -+export const name = pkg.name; -+import * as ns from "./package.json"; -+export const thing = ns; -+export const name2 = ns.default.name; - //// [index.mjs] - import pkg from "./package.json" with { type: "json" }; - export const name = pkg.name; +@@= skipped -54, +47 lines =@@ import * as ns from "./package.json" with { type: "json" }; export const thing = ns; export const name2 = ns.default.name; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js index c86a5e4af5..98a38cbbd4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js @@ -33,11 +33,40 @@ import * as ns from "./package.json" with { type: "json" }; export const thing = ns; export const name2 = ns.default.name; //// [index.cjs] -import pkg from "./package.json"; -export const name = pkg.name; -import * as ns from "./package.json"; -export const thing = ns; -export const name2 = ns.default.name; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.name2 = exports.thing = exports.name = void 0; +const package_json_1 = __importDefault(require("./package.json")); +exports.name = package_json_1.default.name; +const ns = __importStar(require("./package.json")); +exports.thing = ns; +exports.name2 = ns.default.name; //// [index.mjs] import pkg from "./package.json" with { type: "json" }; export const name = pkg.name; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js.diff index 5aeec5c284..93ee7d63e3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesResolveJsonModule(module=nodenext).js.diff @@ -14,52 +14,7 @@ //// [index.js] import pkg from "./package.json" with { type: "json" }; export const name = pkg.name; -@@= skipped -14, +7 lines =@@ - export const thing = ns; - export const name2 = ns.default.name; - //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --var __importDefault = (this && this.__importDefault) || function (mod) { -- return (mod && mod.__esModule) ? mod : { "default": mod }; --}; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.name2 = exports.thing = exports.name = void 0; --const package_json_1 = __importDefault(require("./package.json")); --exports.name = package_json_1.default.name; --const ns = __importStar(require("./package.json")); --exports.thing = ns; --exports.name2 = ns.default.name; -+import pkg from "./package.json"; -+export const name = pkg.name; -+import * as ns from "./package.json"; -+export const thing = ns; -+export const name2 = ns.default.name; - //// [index.mjs] - import pkg from "./package.json" with { type: "json" }; - export const name = pkg.name; +@@= skipped -54, +47 lines =@@ import * as ns from "./package.json" with { type: "json" }; export const thing = ns; export const name2 = ns.default.name; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js index 64355c9c1b..5317be43b0 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js @@ -41,9 +41,12 @@ export async function h() { f(); } //// [index.js] -import { h } from "../index.js"; -export async function f() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = f; +const index_js_1 = require("../index.js"); +async function f() { const mod3 = await import("../index.js"); const mod4 = await import("./index.js"); - h(); + (0, index_js_1.h)(); } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js.diff index 3cd71c36a2..6459eef9e5 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=node16).js.diff @@ -1,21 +1,15 @@ --- old.nodeModulesSynchronousCallErrors(module=node16).js +++ new.nodeModulesSynchronousCallErrors(module=node16).js -@@= skipped -40, +40 lines =@@ - f(); - } - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.f = f; +@@= skipped -43, +43 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.f = f; -// cjs format file --const index_js_1 = require("../index.js"); --async function f() { -+import { h } from "../index.js"; -+export async function f() { + const index_js_1 = require("../index.js"); + async function f() { const mod3 = await import("../index.js"); const mod4 = await import("./index.js"); -- (0, index_js_1.h)(); -+ h(); + (0, index_js_1.h)(); } - - diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js index 64355c9c1b..5317be43b0 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js @@ -41,9 +41,12 @@ export async function h() { f(); } //// [index.js] -import { h } from "../index.js"; -export async function f() { +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.f = f; +const index_js_1 = require("../index.js"); +async function f() { const mod3 = await import("../index.js"); const mod4 = await import("./index.js"); - h(); + (0, index_js_1.h)(); } diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js.diff index 8915320b10..673dc1b540 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesSynchronousCallErrors(module=nodenext).js.diff @@ -1,21 +1,15 @@ --- old.nodeModulesSynchronousCallErrors(module=nodenext).js +++ new.nodeModulesSynchronousCallErrors(module=nodenext).js -@@= skipped -40, +40 lines =@@ - f(); - } - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.f = f; +@@= skipped -43, +43 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.f = f; -// cjs format file --const index_js_1 = require("../index.js"); --async function f() { -+import { h } from "../index.js"; -+export async function f() { + const index_js_1 = require("../index.js"); + async function f() { const mod3 = await import("../index.js"); const mod4 = await import("./index.js"); -- (0, index_js_1.h)(); -+ h(); + (0, index_js_1.h)(); } - - diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt index bde172d3b2..3a11425d12 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt @@ -1,18 +1,18 @@ index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +subfolder/index.ts(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +subfolder/index.ts(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== subfolder/index.ts (2 errors) ==== // cjs format file const x = await 1; ~~~~~ -!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. export {x}; for await (const y of []) {} ~~~~~ -!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== index.ts (2 errors) ==== // esm format file const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt.diff index eca066cf58..ba9340836a 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).errors.txt.diff @@ -1,26 +1,16 @@ --- old.nodeModulesTopLevelAwait(module=node16).errors.txt +++ new.nodeModulesTopLevelAwait(module=node16).errors.txt @@= skipped -0, +0 lines =@@ --subfolder/index.ts(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. --subfolder/index.ts(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. + subfolder/index.ts(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + subfolder/index.ts(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. - - ==== subfolder/index.ts (2 errors) ==== - // cjs format file - const x = await 1; - ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -+!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. - export {x}; +@@= skipped -10, +12 lines =@@ for await (const y of []) {} ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + !!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -==== index.ts (0 errors) ==== -+!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +==== index.ts (2 errors) ==== // esm format file const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js index ecfd218fcc..d8e570970e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js @@ -22,8 +22,11 @@ for await (const y of []) {} } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = await 1; -export { x }; +exports.x = x; for await (const y of []) { } //// [index.js] const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js.diff index 095cef46ee..df8b61a6c2 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=node16).js.diff @@ -1,16 +1,12 @@ --- old.nodeModulesTopLevelAwait(module=node16).js +++ new.nodeModulesTopLevelAwait(module=node16).js -@@= skipped -21, +21 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -24, +24 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = await 1; --exports.x = x; -+export { x }; + exports.x = x; for await (const y of []) { } //// [index.js] -// esm format file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt index bde172d3b2..3a11425d12 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt @@ -1,18 +1,18 @@ index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -subfolder/index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +subfolder/index.ts(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +subfolder/index.ts(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== subfolder/index.ts (2 errors) ==== // cjs format file const x = await 1; ~~~~~ -!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. export {x}; for await (const y of []) {} ~~~~~ -!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. ==== index.ts (2 errors) ==== // esm format file const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt.diff index 2de2cd7757..9dd8637042 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).errors.txt.diff @@ -1,26 +1,16 @@ --- old.nodeModulesTopLevelAwait(module=nodenext).errors.txt +++ new.nodeModulesTopLevelAwait(module=nodenext).errors.txt @@= skipped -0, +0 lines =@@ --subfolder/index.ts(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. --subfolder/index.ts(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.ts(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.ts(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. + subfolder/index.ts(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + subfolder/index.ts(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. - - ==== subfolder/index.ts (2 errors) ==== - // cjs format file - const x = await 1; - ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -+!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. - export {x}; +@@= skipped -10, +12 lines =@@ for await (const y of []) {} ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + !!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -==== index.ts (0 errors) ==== -+!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +==== index.ts (2 errors) ==== // esm format file const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js index ecfd218fcc..d8e570970e 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js @@ -22,8 +22,11 @@ for await (const y of []) {} } //// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.x = void 0; const x = await 1; -export { x }; +exports.x = x; for await (const y of []) { } //// [index.js] const x = await 1; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js.diff index 207634806e..439a8181b0 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTopLevelAwait(module=nodenext).js.diff @@ -1,16 +1,12 @@ --- old.nodeModulesTopLevelAwait(module=nodenext).js +++ new.nodeModulesTopLevelAwait(module=nodenext).js -@@= skipped -21, +21 lines =@@ - } - - //// [index.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); --exports.x = void 0; +@@= skipped -24, +24 lines =@@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.x = void 0; -// cjs format file const x = await 1; --exports.x = x; -+export { x }; + exports.x = x; for await (const y of []) { } //// [index.js] -// esm format file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js index b7d6264f9b..453dacfcd3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js @@ -51,7 +51,9 @@ export default [obj1, obj2.default] as const; //// [uses.js] export default getInterI(); //// [uses.js] -export default getInterR(); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getInterR(); //// [index.js] import obj1 from "./sub1/uses.js"; import obj2 from "./sub2/uses.js"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js.diff index 4edabd6116..fc2efdfd28 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node16).js.diff @@ -7,11 +7,10 @@ -/// export default getInterI(); //// [uses.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -/// --exports.default = getInterR(); -+export default getInterR(); + exports.default = getInterR(); //// [index.js] -// only an esm file can `import` both kinds of files import obj1 from "./sub1/uses.js"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js index b7d6264f9b..453dacfcd3 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js @@ -51,7 +51,9 @@ export default [obj1, obj2.default] as const; //// [uses.js] export default getInterI(); //// [uses.js] -export default getInterR(); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = getInterR(); //// [index.js] import obj1 from "./sub1/uses.js"; import obj2 from "./sub2/uses.js"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js.diff index ad2d39d6b3..965e24fc05 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js.diff @@ -7,11 +7,10 @@ -/// export default getInterI(); //// [uses.js] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -/// --exports.default = getInterR(); -+export default getInterR(); + exports.default = getInterR(); //// [index.js] -// only an esm file can `import` both kinds of files import obj1 from "./sub1/uses.js"; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js index 08b5bf2000..bbb6f9a037 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js @@ -58,5 +58,30 @@ mod.correctVersionApplied; import * as mod from "inner"; mod.correctVersionApplied; //// [index.cjs] -import * as mod from "inner"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const mod = __importStar(require("inner")); mod.correctVersionApplied; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js.diff index 75f0d5a035..63266ef879 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=node16).js.diff @@ -12,34 +12,12 @@ import * as mod from "inner"; mod.correctVersionApplied; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const mod = __importStar(require("inner")); -+import * as mod from "inner"; + const mod = __importStar(require("inner")); mod.correctVersionApplied; - - diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js index 08b5bf2000..bbb6f9a037 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js @@ -58,5 +58,30 @@ mod.correctVersionApplied; import * as mod from "inner"; mod.correctVersionApplied; //// [index.cjs] -import * as mod from "inner"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const mod = __importStar(require("inner")); mod.correctVersionApplied; diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js.diff index 2d65604f22..f757529be4 100644 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesTypesVersionPackageExports(module=nodenext).js.diff @@ -12,34 +12,12 @@ import * as mod from "inner"; mod.correctVersionApplied; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const mod = __importStar(require("inner")); -+import * as mod from "inner"; + const mod = __importStar(require("inner")); mod.correctVersionApplied; - - diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js index 504dcf5a28..9c4a1481d6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js @@ -27,5 +27,30 @@ self; import * as self from "package"; self; //// [index.cjs] -import * as self from "package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const self = __importStar(require("package")); self; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js.diff index d56dc202e5..370f0eb709 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=node16).js.diff @@ -12,34 +12,12 @@ import * as self from "package"; self; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const self = __importStar(require("package")); -+import * as self from "package"; + const self = __importStar(require("package")); self; - - diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js index 504dcf5a28..9c4a1481d6 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js @@ -27,5 +27,30 @@ self; import * as self from "package"; self; //// [index.cjs] -import * as self from "package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const self = __importStar(require("package")); self; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js.diff index 089874685f..8879380417 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfName(module=nodenext).js.diff @@ -12,34 +12,12 @@ import * as self from "package"; self; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// esm format file --const self = __importStar(require("package")); -+import * as self from "package"; + const self = __importStar(require("package")); self; - - diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js index ea0a2e317a..0dd2361a95 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js @@ -27,5 +27,30 @@ self; import * as self from "@scope/package"; self; //// [index.cjs] -import * as self from "@scope/package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const self = __importStar(require("@scope/package")); self; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js.diff index ccec643111..8ec6d8d301 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=node16).js.diff @@ -12,34 +12,12 @@ import * as self from "@scope/package"; self; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const self = __importStar(require("@scope/package")); -+import * as self from "@scope/package"; + const self = __importStar(require("@scope/package")); self; - - diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js index ea0a2e317a..0dd2361a95 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js @@ -27,5 +27,30 @@ self; import * as self from "@scope/package"; self; //// [index.cjs] -import * as self from "@scope/package"; +"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); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const self = __importStar(require("@scope/package")); self; diff --git a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js.diff index 8aa1da1367..d4e6c814ba 100644 --- a/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js.diff +++ b/testdata/baselines/reference/submodule/conformance/nodePackageSelfNameScoped(module=nodenext).js.diff @@ -12,34 +12,12 @@ import * as self from "@scope/package"; self; //// [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); -- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { -- desc = { enumerable: true, get: function() { return m[k]; } }; -- } -- Object.defineProperty(o, k2, desc); --}) : (function(o, m, k, k2) { -- if (k2 === undefined) k2 = k; -- o[k2] = m[k]; --})); --var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { -- Object.defineProperty(o, "default", { enumerable: true, value: v }); --}) : function(o, v) { -- o["default"] = v; --}); --var __importStar = (this && this.__importStar) || function (mod) { -- if (mod && mod.__esModule) return mod; -- var result = {}; -- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); -- __setModuleDefault(result, mod); -- return result; --}; --Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +31 lines =@@ + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); -// cjs format file --const self = __importStar(require("@scope/package")); -+import * as self from "@scope/package"; + const self = __importStar(require("@scope/package")); self; - - diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS.js b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS.js index 260b115ff6..01b406ded5 100644 --- a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS.js +++ b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS.js @@ -15,4 +15,5 @@ type _3 = typeof import("./module.mts", { with: { "resolution-mode": "require" } //// [module.mjs] export {}; //// [common.cjs] -export {}; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS.js.diff b/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS.js.diff deleted file mode 100644 index 5def31dea1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeOnlyESMImportFromCJS.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.typeOnlyESMImportFromCJS.js -+++ new.typeOnlyESMImportFromCJS.js -@@= skipped -14, +14 lines =@@ - //// [module.mjs] - export {}; - //// [common.cjs] --"use strict"; --Object.defineProperty(exports, "__esModule", { value: true }); -+export {}; diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/modulePreserve4.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/modulePreserve4.errors.txt.diff index 3c77f6459f..b474fc781d 100644 --- a/testdata/baselines/reference/submoduleAccepted/compiler/modulePreserve4.errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/compiler/modulePreserve4.errors.txt.diff @@ -2,7 +2,7 @@ +++ new.modulePreserve4.errors.txt @@= skipped -0, +0 lines =@@ /a.js(2,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. --/f.cts(1,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. + /f.cts(1,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. -/main1.ts(1,13): error TS2305: Module '"./a"' has no exported member 'y'. +/g.js(1,1): error TS2304: Cannot find name 'exports'. +/main1.ts(1,13): error TS2305: Module '"/a"' has no exported member 'y'. @@ -27,12 +27,18 @@ -/main3.cjs(17,8): error TS1293: ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'. +/main2.mts(19,16): error TS2306: File '/g.js' is not a module. +/main2.mts(20,21): error TS2306: File '/g.js' is not a module. ++/main3.cjs(1,10): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. +/main3.cjs(1,13): error TS2305: Module '"/a"' has no exported member 'y'. +/main3.cjs(3,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. ++/main3.cjs(5,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. +/main3.cjs(6,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. ++/main3.cjs(8,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. +/main3.cjs(9,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. ++/main3.cjs(10,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. +/main3.cjs(11,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. ++/main3.cjs(12,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. +/main3.cjs(13,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. ++/main3.cjs(14,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. +/main3.cjs(15,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. +/main3.cjs(17,16): error TS2306: File '/g.js' is not a module. +/main3.cjs(18,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. @@ -41,15 +47,9 @@ ==== /a.js (1 errors) ==== -@@= skipped -38, +42 lines =@@ - ==== /e.mts (0 errors) ==== - export = 0; - --==== /f.cts (1 errors) ==== -+==== /f.cts (0 errors) ==== - export default 0; -- ~~~~~~~~~~~~~~~~~ --!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. +@@= skipped -43, +54 lines =@@ + ~~~~~~~~~~~~~~~~~ + !!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. -==== /g.js (0 errors) ==== +==== /g.js (1 errors) ==== @@ -66,7 +66,7 @@ import a1 = require("./a"); // { x: 0 } const a2 = require("./a"); // Error in TS ~~~~~~~ -@@= skipped -38, +38 lines =@@ +@@= skipped -33, +35 lines =@@ d3.default(); import e1 from "./e.mjs"; // 0 @@ -112,10 +112,12 @@ + ~~~~~ +!!! error TS2306: File '/g.js' is not a module. - ==== /main3.cjs (9 errors) ==== +-==== /main3.cjs (9 errors) ==== ++==== /main3.cjs (15 errors) ==== import { x, y } from "./a"; // No y -- ~ + ~ -!!! error TS1293: ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'. ++!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. ~ -!!! error TS2305: Module '"./a"' has no exported member 'y'. +!!! error TS2305: Module '"/a"' has no exported member 'y'. @@ -127,33 +129,38 @@ +!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import b1 from "./b"; // 0 -- ~~ + ~~ -!!! error TS1293: ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'. ++!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const b2 = require("./b"); // { default: 0 } + ~~~~~~~ +!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import c1 from "./c"; // { default: [Function: default] } -- ~~ + ~~ -!!! error TS1293: ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'. ++!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const c2 = require("./c"); // { default: [Function: default] } + ~~~~~~~ +!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import d1 from "./d"; // [Function: default] -- ~~ + ~~ -!!! error TS1293: ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'. ++!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const d2 = require("./d"); // [Function: default] + ~~~~~~~ +!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import e1 from "./e.mjs"; // 0 -- ~~ + ~~ -!!! error TS1293: ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'. ++!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const e2 = require("./e.mjs"); // 0 + ~~~~~~~ +!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. import f1 from "./f.cjs"; // 0 -- ~~ + ~~ -!!! error TS1293: ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'. ++!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. const f2 = require("./f.cjs"); // { default: 0 } + ~~~~~~~ +!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt.diff index 15bd703c3b..f8742c3560 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=node16).errors.txt.diff @@ -6,17 +6,16 @@ -index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files. -subfolder/index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files. +subfolder/file.js(3,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. -+subfolder/index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. - ==== subfolder/index.js (1 errors) ==== -@@= skipped -8, +8 lines =@@ +-==== subfolder/index.js (1 errors) ==== ++==== subfolder/index.js (0 errors) ==== + // cjs format file const a = {}; export = a; - ~~~~~~~~~~~ +- ~~~~~~~~~~~ -!!! error TS8003: 'export =' can only be used in TypeScript files. -==== subfolder/file.js (0 errors) ==== -+!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. +==== subfolder/file.js (1 errors) ==== // cjs format file const a = {}; diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt.diff index c72353b77b..be2cd40e6d 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt.diff @@ -6,17 +6,16 @@ -index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files. -subfolder/index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files. +subfolder/file.js(3,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`. -+subfolder/index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. - ==== subfolder/index.js (1 errors) ==== -@@= skipped -8, +8 lines =@@ +-==== subfolder/index.js (1 errors) ==== ++==== subfolder/index.js (0 errors) ==== + // cjs format file const a = {}; export = a; - ~~~~~~~~~~~ +- ~~~~~~~~~~~ -!!! error TS8003: 'export =' can only be used in TypeScript files. -==== subfolder/file.js (0 errors) ==== -+!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead. +==== subfolder/file.js (1 errors) ==== // cjs format file const a = {}; diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt.diff index 9e6b831947..25d9a57b84 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt.diff @@ -1,43 +1,23 @@ --- old.nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt +++ new.nodeModulesAllowJsGeneratedNameCollisions(module=node16).errors.txt -@@= skipped -0, +-1 lines =@@ --subfolder/index.js(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. --subfolder/index.js(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +@@= skipped -0, +0 lines =@@ + subfolder/index.js(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + subfolder/index.js(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -subfolder/index.js(4,7): error TS2725: Class name cannot be 'Object' when targeting ES5 with module Node16. --subfolder/index.js(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- -- + subfolder/index.js(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + -==== subfolder/index.js (4 errors) ==== -- // cjs format file -- function require() {} -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. -- const exports = {}; -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -- class Object {} ++==== subfolder/index.js (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +@@= skipped -12, +11 lines =@@ + ~~~~~~~ + !!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} - ~~~~~~ -!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module Node16. -- export const __esModule = false; -- ~~~~~~~~~~ --!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- export {require, exports, Object}; --==== index.js (0 errors) ==== -- // esm format file -- function require() {} -- const exports = {}; -- class Object {} -- export const __esModule = false; -- export {require, exports, Object}; --==== package.json (0 errors) ==== -- { -- "name": "package", -- "private": true, -- "type": "module" -- } --==== subfolder/package.json (0 errors) ==== -- { -- "type": "commonjs" -- } -@@= skipped --1, +1 lines =@@ -+ + export const __esModule = false; + ~~~~~~~~~~ + !!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt.diff index 86755eb715..1f1bbb88a1 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt.diff @@ -1,43 +1,23 @@ --- old.nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt +++ new.nodeModulesAllowJsGeneratedNameCollisions(module=nodenext).errors.txt -@@= skipped -0, +-1 lines =@@ --subfolder/index.js(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. --subfolder/index.js(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. +@@= skipped -0, +0 lines =@@ + subfolder/index.js(2,10): error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. + subfolder/index.js(3,7): error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -subfolder/index.js(4,7): error TS2725: Class name cannot be 'Object' when targeting ES5 with module NodeNext. --subfolder/index.js(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- -- + subfolder/index.js(5,14): error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. + + -==== subfolder/index.js (4 errors) ==== -- // cjs format file -- function require() {} -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'require'. Compiler reserves name 'require' in top level scope of a module. -- const exports = {}; -- ~~~~~~~ --!!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. -- class Object {} ++==== subfolder/index.js (3 errors) ==== + // cjs format file + function require() {} + ~~~~~~~ +@@= skipped -12, +11 lines =@@ + ~~~~~~~ + !!! error TS2441: Duplicate identifier 'exports'. Compiler reserves name 'exports' in top level scope of a module. + class Object {} - ~~~~~~ -!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module NodeNext. -- export const __esModule = false; -- ~~~~~~~~~~ --!!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. -- export {require, exports, Object}; --==== index.js (0 errors) ==== -- // esm format file -- function require() {} -- const exports = {}; -- class Object {} -- export const __esModule = false; -- export {require, exports, Object}; --==== package.json (0 errors) ==== -- { -- "name": "package", -- "private": true, -- "type": "module" -- } --==== subfolder/package.json (0 errors) ==== -- { -- "type": "commonjs" -- } -@@= skipped --1, +1 lines =@@ -+ + export const __esModule = false; + ~~~~~~~~~~ + !!! error TS1216: Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules. diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt.diff index 7937e01c9a..6c1f3f9504 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt.diff @@ -1,26 +1,16 @@ --- old.nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt +++ new.nodeModulesAllowJsTopLevelAwait(module=node16).errors.txt @@= skipped -0, +0 lines =@@ --subfolder/index.js(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. --subfolder/index.js(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. + subfolder/index.js(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + subfolder/index.js(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. - - ==== subfolder/index.js (2 errors) ==== - // cjs format file - const x = await 1; - ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -+!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. - export {x}; +@@= skipped -10, +12 lines =@@ for await (const y of []) {} ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + !!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -==== index.js (0 errors) ==== -+!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +==== index.js (2 errors) ==== // esm format file const x = await 1; diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt.diff index 99931fe104..88f10c32f6 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt.diff @@ -1,26 +1,16 @@ --- old.nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt +++ new.nodeModulesAllowJsTopLevelAwait(module=nodenext).errors.txt @@= skipped -0, +0 lines =@@ --subfolder/index.js(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. --subfolder/index.js(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. +index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.js(2,11): error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. -+subfolder/index.js(4,5): error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. + subfolder/index.js(2,11): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + subfolder/index.js(4,5): error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. - - ==== subfolder/index.js (2 errors) ==== - // cjs format file - const x = await 1; - ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -+!!! error TS1378: Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. - export {x}; +@@= skipped -10, +12 lines =@@ for await (const y of []) {} ~~~~~ --!!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. + !!! error TS1309: The current file is a CommonJS module and cannot use 'await' at the top level. -==== index.js (0 errors) ==== -+!!! error TS1432: Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher. +==== index.js (2 errors) ==== // esm format file const x = await 1;