Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/compiler/program.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4529,6 +4529,9 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
if (options.moduleResolution === ModuleResolutionKind.Node10) {
createDeprecatedDiagnostic("moduleResolution", "node10");
}
if (options.baseUrl) {
createDeprecatedDiagnostic("baseUrl");
}
});
}

Expand Down
58 changes: 58 additions & 0 deletions tests/baselines/reference/baseUrlMigrationExample.errors.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/before/tsconfig.json(3,9): error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.


==== /before/tsconfig.json (1 errors) ====
{
"compilerOptions": {
"baseUrl": "./src",
~~~~~~~~~
!!! error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
"paths": {
"@app/*": ["app/*"],
"@lib/*": ["lib/*"]
}
}
}

==== /before/src/app/module.ts (0 errors) ====
export const value = 42;

==== /before/src/lib/utils.ts (0 errors) ====
export function helper() { return "help"; }

==== /before/src/main.ts (0 errors) ====
import { value } from "@app/module";
import { helper } from "@lib/utils";
// This would also resolve due to baseUrl:
import * as something from "someModule"; // Resolves to ./src/someModule

==== /before/src/someModule.ts (0 errors) ====
export const data = "from baseUrl resolution";

==== /after/tsconfig.json (0 errors) ====
{
"compilerOptions": {
"paths": {
// Explicit prefix for all path mappings
"@app/*": ["./src/app/*"],
"@lib/*": ["./src/lib/*"],
// Optional: preserve baseUrl behavior with catch-all
"*": ["./src/*"]
}
}
}

==== /after/src/app/module.ts (0 errors) ====
export const value = 42;

==== /after/src/lib/utils.ts (0 errors) ====
export function helper() { return "help"; }

==== /after/src/main.ts (0 errors) ====
import { value } from "@app/module";
import { helper } from "@lib/utils";
// With explicit catch-all mapping, this still works:
import * as something from "someModule"; // Resolves to ./src/someModule

==== /after/src/someModule.ts (0 errors) ====
export const data = "from explicit path mapping";
63 changes: 63 additions & 0 deletions tests/baselines/reference/baseUrlMigrationExample.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
//// [tests/cases/compiler/baseUrlMigrationExample.ts] ////

//// [tsconfig.json]
{
"compilerOptions": {
"paths": {
// Explicit prefix for all path mappings
"@app/*": ["./src/app/*"],
"@lib/*": ["./src/lib/*"],
// Optional: preserve baseUrl behavior with catch-all
"*": ["./src/*"]
}
}
}

//// [module.ts]
export const value = 42;

//// [utils.ts]
export function helper() { return "help"; }

//// [main.ts]
import { value } from "@app/module";
import { helper } from "@lib/utils";
// With explicit catch-all mapping, this still works:
import * as something from "someModule"; // Resolves to ./src/someModule

//// [someModule.ts]
export const data = "from explicit path mapping";
//// [module.ts]
export const value = 42;

//// [utils.ts]
export function helper() { return "help"; }

//// [main.ts]
import { value } from "@app/module";
import { helper } from "@lib/utils";
// This would also resolve due to baseUrl:
import * as something from "someModule"; // Resolves to ./src/someModule

//// [someModule.ts]
export const data = "from baseUrl resolution";


//// [module.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.value = void 0;
exports.value = 42;
//// [utils.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.helper = helper;
function helper() { return "help"; }
//// [someModule.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.data = void 0;
exports.data = "from baseUrl resolution";
//// [main.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
25 changes: 25 additions & 0 deletions tests/baselines/reference/baseUrlMigrationExample.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//// [tests/cases/compiler/baseUrlMigrationExample.ts] ////

=== /before/src/app/module.ts ===
export const value = 42;
>value : Symbol(value, Decl(module.ts, 0, 12))

=== /before/src/lib/utils.ts ===
export function helper() { return "help"; }
>helper : Symbol(helper, Decl(utils.ts, 0, 0))

=== /before/src/main.ts ===
import { value } from "@app/module";
>value : Symbol(value, Decl(main.ts, 0, 8))

import { helper } from "@lib/utils";
>helper : Symbol(helper, Decl(main.ts, 1, 8))

// This would also resolve due to baseUrl:
import * as something from "someModule"; // Resolves to ./src/someModule
>something : Symbol(something, Decl(main.ts, 3, 6))

=== /before/src/someModule.ts ===
export const data = "from baseUrl resolution";
>data : Symbol(data, Decl(someModule.ts, 0, 12))

37 changes: 37 additions & 0 deletions tests/baselines/reference/baseUrlMigrationExample.types
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//// [tests/cases/compiler/baseUrlMigrationExample.ts] ////

=== /before/src/app/module.ts ===
export const value = 42;
>value : 42
> : ^^
>42 : 42
> : ^^

=== /before/src/lib/utils.ts ===
export function helper() { return "help"; }
>helper : () => string
> : ^^^^^^^^^^^^
>"help" : "help"
> : ^^^^^^

=== /before/src/main.ts ===
import { value } from "@app/module";
>value : 42
> : ^^

import { helper } from "@lib/utils";
>helper : () => string
> : ^^^^^^^^^^^^

// This would also resolve due to baseUrl:
import * as something from "someModule"; // Resolves to ./src/someModule
>something : typeof something
> : ^^^^^^^^^^^^^^^^

