Skip to content

Commit 199990c

Browse files
committed
Fix porting bugs
1 parent 36d9bda commit 199990c

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

internal/checker/checker.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14978,14 +14978,14 @@ func (c *Checker) resolveESModuleSymbol(moduleSymbol *ast.Symbol, referencingLoc
1497814978
return exportModuleDotExportsSymbol
1497914979
}
1498014980

14981-
isEsmCjsRef := targetFile != nil && usageMode == core.ModuleKindESNext && c.program.GetImpliedNodeFormatForEmit(targetFile.AsSourceFile()) == core.ModuleKindCommonJS
14981+
isEsmCjsRef := targetFile != nil && isESMFormatImportImportingCommonjsFormatFile(usageMode, c.program.GetImpliedNodeFormatForEmit(targetFile.AsSourceFile()))
1498214982
if c.compilerOptions.GetESModuleInterop() || isEsmCjsRef {
1498314983
if c.hasSignatures(typ) || c.getPropertyOfTypeEx(typ, ast.InternalSymbolNameDefault, true /*skipObjectFunctionPropertyAugment*/, false /*includeTypeOnlyMembers*/) != nil || isEsmCjsRef {
1498414984
var moduleType *Type
1498514985
if typ.Flags()&TypeFlagsStructuredType != 0 {
1498614986
moduleType = c.getTypeWithSyntheticDefaultImportType(typ, symbol, moduleSymbol, reference)
1498714987
} else {
14988-
moduleType = c.createDefaultPropertyWrapperForModule(symbol, moduleSymbol, nil)
14988+
moduleType = c.createDefaultPropertyWrapperForModule(symbol, symbol.Parent, nil)
1498914989
}
1499014990
return c.cloneTypeAsModuleType(symbol, moduleType, referenceParent)
1499114991
}
@@ -14999,6 +14999,10 @@ func (c *Checker) hasSignatures(t *Type) bool {
1499914999
return len(c.getSignaturesOfStructuredType(t, SignatureKindCall)) > 0 || len(c.getSignaturesOfStructuredType(t, SignatureKindConstruct)) > 0
1500015000
}
1500115001

15002+
func isESMFormatImportImportingCommonjsFormatFile(usageMode core.ResolutionMode, targetMode core.ResolutionMode) bool {
15003+
return usageMode == core.ModuleKindESNext && targetMode == core.ModuleKindCommonJS
15004+
}
15005+
1500215006
func (c *Checker) getTypeWithSyntheticDefaultOnly(t *Type, symbol *ast.Symbol, originalSymbol *ast.Symbol, moduleSpecifier *ast.Node) *Type {
1500315007
hasDefaultOnly := c.isOnlyImportableAsDefault(moduleSpecifier, nil)
1500415008
if hasDefaultOnly && t != nil && !c.isErrorType(t) {

internal/core/compileroptions.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ func (options *CompilerOptions) GetResolveJsonModule() bool {
276276
return options.ResolveJsonModule == TSTrue
277277
}
278278
switch options.GetEmitModuleKind() {
279+
// TODO in 6.0: add Node16/Node18
279280
case ModuleKindNode20, ModuleKindESNext:
280281
return true
281282
}

0 commit comments

Comments
 (0)