Support resolving @typescript/[lib] in node modules by orta · Pull Request #45771 · microsoft/TypeScript (original) (raw)

Actually trying this IRL is giving me unexpected results,

Code:
var localOverride = ts.resolveModuleName("@typescript/" + path, currentDirectory, { moduleResolution: ts.ModuleResolutionKind.NodeJs }, host);
console.log({ libFileName, localOverride, currentDirectory  })

Result:
{
  libFileName: 'lib.dom.d.ts',
  localOverride: {
    resolvedModule: undefined,
    failedLookupLocations: [
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom.ts',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom.tsx',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom.d.ts',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/index.ts',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/index.tsx',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/index.d.ts',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@types/typescript__dom/package.json',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@types/typescript__dom.d.ts',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@types/typescript__dom/index.d.ts',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom.ts',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom.tsx',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom.d.ts',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom/index.ts',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom/index.tsx',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom/index.d.ts',
      '/Users/ortatherox/dev/typescript/node_modules/@types/typescript__dom/package.json',
      '/Users/ortatherox/dev/typescript/node_modules/@types/typescript__dom.d.ts',
      '/Users/ortatherox/dev/typescript/node_modules/@types/typescript__dom/index.d.ts',
      '/Users/ortatherox/dev/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/dev/node_modules/@typescript/dom.ts',
      '/Users/ortatherox/dev/node_modules/@typescript/dom.tsx',
      '/Users/ortatherox/dev/node_modules/@typescript/dom.d.ts',
      '/Users/ortatherox/dev/node_modules/@typescript/dom/index.ts',
      '/Users/ortatherox/dev/node_modules/@typescript/dom/index.tsx',
      '/Users/ortatherox/dev/node_modules/@typescript/dom/index.d.ts',
      '/Users/ortatherox/dev/node_modules/@types/typescript__dom/package.json',
      '/Users/ortatherox/dev/node_modules/@types/typescript__dom.d.ts',
      '/Users/ortatherox/dev/node_modules/@types/typescript__dom/index.d.ts',
      '/Users/ortatherox/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/node_modules/@typescript/dom.ts',
      '/Users/ortatherox/node_modules/@typescript/dom.tsx',
      '/Users/ortatherox/node_modules/@typescript/dom.d.ts',
      '/Users/ortatherox/node_modules/@typescript/dom/index.ts',
      '/Users/ortatherox/node_modules/@typescript/dom/index.tsx',
      '/Users/ortatherox/node_modules/@typescript/dom/index.d.ts',
      '/Users/ortatherox/node_modules/@types/typescript__dom/package.json',
      '/Users/ortatherox/node_modules/@types/typescript__dom.d.ts',
      '/Users/ortatherox/node_modules/@types/typescript__dom/index.d.ts',
      '/Users/node_modules/@typescript/dom/package.json',
      '/Users/node_modules/@typescript/dom.ts',
      '/Users/node_modules/@typescript/dom.tsx',
      '/Users/node_modules/@typescript/dom.d.ts',
      '/Users/node_modules/@typescript/dom/index.ts',
      '/Users/node_modules/@typescript/dom/index.tsx',
      '/Users/node_modules/@typescript/dom/index.d.ts',
      '/Users/node_modules/@types/typescript__dom/package.json',
      '/Users/node_modules/@types/typescript__dom.d.ts',
      '/Users/node_modules/@types/typescript__dom/index.d.ts',
      '/node_modules/@typescript/dom/package.json',
      '/node_modules/@typescript/dom.ts',
      '/node_modules/@typescript/dom.tsx',
      '/node_modules/@typescript/dom.d.ts',
      '/node_modules/@typescript/dom/index.ts',
      '/node_modules/@typescript/dom/index.tsx',
      '/node_modules/@typescript/dom/index.d.ts',
      '/node_modules/@types/typescript__dom/package.json',
      '/node_modules/@types/typescript__dom.d.ts',
      '/node_modules/@types/typescript__dom/index.d.ts',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom.js',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom.jsx',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/index.js',
      '/Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/index.jsx',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom.js',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom.jsx',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom/index.js',
      '/Users/ortatherox/dev/typescript/node_modules/@typescript/dom/index.jsx',
      '/Users/ortatherox/dev/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/dev/node_modules/@typescript/dom.js',
      '/Users/ortatherox/dev/node_modules/@typescript/dom.jsx',
      '/Users/ortatherox/dev/node_modules/@typescript/dom/index.js',
      '/Users/ortatherox/dev/node_modules/@typescript/dom/index.jsx',
      '/Users/ortatherox/node_modules/@typescript/dom/package.json',
      '/Users/ortatherox/node_modules/@typescript/dom.js',
      '/Users/ortatherox/node_modules/@typescript/dom.jsx',
      '/Users/ortatherox/node_modules/@typescript/dom/index.js',
      '/Users/ortatherox/node_modules/@typescript/dom/index.jsx',
      '/Users/node_modules/@typescript/dom/package.json',
      '/Users/node_modules/@typescript/dom.js',
      '/Users/node_modules/@typescript/dom.jsx',
      '/Users/node_modules/@typescript/dom/index.js',
      '/Users/node_modules/@typescript/dom/index.jsx',
      '/node_modules/@typescript/dom/package.json',
      '/node_modules/@typescript/dom.js',
      '/node_modules/@typescript/dom.jsx',
      '/node_modules/@typescript/dom/index.js',
      '/node_modules/@typescript/dom/index.jsx'
    ]
  },
  currentDirectory: '/Users/ortatherox/dev/typescript/repros/tsLibOverrides'
}

What I want: /Users/ortatherox/dev/typescript/repros/tsLibOverrides/node_modules/@typescript/dom/index.d.ts
Closest I get: /Users/ortatherox/dev/typescript/repros/node_modules/@typescript/dom/index.d.ts

Perhaps instead of currentDirectory I need to append a filename to force it to look in node_modules of the currentDir.