Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Component commits: 0cb4514 Add test to show how scope messes with casing a3ea961 Do not canonicalize the file names when getting absolute paths Fixes #50544 dfb1e40 Unnecessary exports fc35e0a Add test for self referencing package 9076f4d Fix self reference package with casing Co-authored-by: Sheetal Nandi <shkamat@microsoft.com>
- Loading branch information
1 parent
4b7a7b5
commit 8b79b2f
Showing
4 changed files
with
356 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
148 changes: 148 additions & 0 deletions
148
...elines/reference/tscWatch/forceConsistentCasingInFileNames/self-name-package-reference.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
Input:: | ||
//// [/Users/name/projects/web/package.json] | ||
{"name":"@this/package","type":"module","exports":{".":"./dist/index.js"}} | ||
|
||
//// [/Users/name/projects/web/index.ts] | ||
import * as me from "@this/package"; | ||
me.thing(); | ||
export function thing(): void {} | ||
|
||
|
||
//// [/Users/name/projects/web/tsconfig.json] | ||
{"compilerOptions":{"module":"nodenext","outDir":"./dist","declarationDir":"./types","composite":true,"forceConsistentCasingInFileNames":true,"traceResolution":true}} | ||
|
||
//// [/a/lib/lib.esnext.full.d.ts] | ||
/// <reference no-default-lib="true"/> | ||
interface Boolean {} | ||
interface Function {} | ||
interface CallableFunction {} | ||
interface NewableFunction {} | ||
interface IArguments {} | ||
interface Number { toExponential: any; } | ||
interface Object {} | ||
interface RegExp {} | ||
interface String { charAt: any; } | ||
interface Array<T> { length: number; [n: number]: T; } | ||
|
||
|
||
/a/lib/tsc.js -w --explainFiles | ||
Output:: | ||
>> Screen clear | ||
[[90m12:00:23 AM[0m] Starting compilation in watch mode... | ||
|
||
Found 'package.json' at '/users/name/projects/web/package.json'. | ||
'package.json' does not have a 'typesVersions' field. | ||
======== Resolving module '@this/package' from '/Users/name/projects/web/index.ts'. ======== | ||
Module resolution kind is not specified, using 'NodeNext'. | ||
File '/users/name/projects/web/package.json' exists according to earlier cached lookups. | ||
File '/Users/name/projects/web/index.ts' exist - use it as a name resolution result. | ||
Resolving real path for '/Users/name/projects/web/index.ts', result '/Users/name/projects/web/index.ts'. | ||
======== Module name '@this/package' was successfully resolved to '/Users/name/projects/web/index.ts'. ======== | ||
File '/a/lib/package.json' does not exist. | ||
File '/a/package.json' does not exist. | ||
File '/package.json' does not exist. | ||
../../../../a/lib/lib.esnext.full.d.ts | ||
Default library for target 'esnext' | ||
index.ts | ||
Matched by default include pattern '**/*' | ||
Imported via "@this/package" from file 'index.ts' | ||
File is ECMAScript module because 'package.json' has field "type" with value "module" | ||
[[90m12:00:36 AM[0m] Found 0 errors. Watching for file changes. | ||
|
||
|
||
|
||
Program root files: ["/Users/name/projects/web/index.ts"] | ||
Program options: {"module":199,"outDir":"/Users/name/projects/web/dist","declarationDir":"/Users/name/projects/web/types","composite":true,"forceConsistentCasingInFileNames":true,"traceResolution":true,"watch":true,"explainFiles":true,"configFilePath":"/Users/name/projects/web/tsconfig.json"} | ||
Program structureReused: Not | ||
Program files:: | ||
/a/lib/lib.esnext.full.d.ts | ||
/Users/name/projects/web/index.ts | ||
|
||
Semantic diagnostics in builder refreshed for:: | ||
/a/lib/lib.esnext.full.d.ts | ||
/Users/name/projects/web/index.ts | ||
|
||
Shape signatures in builder refreshed for:: | ||
/a/lib/lib.esnext.full.d.ts (used version) | ||
/users/name/projects/web/index.ts (computed .d.ts during emit) | ||
|
||
WatchedFiles:: | ||
/users/name/projects/web/tsconfig.json: | ||
{"fileName":"/Users/name/projects/web/tsconfig.json","pollingInterval":250} | ||
/users/name/projects/web/index.ts: | ||
{"fileName":"/Users/name/projects/web/index.ts","pollingInterval":250} | ||
/a/lib/lib.esnext.full.d.ts: | ||
{"fileName":"/a/lib/lib.esnext.full.d.ts","pollingInterval":250} | ||
/users/name/projects/web/package.json: | ||
{"fileName":"/Users/name/projects/web/package.json","pollingInterval":250} | ||
/users/name/projects/web/node_modules/@types: | ||
{"fileName":"/Users/name/projects/web/node_modules/@types","pollingInterval":500} | ||
|
||
FsWatches:: | ||
|
||
FsWatchesRecursive:: | ||
/users/name/projects/web: | ||
{"directoryName":"/users/name/projects/web"} | ||
|
||
exitCode:: ExitStatus.undefined | ||
|
||
//// [/Users/name/projects/web/dist/index.js] | ||
import * as me from "@this/package"; | ||
me.thing(); | ||
export function thing() { } | ||
|
||
|
||
//// [/Users/name/projects/web/types/index.d.ts] | ||
export declare function thing(): void; | ||
|
||
|
||
//// [/Users/name/projects/web/dist/tsconfig.tsbuildinfo] | ||
{"program":{"fileNames":["../../../../../a/lib/lib.esnext.full.d.ts","../index.ts"],"fileInfos":[{"version":"-7698705165-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }","affectsGlobalScope":true,"impliedFormat":1},{"version":"14361483761-import * as me from \"@this/package\";\nme.thing();\nexport function thing(): void {}\n","signature":"-2724770439-export declare function thing(): void;\n","impliedFormat":99}],"options":{"composite":true,"declarationDir":"../types","module":199,"outDir":"./"},"fileIdsList":[[2]],"referencedMap":[[2,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"latestChangedDtsFile":"../types/index.d.ts"},"version":"FakeTSVersion"} | ||
|
||
//// [/Users/name/projects/web/dist/tsconfig.tsbuildinfo.readable.baseline.txt] | ||
{ | ||
"program": { | ||
"fileNames": [ | ||
"../../../../../a/lib/lib.esnext.full.d.ts", | ||
"../index.ts" | ||
], | ||
"fileNamesList": [ | ||
[ | ||
"../index.ts" | ||
] | ||
], | ||
"fileInfos": { | ||
"../../../../../a/lib/lib.esnext.full.d.ts": { | ||
"version": "-7698705165-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }", | ||
"signature": "-7698705165-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }", | ||
"affectsGlobalScope": true, | ||
"impliedFormat": "commonjs" | ||
}, | ||
"../index.ts": { | ||
"version": "14361483761-import * as me from \"@this/package\";\nme.thing();\nexport function thing(): void {}\n", | ||
"signature": "-2724770439-export declare function thing(): void;\n", | ||
"impliedFormat": "esnext" | ||
} | ||
}, | ||
"options": { | ||
"composite": true, | ||
"declarationDir": "../types", | ||
"module": 199, | ||
"outDir": "./" | ||
}, | ||
"referencedMap": { | ||
"../index.ts": [ | ||
"../index.ts" | ||
] | ||
}, | ||
"exportedModulesMap": {}, | ||
"semanticDiagnosticsPerFile": [ | ||
"../../../../../a/lib/lib.esnext.full.d.ts", | ||
"../index.ts" | ||
], | ||
"latestChangedDtsFile": "../types/index.d.ts" | ||
}, | ||
"version": "FakeTSVersion", | ||
"size": 974 | ||
} | ||
|
141 changes: 141 additions & 0 deletions
141
...baselines/reference/tscWatch/forceConsistentCasingInFileNames/with-nodeNext-resolution.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
Input:: | ||
//// [/Users/name/projects/web/src/bin.ts] | ||
import { foo } from "yargs"; | ||
|
||
//// [/Users/name/projects/web/node_modules/@types/yargs/index.d.ts] | ||
export function foo(): void; | ||
|
||
//// [/Users/name/projects/web/node_modules/@types/yargs/index.d.mts] | ||
export function foo(): void; | ||
|
||
//// [/Users/name/projects/web/node_modules/@types/yargs/package.json] | ||
{"name":"yargs","version":"17.0.12","exports":{".":{"types":{"import":"./index.d.mts","default":"./index.d.ts"}}}} | ||
|
||
//// [/Users/name/projects/web/tsconfig.json] | ||
{"compilerOptions":{"moduleResolution":"nodenext","forceConsistentCasingInFileNames":true,"traceResolution":true}} | ||
|
||
//// [/a/lib/lib.d.ts] | ||
/// <reference no-default-lib="true"/> | ||
interface Boolean {} | ||
interface Function {} | ||
interface CallableFunction {} | ||
interface NewableFunction {} | ||
interface IArguments {} | ||
interface Number { toExponential: any; } | ||
interface Object {} | ||
interface RegExp {} | ||
interface String { charAt: any; } | ||
interface Array<T> { length: number; [n: number]: T; } | ||
|
||
|
||
/a/lib/tsc.js --w --explainFiles | ||
Output:: | ||
>> Screen clear | ||
[[90m12:00:35 AM[0m] Starting compilation in watch mode... | ||
|
||
File '/users/name/projects/web/src/package.json' does not exist. | ||
File '/users/name/projects/web/package.json' does not exist. | ||
File '/users/name/projects/package.json' does not exist. | ||
File '/users/name/package.json' does not exist. | ||
File '/users/package.json' does not exist. | ||
File '/package.json' does not exist. | ||
======== Resolving module 'yargs' from '/Users/name/projects/web/src/bin.ts'. ======== | ||
Explicitly specified module resolution kind: 'NodeNext'. | ||
File '/users/name/projects/web/src/package.json' does not exist according to earlier cached lookups. | ||
File '/users/name/projects/web/package.json' does not exist according to earlier cached lookups. | ||
File '/users/name/projects/package.json' does not exist according to earlier cached lookups. | ||
File '/users/name/package.json' does not exist according to earlier cached lookups. | ||
File '/users/package.json' does not exist according to earlier cached lookups. | ||
File '/package.json' does not exist according to earlier cached lookups. | ||
Loading module 'yargs' from 'node_modules' folder, target file type 'TypeScript'. | ||
Directory '/Users/name/projects/web/src/node_modules' does not exist, skipping all lookups in it. | ||
File '/Users/name/projects/web/node_modules/yargs.ts' does not exist. | ||
File '/Users/name/projects/web/node_modules/yargs.tsx' does not exist. | ||
File '/Users/name/projects/web/node_modules/yargs.d.ts' does not exist. | ||
Found 'package.json' at '/Users/name/projects/web/node_modules/@types/yargs/package.json'. | ||
'package.json' does not have a 'typesVersions' field. | ||
File '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts' exist - use it as a name resolution result. | ||
Resolving real path for '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts', result '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts'. | ||
======== Module name 'yargs' was successfully resolved to '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts' with Package ID 'yargs/index.d.ts@17.0.12'. ======== | ||
File '/users/name/projects/web/node_modules/@types/yargs/package.json' exists according to earlier cached lookups. | ||
======== Resolving type reference directive 'yargs', containing file '/Users/name/projects/web/__inferred type names__.ts', root directory '/Users/name/projects/web/node_modules/@types'. ======== | ||
Resolving with primary search path '/Users/name/projects/web/node_modules/@types'. | ||
File '/Users/name/projects/web/node_modules/@types/yargs/package.json' exists according to earlier cached lookups. | ||
'package.json' does not have a 'typings' field. | ||
'package.json' does not have a 'types' field. | ||
File '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts' exist - use it as a name resolution result. | ||
Resolving real path for '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts', result '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts'. | ||
======== Type reference directive 'yargs' was successfully resolved to '/Users/name/projects/web/node_modules/@types/yargs/index.d.ts' with Package ID 'yargs/index.d.ts@17.0.12', primary: true. ======== | ||
File '/a/lib/package.json' does not exist. | ||
File '/a/package.json' does not exist. | ||
File '/package.json' does not exist according to earlier cached lookups. | ||
../../../../a/lib/lib.d.ts | ||
Default library for target 'es3' | ||
node_modules/@types/yargs/index.d.ts | ||
Imported via "yargs" from file 'src/bin.ts' with packageId 'yargs/index.d.ts@17.0.12' | ||
Entry point for implicit type library 'yargs' with packageId 'yargs/index.d.ts@17.0.12' | ||
File is CommonJS module because 'node_modules/@types/yargs/package.json' does not have field "type" | ||
src/bin.ts | ||
Matched by default include pattern '**/*' | ||
File is CommonJS module because 'package.json' was not found | ||
[[90m12:00:38 AM[0m] Found 0 errors. Watching for file changes. | ||
|
||
|
||
|
||
Program root files: ["/Users/name/projects/web/src/bin.ts"] | ||
Program options: {"moduleResolution":99,"forceConsistentCasingInFileNames":true,"traceResolution":true,"watch":true,"explainFiles":true,"configFilePath":"/Users/name/projects/web/tsconfig.json"} | ||
Program structureReused: Not | ||
Program files:: | ||
/a/lib/lib.d.ts | ||
/Users/name/projects/web/node_modules/@types/yargs/index.d.ts | ||
/Users/name/projects/web/src/bin.ts | ||
|
||
Semantic diagnostics in builder refreshed for:: | ||
/a/lib/lib.d.ts | ||
/Users/name/projects/web/node_modules/@types/yargs/index.d.ts | ||
/Users/name/projects/web/src/bin.ts | ||
|
||
Shape signatures in builder refreshed for:: | ||
/a/lib/lib.d.ts (used version) | ||
/users/name/projects/web/node_modules/@types/yargs/index.d.ts (used version) | ||
/users/name/projects/web/src/bin.ts (used version) | ||
|
||
WatchedFiles:: | ||
/users/name/projects/web/tsconfig.json: | ||
{"fileName":"/Users/name/projects/web/tsconfig.json","pollingInterval":250} | ||
/users/name/projects/web/src/bin.ts: | ||
{"fileName":"/Users/name/projects/web/src/bin.ts","pollingInterval":250} | ||
/users/name/projects/web/node_modules/@types/yargs/index.d.ts: | ||
{"fileName":"/Users/name/projects/web/node_modules/@types/yargs/index.d.ts","pollingInterval":250} | ||
/a/lib/lib.d.ts: | ||
{"fileName":"/a/lib/lib.d.ts","pollingInterval":250} | ||
/users/name/projects/web/node_modules/@types/yargs/package.json: | ||
{"fileName":"/Users/name/projects/web/node_modules/@types/yargs/package.json","pollingInterval":250} | ||
/users/name/projects/web/src/package.json: | ||
{"fileName":"/Users/name/projects/web/src/package.json","pollingInterval":250} | ||
/users/name/projects/web/package.json: | ||
{"fileName":"/Users/name/projects/web/package.json","pollingInterval":250} | ||
/users/name/projects/package.json: | ||
{"fileName":"/Users/name/projects/package.json","pollingInterval":250} | ||
|
||
FsWatches:: | ||
/users/name/projects/web: | ||
{"directoryName":"/Users/name/projects/web"} | ||
|
||
FsWatchesRecursive:: | ||
/users/name/projects/web/src: | ||
{"directoryName":"/users/name/projects/web/src"} | ||
/users/name/projects/web/node_modules: | ||
{"directoryName":"/Users/name/projects/web/node_modules"} | ||
/users/name/projects/web/node_modules/@types: | ||
{"directoryName":"/Users/name/projects/web/node_modules/@types"} | ||
/users/name/projects/web: | ||
{"directoryName":"/users/name/projects/web"} | ||
|
||
exitCode:: ExitStatus.undefined | ||
|
||
//// [/Users/name/projects/web/src/bin.js] | ||
"use strict"; | ||
exports.__esModule = true; | ||
|
||
|