Skip to content

Commit

Permalink
Merge branch 'bug/bundler-at-types' into try-bundler
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewbranch committed Dec 22, 2022
2 parents ee87f10 + 0caa3a4 commit 6ba17c8
Show file tree
Hide file tree
Showing 6 changed files with 399 additions and 289 deletions.
540 changes: 270 additions & 270 deletions package-lock.json

Large diffs are not rendered by default.

40 changes: 21 additions & 19 deletions src/compiler/moduleNameResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2756,27 +2756,31 @@ function loadModuleFromImmediateNodeModulesDirectory(extensions: Extensions, mod

function loadModuleFromSpecificNodeModulesDirectory(extensions: Extensions, moduleName: string, nodeModulesDirectory: string, nodeModulesDirectoryExists: boolean, state: ModuleResolutionState, cache: ModuleResolutionCache | undefined, redirectedReference: ResolvedProjectReference | undefined): Resolved | undefined {
const candidate = normalizePath(combinePaths(nodeModulesDirectory, moduleName));
const { packageName, rest } = parsePackageName(moduleName);
const packageDirectory = combinePaths(nodeModulesDirectory, packageName);

let rootPackageInfo: PackageJsonInfo | undefined;
// First look for a nested package.json, as in `node_modules/foo/bar/package.json`.
let packageInfo = getPackageJsonInfo(candidate, !nodeModulesDirectoryExists, state);
// But only if we're not respecting export maps (if we are, we might redirect around this location)
if (!(state.features & NodeResolutionFeatures.Exports)) {
if (packageInfo) {
const fromFile = loadModuleFromFile(extensions, candidate, !nodeModulesDirectoryExists, state);
if (fromFile) {
return noPackageId(fromFile);
}

const fromDirectory = loadNodeModuleFromDirectoryWorker(
extensions,
candidate,
!nodeModulesDirectoryExists,
state,
packageInfo.contents.packageJsonContent,
getVersionPathsOfPackageJsonInfo(packageInfo, state),
);
return withPackageId(packageInfo, fromDirectory);
if (rest !== "" && packageInfo && (
!(state.features & NodeResolutionFeatures.Exports) ||
!hasProperty((rootPackageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state))?.contents.packageJsonContent ?? emptyArray, "exports")
)) {
const fromFile = loadModuleFromFile(extensions, candidate, !nodeModulesDirectoryExists, state);
if (fromFile) {
return noPackageId(fromFile);
}

const fromDirectory = loadNodeModuleFromDirectoryWorker(
extensions,
candidate,
!nodeModulesDirectoryExists,
state,
packageInfo.contents.packageJsonContent,
getVersionPathsOfPackageJsonInfo(packageInfo, state),
);
return withPackageId(packageInfo, fromDirectory);
}

const loader: ResolutionKindSpecificLoader = (extensions, candidate, onlyRecordFailures, state) => {
Expand All @@ -2803,11 +2807,9 @@ function loadModuleFromSpecificNodeModulesDirectory(extensions: Extensions, modu
return withPackageId(packageInfo, pathAndExtension);
};

const { packageName, rest } = parsePackageName(moduleName);
const packageDirectory = combinePaths(nodeModulesDirectory, packageName);
if (rest !== "") {
// Previous `packageInfo` may have been from a nested package.json; ensure we have the one from the package root now.
packageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state);
packageInfo = rootPackageInfo ?? getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state);
}
// package exports are higher priority than file/directory/typesVersions lookups and (and, if there's exports present, blocks them)
if (packageInfo && packageInfo.contents.packageJsonContent.exports && state.features & NodeResolutionFeatures.Exports) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[
"======== Resolving module '@restart/hooks/useMergedRefs' from '/main.ts'. ========",
"Explicitly specified module resolution kind: 'Bundler'.",
"File '/package.json' does not exist.",
"Loading module '@restart/hooks/useMergedRefs' from 'node_modules' folder, target file types: TypeScript, JavaScript, Declaration, JSON.",
"Found 'package.json' at '/node_modules/@restart/hooks/useMergedRefs/package.json'.",
"Found 'package.json' at '/node_modules/@restart/hooks/package.json'.",
"File '/node_modules/@restart/hooks/useMergedRefs.ts' does not exist.",
"File '/node_modules/@restart/hooks/useMergedRefs.tsx' does not exist.",
"File '/node_modules/@restart/hooks/useMergedRefs.d.ts' does not exist.",
"'package.json' does not have a 'typesVersions' field.",
"'package.json' does not have a 'typings' field.",
"'package.json' has 'types' field '../esm/useMergedRefs.d.ts' that references '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'.",
"File '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts' exist - use it as a name resolution result.",
"Resolving real path for '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts', result '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'.",
"======== Module name '@restart/hooks/useMergedRefs' was successfully resolved to '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'. ========"
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[
"File '/node_modules/@restart/hooks/esm/package.json' does not exist.",
"Found 'package.json' at '/node_modules/@restart/hooks/package.json'.",
"File '/package.json' does not exist.",
"======== Resolving module '@restart/hooks/useMergedRefs' from '/main.ts'. ========",
"Explicitly specified module resolution kind: 'Node16'.",
"Resolving in CJS mode with conditions 'node', 'require', 'types'.",
"File '/package.json' does not exist according to earlier cached lookups.",
"Loading module '@restart/hooks/useMergedRefs' from 'node_modules' folder, target file types: TypeScript, JavaScript, Declaration.",
"Found 'package.json' at '/node_modules/@restart/hooks/useMergedRefs/package.json'.",
"File '/node_modules/@restart/hooks/package.json' exists according to earlier cached lookups.",
"File '/node_modules/@restart/hooks/useMergedRefs.ts' does not exist.",
"File '/node_modules/@restart/hooks/useMergedRefs.tsx' does not exist.",
"File '/node_modules/@restart/hooks/useMergedRefs.d.ts' does not exist.",
"'package.json' does not have a 'typesVersions' field.",
"'package.json' does not have a 'typings' field.",
"'package.json' has 'types' field '../esm/useMergedRefs.d.ts' that references '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'.",
"File '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts' exist - use it as a name resolution result.",
"Resolving real path for '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts', result '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'.",
"======== Module name '@restart/hooks/useMergedRefs' was successfully resolved to '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'. ========",
"File 'package.json' does not exist.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups."
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[
"File '/node_modules/@restart/hooks/esm/package.json' does not exist.",
"Found 'package.json' at '/node_modules/@restart/hooks/package.json'.",
"File '/package.json' does not exist.",
"======== Resolving module '@restart/hooks/useMergedRefs' from '/main.ts'. ========",
"Explicitly specified module resolution kind: 'NodeNext'.",
"Resolving in CJS mode with conditions 'node', 'require', 'types'.",
"File '/package.json' does not exist according to earlier cached lookups.",
"Loading module '@restart/hooks/useMergedRefs' from 'node_modules' folder, target file types: TypeScript, JavaScript, Declaration.",
"Found 'package.json' at '/node_modules/@restart/hooks/useMergedRefs/package.json'.",
"File '/node_modules/@restart/hooks/package.json' exists according to earlier cached lookups.",
"File '/node_modules/@restart/hooks/useMergedRefs.ts' does not exist.",
"File '/node_modules/@restart/hooks/useMergedRefs.tsx' does not exist.",
"File '/node_modules/@restart/hooks/useMergedRefs.d.ts' does not exist.",
"'package.json' does not have a 'typesVersions' field.",
"'package.json' does not have a 'typings' field.",
"'package.json' has 'types' field '../esm/useMergedRefs.d.ts' that references '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'.",
"File '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts' exist - use it as a name resolution result.",
"Resolving real path for '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts', result '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'.",
"======== Module name '@restart/hooks/useMergedRefs' was successfully resolved to '/node_modules/@restart/hooks/esm/useMergedRefs.d.ts'. ========",
"File 'package.json' does not exist.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups.",
"File 'package.json' does not exist according to earlier cached lookups.",
"File '/package.json' does not exist according to earlier cached lookups."
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// @moduleResolution: node16,nodenext,bundler
// @noEmit: true
// @noTypesAndSymbols: true
// @traceResolution: true
// @strict: true

// @Filename: /node_modules/@restart/hooks/package.json
{
"name": "@restart/hooks",
"version": "0.3.25",
"main": "cjs/index.js",
"types": "cjs/index.d.ts",
"module": "esm/index.js"
}

// @Filename: /node_modules/@restart/hooks/useMergedRefs/package.json
{
"name": "@restart/hooks/useMergedRefs",
"private": true,
"main": "../cjs/useMergedRefs.js",
"module": "../esm/useMergedRefs.js",
"types": "../esm/useMergedRefs.d.ts"
}

// @Filename: /node_modules/@restart/hooks/esm/useMergedRefs.d.ts
export {};

// @Filename: /main.ts
import {} from "@restart/hooks/useMergedRefs";

0 comments on commit 6ba17c8

Please sign in to comment.