=== /before/src/someModule.ts ===
export const data = "from baseUrl resolution";
>data : "from baseUrl resolution"
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
>"from baseUrl resolution" : "from baseUrl resolution"
> : ^^^^^^^^^^^^^^^^^^^^^^^^^

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/foo/tsconfig.json(3,9): error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.


==== /foo/tsconfig.json (1 errors) ====
{
"compilerOptions": {
"baseUrl": "./src",
~~~~~~~~~
!!! error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
"paths": {
"@app/*": ["app/*"],
"@lib/*": ["lib/*"]
}
}
}

==== /foo/src/app/module.ts (0 errors) ====
export const value = 42;

==== /foo/src/main.ts (0 errors) ====
import { value } from "@app/module";
const result = value;
19 changes: 19 additions & 0 deletions tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts] ////

//// [module.ts]
export const value = 42;

//// [main.ts]
import { value } from "@app/module";
const result = value;

//// [module.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.value = void 0;
exports.value = 42;
//// [main.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var module_1 = require("@app/module");
var result = module_1.value;
14 changes: 14 additions & 0 deletions tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts] ////

=== /foo/src/app/module.ts ===
export const value = 42;
>value : Symbol(value, Decl(module.ts, 0, 12))

=== /foo/src/main.ts ===
import { value } from "@app/module";
>value : Symbol(value, Decl(main.ts, 0, 8))

const result = value;
>result : Symbol(result, Decl(main.ts, 1, 5))
>value : Symbol(value, Decl(main.ts, 0, 8))

20 changes: 20 additions & 0 deletions tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.types
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts] ////

=== /foo/src/app/module.ts ===
export const value = 42;
>value : 42
> : ^^
>42 : 42
> : ^^

=== /foo/src/main.ts ===
import { value } from "@app/module";
>value : 42
> : ^^

const result = value;
>result : 42
> : ^^
>value : 42
> : ^^

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts] ////

//// [module.ts]
export const value = 42;

//// [main.ts]
import { value } from "@app/module";
const result = value;

//// [module.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.value = void 0;
exports.value = 42;
//// [main.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var module_1 = require("@app/module");
var result = module_1.value;
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts] ////

=== /foo/src/app/module.ts ===
export const value = 42;
>value : Symbol(value, Decl(module.ts, 0, 12))

=== /foo/src/main.ts ===
import { value } from "@app/module";
>value : Symbol(value, Decl(main.ts, 0, 8))

const result = value;
>result : Symbol(result, Decl(main.ts, 1, 5))
>value : Symbol(value, Decl(main.ts, 0, 8))

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts] ////

=== /foo/src/app/module.ts ===
export const value = 42;
>value : 42
> : ^^
>42 : 42
> : ^^

=== /foo/src/main.ts ===
import { value } from "@app/module";
>value : 42
> : ^^

const result = value;
>result : 42
> : ^^
>value : 42
> : ^^

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
[
"======== Resolving module 'folder2/file2' from 'c:/root/folder1/file1.ts'. ========",
"Explicitly specified module resolution kind: 'Classic'.",
"'baseUrl' option is set to 'c:/root', using this value to resolve non-relative module name 'folder2/file2'.",
"Resolving module name 'folder2/file2' relative to base url 'c:/root' - 'c:/root/folder2/file2'.",
"File 'c:/root/folder2/file2.ts' exists - use it as a name resolution result.",
"======== Module name 'folder2/file2' was successfully resolved to 'c:/root/folder2/file2.ts'. ========",
"======== Resolving module './file3' from 'c:/root/folder2/file2.ts'. ========",
Expand All @@ -11,11 +9,6 @@
"======== Module name './file3' was successfully resolved to 'c:/root/folder2/file3.ts'. ========",
"======== Resolving module 'file4' from 'c:/root/folder2/file2.ts'. ========",
"Explicitly specified module resolution kind: 'Classic'.",
"'baseUrl' option is set to 'c:/root', using this value to resolve non-relative module name 'file4'.",
"Resolving module name 'file4' relative to base url 'c:/root' - 'c:/root/file4'.",
"File 'c:/root/file4.ts' does not exist.",
"File 'c:/root/file4.tsx' does not exist.",
"File 'c:/root/file4.d.ts' does not exist.",
"File 'c:/root/folder2/file4.ts' does not exist.",
"File 'c:/root/folder2/file4.tsx' does not exist.",
"File 'c:/root/folder2/file4.d.ts' does not exist.",
Expand Down
3 changes: 2 additions & 1 deletion tests/baselines/reference/pathMappingInheritedBaseUrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
//// [tsconfig.base.json]
{
"compilerOptions": {
"baseUrl": "."
"baseUrl": ".",
"ignoreDeprecations": "6.0"
}
}

Expand Down
3 changes: 2 additions & 1 deletion tests/baselines/reference/pathsValidation1.errors.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
tsconfig.json(5,18): error TS5063: Substitutions for pattern '*' should be an array.
tsconfig.json(6,18): error TS5063: Substitutions for pattern '*' should be an array.


==== tsconfig.json (1 errors) ====
{
"compilerOptions": {
"baseUrl": ".",
"ignoreDeprecations": "6.0",
"paths": {
"*": "*"
~~~
Expand Down
Loading
Loading