Skip to content

Commit 6f79e66

Browse files
authoredMar 7, 2025
Parse @link directive in compiler tests and add symlinks (microsoft#421)
1 parent b3ee9c8 commit 6f79e66

File tree

30 files changed

+492
-250
lines changed

30 files changed

+492
-250
lines changed
 

‎internal/testutil/harnessutil/harnessutil.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func CompileFiles(
8282
testConfig TestConfiguration,
8383
tsconfigOptions *core.CompilerOptions,
8484
currentDirectory string,
85-
symlinks any,
85+
symlinks map[string]string,
8686
) *CompilationResult {
8787
var compilerOptions core.CompilerOptions
8888
if tsconfigOptions != nil {
@@ -129,16 +129,8 @@ func CompileFiles(
129129
// }
130130

131131
// !!!
132-
// docs := append(inputFiles, otherFiles...) // !!! Convert to `TextDocument`
133-
// const fs = vfs.createFromFileSystem(IO, !useCaseSensitiveFileNames, { documents: docs, cwd: currentDirectory });
134-
// if (symlinks) {
135-
// fs.apply(symlinks);
136-
// }
137-
138132
// ts.assign(options, ts.convertToOptionsWithAbsolutePaths(options, path => ts.getNormalizedAbsolutePath(path, currentDirectory)));
139133

140-
// !!! Port vfs usage closer to original
141-
142134
// Create fake FS for testing
143135
testfs := map[string]any{}
144136
for _, file := range inputFiles {
@@ -153,6 +145,11 @@ func CompileFiles(
153145
Data: []byte(file.Content),
154146
}
155147
}
148+
for src, target := range symlinks {
149+
srcFileName := tspath.GetNormalizedAbsolutePath(src, currentDirectory)
150+
targetFileName := tspath.GetNormalizedAbsolutePath(target, currentDirectory)
151+
testfs[srcFileName] = vfstest.Symlink(targetFileName)
152+
}
156153

157154
fs := vfstest.FromMap(testfs, harnessOptions.UseCaseSensitiveFileNames)
158155
fs = bundled.WrapFS(fs)

‎internal/testutil/runner/test_case_parser.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@ type testCaseContent struct {
3333
testUnitData []*testUnit
3434
tsConfig *tsoptions.ParsedCommandLine
3535
tsConfigFileUnitData *testUnit
36-
symlinks any // !!!
36+
symlinks map[string]string
3737
}
3838

3939
// Regex for parsing options in the format "@Alpha: Value of any sort"
40-
var optionRegex = regexp.MustCompile(`(?m)^\/{2}\s*@(\w+)\s*:\s*([^\r\n]*)`) // multiple matches on multiple lines
40+
var optionRegex = regexp.MustCompile(`(?m)^\/{2}\s*@(\w+)\s*:\s*([^\r\n]*)`)
41+
42+
// Regex for parsing @link option
43+
var linkRegex = regexp.MustCompile(`(?m)^\/{2}\s*@link\s*:\s*([^\r\n]*)\s*->\s*([^\r\n]*)`)
4144

4245
// Given a test file containing // @FileName directives,
4346
// return an array of named units of code to be added to an existing compiler instance.
@@ -51,15 +54,13 @@ func makeUnitsFromTest(code string, fileName string) testCaseContent {
5154
var currentFileContent strings.Builder
5255
var currentFileName string
5356
currentDirectory := srcFolder
54-
// var symlinks any
57+
symlinks := make(map[string]string)
5558

5659
for _, line := range lines {
57-
// !!!
58-
// const possiblySymlinks = parseSymlinkFromTest(line, symlinks, vfs.srcFolder);
59-
// if (possiblySymlinks) {
60-
// symlinks = possiblySymlinks;
61-
// }
62-
// !!! should be else if
60+
ok := parseSymlinkFromTest(line, symlinks)
61+
if ok {
62+
continue
63+
}
6364
if testMetaData := optionRegex.FindStringSubmatch(line); testMetaData != nil {
6465
// Comment line, check for global/file @options and record them
6566
metaDataName := strings.ToLower(testMetaData[1])
@@ -156,6 +157,7 @@ func makeUnitsFromTest(code string, fileName string) testCaseContent {
156157
testUnitData: testUnits,
157158
tsConfig: tsConfig,
158159
tsConfigFileUnitData: tsConfigFileUnitData,
160+
symlinks: symlinks,
159161
}
160162
}
161163

@@ -168,3 +170,13 @@ func extractCompilerSettings(content string) rawCompilerSettings {
168170

169171
return opts
170172
}
173+
174+
func parseSymlinkFromTest(line string, symlinks map[string]string) bool {
175+
linkMetaData := linkRegex.FindStringSubmatch(line)
176+
if len(linkMetaData) == 0 {
177+
return false
178+
}
179+
180+
symlinks[strings.TrimSpace(linkMetaData[2])] = strings.TrimSpace(linkMetaData[1])
181+
return true
182+
}

‎internal/testutil/runner/test_case_parser_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function bar() { return "b"; }`,
3333
testUnitData: []*testUnit{testUnit1, testUnit2},
3434
tsConfig: nil,
3535
tsConfigFileUnitData: nil,
36-
symlinks: nil,
36+
symlinks: make(map[string]string),
3737
}
3838
assert.DeepEqual(
3939
t,
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
//// [tests/cases/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.ts] ////
2+
3+
=== /monorepo/core/src/application.ts ===
4+
import { Constructor } from "@loopback/context";
5+
>Constructor : Symbol(Constructor, Decl(application.ts, 0, 8))
6+
7+
export type ControllerClass = Constructor<any>;
8+
>ControllerClass : Symbol(ControllerClass, Decl(application.ts, 0, 48))
9+
>Constructor : Symbol(Constructor, Decl(application.ts, 0, 8))
10+
11+
=== /monorepo/core/src/usage.ts ===
12+
import { ControllerClass } from './application';
13+
>ControllerClass : Symbol(ControllerClass, Decl(usage.ts, 0, 8))
14+
15+
import { BindingKey } from '@loopback/context';
16+
>BindingKey : Symbol(BindingKey, Decl(usage.ts, 1, 8))
17+
18+
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(null as any); // line in question
19+
>CONTROLLER_CLASS : Symbol(CONTROLLER_CLASS, Decl(usage.ts, 3, 12))
20+
>BindingKey.create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
21+
>BindingKey : Symbol(BindingKey, Decl(usage.ts, 1, 8))
22+
>create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
23+
>ControllerClass : Symbol(ControllerClass, Decl(usage.ts, 0, 8))
24+
25+
=== /monorepo/context/src/value-promise.d.ts ===
26+
export type Constructor<T> = (...args: any[]) => T;
27+
>Constructor : Symbol(Constructor, Decl(value-promise.d.ts, 0, 0))
28+
>T : Symbol(T, Decl(value-promise.d.ts, 0, 24))
29+
>args : Symbol(args, Decl(value-promise.d.ts, 0, 30))
30+
>T : Symbol(T, Decl(value-promise.d.ts, 0, 24))
31+
32+
=== /monorepo/context/src/bindingkey.d.ts ===
33+
import { Constructor } from "./value-promise"
34+
>Constructor : Symbol(Constructor, Decl(bindingkey.d.ts, 0, 8))
35+
36+
export declare class BindingKey<T> {
37+
>BindingKey : Symbol(BindingKey, Decl(bindingkey.d.ts, 0, 45))
38+
>T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
39+
40+
readonly __type: T;
41+
>__type : Symbol(__type, Decl(bindingkey.d.ts, 1, 36))
42+
>T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
43+
44+
static create<T extends Constructor<any>>(ctor: T): BindingKey<T>;
45+
>create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
46+
>T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
47+
>Constructor : Symbol(Constructor, Decl(bindingkey.d.ts, 0, 8))
48+
>ctor : Symbol(ctor, Decl(bindingkey.d.ts, 3, 44))
49+
>T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
50+
>BindingKey : Symbol(BindingKey, Decl(bindingkey.d.ts, 0, 45))
51+
>T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
52+
}
53+
54+
=== /monorepo/context/index.d.ts ===
55+
56+
export * from "./src/value-promise";
57+
export * from "./src/bindingkey";
58+
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
//// [tests/cases/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.ts] ////
2+
3+
=== /monorepo/core/src/application.ts ===
4+
import { Constructor } from "@loopback/context";
5+
>Constructor : error
6+
7+
export type ControllerClass = Constructor<any>;
8+
>ControllerClass : ControllerClass
9+
10+
=== /monorepo/core/src/usage.ts ===
11+
import { ControllerClass } from './application';
12+
>ControllerClass : error
13+
14+
import { BindingKey } from '@loopback/context';
15+
>BindingKey : { new<T>(): BindingKey<T>, create: <T>(ctor: T) => BindingKey<T>, prototype: BindingKey<any> }
16+
17+
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(null as any); // line in question
18+
>CONTROLLER_CLASS : BindingKey<ControllerClass>
19+
>BindingKey.create<ControllerClass>(null as any) : BindingKey<ControllerClass>
20+
>BindingKey.create : <T>(ctor: T) => BindingKey<T>
21+
>BindingKey : { new<T>(): BindingKey<T>, create: <T>(ctor: T) => BindingKey<T>, prototype: BindingKey<any> }
22+
>create : <T>(ctor: T) => BindingKey<T>
23+
>null as any : any
24+
25+
=== /monorepo/context/src/value-promise.d.ts ===
26+
export type Constructor<T> = (...args: any[]) => T;
27+
>Constructor : Constructor<T>
28+
>T : T
29+
>args : any[]
30+
31+
=== /monorepo/context/src/bindingkey.d.ts ===
32+
import { Constructor } from "./value-promise"
33+
>Constructor : error
34+
35+
export declare class BindingKey<T> {
36+
>BindingKey : BindingKey<T>
37+
>T : T
38+
39+
readonly __type: T;
40+
>__type : T
41+
42+
static create<T extends Constructor<any>>(ctor: T): BindingKey<T>;
43+
>create : <T>(ctor: T) => BindingKey<T>
44+
>T : T
45+
>ctor : T
46+
}
47+
48+
=== /monorepo/context/index.d.ts ===
49+
50+
export * from "./src/value-promise";
51+
export * from "./src/bindingkey";
52+

‎testdata/baselines/reference/submodule/compiler/declarationEmitCommonSourceDirectoryDoesNotContainAllFiles.symbols

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
=== /a/index.ts ===
44

55
export * from "./src/"
6+
=== /b/index.ts ===
7+
8+
export * from "./src/"
9+
=== /b/src/index.ts ===
10+
export class B {}
11+
>B : Symbol(B, Decl(index.ts, 0, 0))
12+
613
=== /a/src/index.ts ===
714
import { B } from "b";
815
>B : Symbol(B, Decl(index.ts, 0, 8))

‎testdata/baselines/reference/submodule/compiler/declarationEmitCommonSourceDirectoryDoesNotContainAllFiles.symbols.diff

Lines changed: 0 additions & 16 deletions
This file was deleted.

‎testdata/baselines/reference/submodule/compiler/declarationEmitForGlobalishSpecifierSymlink2.symbols

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@ export const a = getA();
2828
=== /p2/index.d.ts ===
2929
export const a: import("typescript-fsa").A;
3030
>a : Symbol(a, Decl(index.d.ts, 0, 12))
31+
>A : Symbol(A, Decl(impl.d.ts, 0, 26))
3132

3233

‎testdata/baselines/reference/submodule/compiler/declarationEmitForGlobalishSpecifierSymlink2.symbols.diff

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,3 @@
99
}
1010
=== /cache/typescript-fsa/index.d.ts ===
1111

12-
@@= skipped -19, +19 lines =@@
13-
=== /p2/index.d.ts ===
14-
export const a: import("typescript-fsa").A;
15-
>a : Symbol(a, Decl(index.d.ts, 0, 12))
16-
->A : Symbol(A, Decl(impl.d.ts, 0, 26))
17-
18-

‎testdata/baselines/reference/submodule/compiler/declarationEmitReexportedSymlinkReference.symbols

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,61 @@ import {MetadataAccessor} from "@raymondfeng/pkg2";
99

1010
export const ADMIN = MetadataAccessor.create<boolean>('1');
1111
>ADMIN : Symbol(ADMIN, Decl(keys.ts, 2, 12))
12+
>MetadataAccessor.create : Symbol(create, Decl(types.d.ts, 10, 23))
1213
>MetadataAccessor : Symbol(MetadataAccessor, Decl(keys.ts, 0, 8))
14+
>create : Symbol(create, Decl(types.d.ts, 10, 23))
1315

16+
=== monorepo/pkg1/dist/index.d.ts ===
17+
18+
export * from './types';
19+
=== monorepo/pkg1/dist/types.d.ts ===
20+
export declare type A = {
21+
>A : Symbol(A, Decl(types.d.ts, 0, 0))
22+
23+
id: string;
24+
>id : Symbol(id, Decl(types.d.ts, 0, 25))
25+
26+
};
27+
export declare type B = {
28+
>B : Symbol(B, Decl(types.d.ts, 2, 2))
29+
30+
id: number;
31+
>id : Symbol(id, Decl(types.d.ts, 3, 25))
32+
33+
};
34+
export declare type IdType = A | B;
35+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
36+
>A : Symbol(A, Decl(types.d.ts, 0, 0))
37+
>B : Symbol(B, Decl(types.d.ts, 2, 2))
38+
39+
export declare class MetadataAccessor<T, D extends IdType = IdType> {
40+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
41+
>T : Symbol(T, Decl(types.d.ts, 7, 38))
42+
>D : Symbol(D, Decl(types.d.ts, 7, 40))
43+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
44+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
45+
46+
readonly key: string;
47+
>key : Symbol(key, Decl(types.d.ts, 7, 69))
48+
49+
private constructor();
50+
toString(): string;
51+
>toString : Symbol(toString, Decl(types.d.ts, 9, 26))
52+
53+
static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
54+
>create : Symbol(create, Decl(types.d.ts, 10, 23))
55+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
56+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
57+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
58+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
59+
>key : Symbol(key, Decl(types.d.ts, 11, 48))
60+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
61+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
62+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
63+
}
64+
=== monorepo/pkg2/dist/index.d.ts ===
65+
66+
export * from './types';
67+
=== monorepo/pkg2/dist/types.d.ts ===
68+
69+
export * from '@raymondfeng/pkg1';

‎testdata/baselines/reference/submodule/compiler/declarationEmitReexportedSymlinkReference.symbols.diff

Lines changed: 19 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -5,60 +5,28 @@
55
export const ADMIN = MetadataAccessor.create<boolean>('1');
66
>ADMIN : Symbol(ADMIN, Decl(keys.ts, 2, 12))
77
->MetadataAccessor.create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
8+
+>MetadataAccessor.create : Symbol(create, Decl(types.d.ts, 10, 23))
89
>MetadataAccessor : Symbol(MetadataAccessor, Decl(keys.ts, 0, 8))
910
->create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
11+
+>create : Symbol(create, Decl(types.d.ts, 10, 23))
1012

11-
-=== monorepo/pkg1/dist/index.d.ts ===
12-
-
13-
-export * from './types';
14-
-=== monorepo/pkg1/dist/types.d.ts ===
15-
-export declare type A = {
16-
->A : Symbol(A, Decl(types.d.ts, 0, 0))
17-
-
18-
- id: string;
19-
->id : Symbol(id, Decl(types.d.ts, 0, 25))
20-
-
21-
-};
22-
-export declare type B = {
23-
->B : Symbol(B, Decl(types.d.ts, 2, 2))
24-
-
25-
- id: number;
26-
->id : Symbol(id, Decl(types.d.ts, 3, 25))
27-
-
28-
-};
29-
-export declare type IdType = A | B;
30-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
31-
->A : Symbol(A, Decl(types.d.ts, 0, 0))
32-
->B : Symbol(B, Decl(types.d.ts, 2, 2))
33-
-
34-
-export declare class MetadataAccessor<T, D extends IdType = IdType> {
35-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
36-
->T : Symbol(T, Decl(types.d.ts, 7, 38))
37-
->D : Symbol(D, Decl(types.d.ts, 7, 40))
38-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
39-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
40-
-
41-
- readonly key: string;
13+
=== monorepo/pkg1/dist/index.d.ts ===
14+
15+
@@= skipped -35, +35 lines =@@
16+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
17+
18+
readonly key: string;
4219
->key : Symbol(MetadataAccessor.key, Decl(types.d.ts, 7, 69))
43-
-
44-
- private constructor();
45-
- toString(): string;
20+
+>key : Symbol(key, Decl(types.d.ts, 7, 69))
21+
22+
private constructor();
23+
toString(): string;
4624
->toString : Symbol(MetadataAccessor.toString, Decl(types.d.ts, 9, 26))
47-
-
48-
- static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
25+
+>toString : Symbol(toString, Decl(types.d.ts, 9, 26))
26+
27+
static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
4928
->create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
50-
->T : Symbol(T, Decl(types.d.ts, 11, 18))
51-
->D : Symbol(D, Decl(types.d.ts, 11, 20))
52-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
53-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
54-
->key : Symbol(key, Decl(types.d.ts, 11, 48))
55-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
56-
->T : Symbol(T, Decl(types.d.ts, 11, 18))
57-
->D : Symbol(D, Decl(types.d.ts, 11, 20))
58-
-}
59-
-=== monorepo/pkg2/dist/index.d.ts ===
60-
-
61-
-export * from './types';
62-
-=== monorepo/pkg2/dist/types.d.ts ===
63-
-
64-
-export * from '@raymondfeng/pkg1';
29+
+>create : Symbol(create, Decl(types.d.ts, 10, 23))
30+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
31+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
32+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))

‎testdata/baselines/reference/submodule/compiler/declarationEmitReexportedSymlinkReference2.symbols

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,67 @@ import {MetadataAccessor} from "@raymondfeng/pkg2";
99

1010
export const ADMIN = MetadataAccessor.create<boolean>('1');
1111
>ADMIN : Symbol(ADMIN, Decl(keys.ts, 2, 12))
12+
>MetadataAccessor.create : Symbol(create, Decl(types.d.ts, 10, 23))
1213
>MetadataAccessor : Symbol(MetadataAccessor, Decl(keys.ts, 0, 8))
14+
>create : Symbol(create, Decl(types.d.ts, 10, 23))
15+
16+
=== monorepo/pkg1/dist/index.d.ts ===
17+
18+
export * from './types';
19+
=== monorepo/pkg1/dist/types.d.ts ===
20+
export declare type A = {
21+
>A : Symbol(A, Decl(types.d.ts, 0, 0))
22+
23+
id: string;
24+
>id : Symbol(id, Decl(types.d.ts, 0, 25))
25+
26+
};
27+
export declare type B = {
28+
>B : Symbol(B, Decl(types.d.ts, 2, 2))
29+
30+
id: number;
31+
>id : Symbol(id, Decl(types.d.ts, 3, 25))
32+
33+
};
34+
export declare type IdType = A | B;
35+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
36+
>A : Symbol(A, Decl(types.d.ts, 0, 0))
37+
>B : Symbol(B, Decl(types.d.ts, 2, 2))
38+
39+
export declare class MetadataAccessor<T, D extends IdType = IdType> {
40+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
41+
>T : Symbol(T, Decl(types.d.ts, 7, 38))
42+
>D : Symbol(D, Decl(types.d.ts, 7, 40))
43+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
44+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
45+
46+
readonly key: string;
47+
>key : Symbol(key, Decl(types.d.ts, 7, 69))
48+
49+
private constructor();
50+
toString(): string;
51+
>toString : Symbol(toString, Decl(types.d.ts, 9, 26))
52+
53+
static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
54+
>create : Symbol(create, Decl(types.d.ts, 10, 23))
55+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
56+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
57+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
58+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
59+
>key : Symbol(key, Decl(types.d.ts, 11, 48))
60+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
61+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
62+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
63+
}
64+
=== monorepo/pkg2/dist/index.d.ts ===
65+
66+
import "./secondary";
67+
export * from './types';
68+
=== monorepo/pkg2/dist/types.d.ts ===
69+
export {MetadataAccessor} from '@raymondfeng/pkg1';
70+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 0, 8))
71+
72+
=== monorepo/pkg2/dist/secondary.d.ts ===
73+
export {IdType} from '@raymondfeng/pkg1';
74+
>IdType : Symbol(IdType, Decl(secondary.d.ts, 0, 8))
1375

‎testdata/baselines/reference/submodule/compiler/declarationEmitReexportedSymlinkReference2.symbols.diff

Lines changed: 19 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -5,66 +5,28 @@
55
export const ADMIN = MetadataAccessor.create<boolean>('1');
66
>ADMIN : Symbol(ADMIN, Decl(keys.ts, 2, 12))
77
->MetadataAccessor.create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
8+
+>MetadataAccessor.create : Symbol(create, Decl(types.d.ts, 10, 23))
89
>MetadataAccessor : Symbol(MetadataAccessor, Decl(keys.ts, 0, 8))
910
->create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
11+
+>create : Symbol(create, Decl(types.d.ts, 10, 23))
1012

11-
-=== monorepo/pkg1/dist/index.d.ts ===
12-
-
13-
-export * from './types';
14-
-=== monorepo/pkg1/dist/types.d.ts ===
15-
-export declare type A = {
16-
->A : Symbol(A, Decl(types.d.ts, 0, 0))
17-
-
18-
- id: string;
19-
->id : Symbol(id, Decl(types.d.ts, 0, 25))
20-
-
21-
-};
22-
-export declare type B = {
23-
->B : Symbol(B, Decl(types.d.ts, 2, 2))
24-
-
25-
- id: number;
26-
->id : Symbol(id, Decl(types.d.ts, 3, 25))
27-
-
28-
-};
29-
-export declare type IdType = A | B;
30-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
31-
->A : Symbol(A, Decl(types.d.ts, 0, 0))
32-
->B : Symbol(B, Decl(types.d.ts, 2, 2))
33-
-
34-
-export declare class MetadataAccessor<T, D extends IdType = IdType> {
35-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
36-
->T : Symbol(T, Decl(types.d.ts, 7, 38))
37-
->D : Symbol(D, Decl(types.d.ts, 7, 40))
38-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
39-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
40-
-
41-
- readonly key: string;
13+
=== monorepo/pkg1/dist/index.d.ts ===
14+
15+
@@= skipped -35, +35 lines =@@
16+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
17+
18+
readonly key: string;
4219
->key : Symbol(MetadataAccessor.key, Decl(types.d.ts, 7, 69))
43-
-
44-
- private constructor();
45-
- toString(): string;
20+
+>key : Symbol(key, Decl(types.d.ts, 7, 69))
21+
22+
private constructor();
23+
toString(): string;
4624
->toString : Symbol(MetadataAccessor.toString, Decl(types.d.ts, 9, 26))
47-
-
48-
- static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
25+
+>toString : Symbol(toString, Decl(types.d.ts, 9, 26))
26+
27+
static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
4928
->create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
50-
->T : Symbol(T, Decl(types.d.ts, 11, 18))
51-
->D : Symbol(D, Decl(types.d.ts, 11, 20))
52-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
53-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
54-
->key : Symbol(key, Decl(types.d.ts, 11, 48))
55-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
56-
->T : Symbol(T, Decl(types.d.ts, 11, 18))
57-
->D : Symbol(D, Decl(types.d.ts, 11, 20))
58-
-}
59-
-=== monorepo/pkg2/dist/index.d.ts ===
60-
-
61-
-import "./secondary";
62-
-export * from './types';
63-
-=== monorepo/pkg2/dist/types.d.ts ===
64-
-export {MetadataAccessor} from '@raymondfeng/pkg1';
65-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 0, 8))
66-
-
67-
-=== monorepo/pkg2/dist/secondary.d.ts ===
68-
-export {IdType} from '@raymondfeng/pkg1';
69-
->IdType : Symbol(IdType, Decl(secondary.d.ts, 0, 8))
70-
-
29+
+>create : Symbol(create, Decl(types.d.ts, 10, 23))
30+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
31+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
32+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))

‎testdata/baselines/reference/submodule/compiler/declarationEmitReexportedSymlinkReference3.symbols

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,62 @@ import {MetadataAccessor} from "@raymondfeng/pkg2";
99

1010
export const ADMIN = MetadataAccessor.create<boolean>('1');
1111
>ADMIN : Symbol(ADMIN, Decl(keys.ts, 2, 12))
12+
>MetadataAccessor.create : Symbol(create, Decl(types.d.ts, 10, 23))
1213
>MetadataAccessor : Symbol(MetadataAccessor, Decl(keys.ts, 0, 8))
14+
>create : Symbol(create, Decl(types.d.ts, 10, 23))
15+
16+
=== monorepo/pkg1/dist/index.d.ts ===
17+
18+
export * from './types';
19+
=== monorepo/pkg1/dist/types.d.ts ===
20+
export declare type A = {
21+
>A : Symbol(A, Decl(types.d.ts, 0, 0))
22+
23+
id: string;
24+
>id : Symbol(id, Decl(types.d.ts, 0, 25))
25+
26+
};
27+
export declare type B = {
28+
>B : Symbol(B, Decl(types.d.ts, 2, 2))
29+
30+
id: number;
31+
>id : Symbol(id, Decl(types.d.ts, 3, 25))
32+
33+
};
34+
export declare type IdType = A | B;
35+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
36+
>A : Symbol(A, Decl(types.d.ts, 0, 0))
37+
>B : Symbol(B, Decl(types.d.ts, 2, 2))
38+
39+
export declare class MetadataAccessor<T, D extends IdType = IdType> {
40+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
41+
>T : Symbol(T, Decl(types.d.ts, 7, 38))
42+
>D : Symbol(D, Decl(types.d.ts, 7, 40))
43+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
44+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
45+
46+
readonly key: string;
47+
>key : Symbol(key, Decl(types.d.ts, 7, 69))
48+
49+
private constructor();
50+
toString(): string;
51+
>toString : Symbol(toString, Decl(types.d.ts, 9, 26))
52+
53+
static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
54+
>create : Symbol(create, Decl(types.d.ts, 10, 23))
55+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
56+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
57+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
58+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
59+
>key : Symbol(key, Decl(types.d.ts, 11, 48))
60+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
61+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
62+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
63+
}
64+
=== monorepo/pkg2/dist/index.d.ts ===
65+
66+
export * from './types';
67+
=== monorepo/pkg2/dist/types.d.ts ===
68+
export {MetadataAccessor} from '@raymondfeng/pkg1';
69+
>MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 0, 8))
1370

‎testdata/baselines/reference/submodule/compiler/declarationEmitReexportedSymlinkReference3.symbols.diff

Lines changed: 19 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,61 +5,28 @@
55
export const ADMIN = MetadataAccessor.create<boolean>('1');
66
>ADMIN : Symbol(ADMIN, Decl(keys.ts, 2, 12))
77
->MetadataAccessor.create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
8+
+>MetadataAccessor.create : Symbol(create, Decl(types.d.ts, 10, 23))
89
>MetadataAccessor : Symbol(MetadataAccessor, Decl(keys.ts, 0, 8))
910
->create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
11+
+>create : Symbol(create, Decl(types.d.ts, 10, 23))
1012

11-
-=== monorepo/pkg1/dist/index.d.ts ===
12-
-
13-
-export * from './types';
14-
-=== monorepo/pkg1/dist/types.d.ts ===
15-
-export declare type A = {
16-
->A : Symbol(A, Decl(types.d.ts, 0, 0))
17-
-
18-
- id: string;
19-
->id : Symbol(id, Decl(types.d.ts, 0, 25))
20-
-
21-
-};
22-
-export declare type B = {
23-
->B : Symbol(B, Decl(types.d.ts, 2, 2))
24-
-
25-
- id: number;
26-
->id : Symbol(id, Decl(types.d.ts, 3, 25))
27-
-
28-
-};
29-
-export declare type IdType = A | B;
30-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
31-
->A : Symbol(A, Decl(types.d.ts, 0, 0))
32-
->B : Symbol(B, Decl(types.d.ts, 2, 2))
33-
-
34-
-export declare class MetadataAccessor<T, D extends IdType = IdType> {
35-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
36-
->T : Symbol(T, Decl(types.d.ts, 7, 38))
37-
->D : Symbol(D, Decl(types.d.ts, 7, 40))
38-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
39-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
40-
-
41-
- readonly key: string;
13+
=== monorepo/pkg1/dist/index.d.ts ===
14+
15+
@@= skipped -35, +35 lines =@@
16+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
17+
18+
readonly key: string;
4219
->key : Symbol(MetadataAccessor.key, Decl(types.d.ts, 7, 69))
43-
-
44-
- private constructor();
45-
- toString(): string;
20+
+>key : Symbol(key, Decl(types.d.ts, 7, 69))
21+
22+
private constructor();
23+
toString(): string;
4624
->toString : Symbol(MetadataAccessor.toString, Decl(types.d.ts, 9, 26))
47-
-
48-
- static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
25+
+>toString : Symbol(toString, Decl(types.d.ts, 9, 26))
26+
27+
static create<T, D extends IdType = IdType>(key: string): MetadataAccessor<T, D>;
4928
->create : Symbol(MetadataAccessor.create, Decl(types.d.ts, 10, 23))
50-
->T : Symbol(T, Decl(types.d.ts, 11, 18))
51-
->D : Symbol(D, Decl(types.d.ts, 11, 20))
52-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
53-
->IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))
54-
->key : Symbol(key, Decl(types.d.ts, 11, 48))
55-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 6, 35))
56-
->T : Symbol(T, Decl(types.d.ts, 11, 18))
57-
->D : Symbol(D, Decl(types.d.ts, 11, 20))
58-
-}
59-
-=== monorepo/pkg2/dist/index.d.ts ===
60-
-
61-
-export * from './types';
62-
-=== monorepo/pkg2/dist/types.d.ts ===
63-
-export {MetadataAccessor} from '@raymondfeng/pkg1';
64-
->MetadataAccessor : Symbol(MetadataAccessor, Decl(types.d.ts, 0, 8))
65-
-
29+
+>create : Symbol(create, Decl(types.d.ts, 10, 23))
30+
>T : Symbol(T, Decl(types.d.ts, 11, 18))
31+
>D : Symbol(D, Decl(types.d.ts, 11, 20))
32+
>IdType : Symbol(IdType, Decl(types.d.ts, 5, 2))

‎testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.symbols

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ import { BindingKey } from '@loopback/context';
1717

1818
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(null as any); // line in question
1919
>CONTROLLER_CLASS : Symbol(CONTROLLER_CLASS, Decl(usage.ts, 3, 12))
20+
>BindingKey.create : Symbol(create, Decl(bindingkey.ts, 2, 21))
2021
>BindingKey : Symbol(BindingKey, Decl(usage.ts, 1, 8))
22+
>create : Symbol(create, Decl(bindingkey.ts, 2, 21))
2123
>ControllerClass : Symbol(ControllerClass, Decl(usage.ts, 0, 8))
2224

2325
=== monorepo/context/src/value-promise.ts ===

‎testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNames.symbols.diff

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(null as any); // line in question
66
>CONTROLLER_CLASS : Symbol(CONTROLLER_CLASS, Decl(usage.ts, 3, 12))
77
->BindingKey.create : Symbol(BindingKey.create, Decl(bindingkey.ts, 2, 21))
8+
+>BindingKey.create : Symbol(create, Decl(bindingkey.ts, 2, 21))
89
>BindingKey : Symbol(BindingKey, Decl(usage.ts, 1, 8))
910
->create : Symbol(BindingKey.create, Decl(bindingkey.ts, 2, 21))
11+
+>create : Symbol(create, Decl(bindingkey.ts, 2, 21))
1012
>ControllerClass : Symbol(ControllerClass, Decl(usage.ts, 0, 8))
1113

1214
=== monorepo/context/src/value-promise.ts ===
13-
@@= skipped -21, +19 lines =@@
15+
@@= skipped -21, +21 lines =@@
1416
>T : Symbol(T, Decl(bindingkey.ts, 1, 24))
1517

1618
readonly __type: T;

‎testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesImportRef.symbols

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,12 @@ export function getStyles() {
1111
>styles : Symbol(styles, Decl(index.ts, 0, 8))
1212
}
1313

14+
=== Folder/monorepo/package-a/index.d.ts ===
15+
export declare const styles: import("styled-components").InterpolationValue[];
16+
>styles : Symbol(styles, Decl(index.d.ts, 0, 20))
17+
>InterpolationValue : Symbol(InterpolationValue, Decl(styled-components.d.ts, 0, 0))
18+
19+
=== Folder/node_modules/styled-components/typings/styled-components.d.ts ===
20+
export interface InterpolationValue {}
21+
>InterpolationValue : Symbol(InterpolationValue, Decl(styled-components.d.ts, 0, 0))
22+

‎testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesImportRef.symbols.diff

Lines changed: 0 additions & 15 deletions
This file was deleted.

‎testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.symbols

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,42 @@ import { BindingKey } from '@loopback/context';
1717

1818
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(null as any); // line in question
1919
>CONTROLLER_CLASS : Symbol(CONTROLLER_CLASS, Decl(usage.ts, 3, 12))
20+
>BindingKey.create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
2021
>BindingKey : Symbol(BindingKey, Decl(usage.ts, 1, 8))
22+
>create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
2123
>ControllerClass : Symbol(ControllerClass, Decl(usage.ts, 0, 8))
2224

25+
=== /monorepo/context/src/value-promise.d.ts ===
26+
export type Constructor<T> = (...args: any[]) => T;
27+
>Constructor : Symbol(Constructor, Decl(value-promise.d.ts, 0, 0))
28+
>T : Symbol(T, Decl(value-promise.d.ts, 0, 24))
29+
>args : Symbol(args, Decl(value-promise.d.ts, 0, 30))
30+
>T : Symbol(T, Decl(value-promise.d.ts, 0, 24))
31+
32+
=== /monorepo/context/src/bindingkey.d.ts ===
33+
import { Constructor } from "./value-promise"
34+
>Constructor : Symbol(Constructor, Decl(bindingkey.d.ts, 0, 8))
35+
36+
export declare class BindingKey<T> {
37+
>BindingKey : Symbol(BindingKey, Decl(bindingkey.d.ts, 0, 45))
38+
>T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
39+
40+
readonly __type: T;
41+
>__type : Symbol(__type, Decl(bindingkey.d.ts, 1, 36))
42+
>T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
43+
44+
static create<T extends Constructor<any>>(ctor: T): BindingKey<T>;
45+
>create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
46+
>T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
47+
>Constructor : Symbol(Constructor, Decl(bindingkey.d.ts, 0, 8))
48+
>ctor : Symbol(ctor, Decl(bindingkey.d.ts, 3, 44))
49+
>T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
50+
>BindingKey : Symbol(BindingKey, Decl(bindingkey.d.ts, 0, 45))
51+
>T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
52+
}
53+
54+
=== /monorepo/context/index.d.ts ===
55+
56+
export * from "./src/value-promise";
57+
export * from "./src/bindingkey";
58+

‎testdata/baselines/reference/submodule/compiler/symbolLinkDeclarationEmitModuleNamesRootDir.symbols.diff

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,24 @@
55
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(null as any); // line in question
66
>CONTROLLER_CLASS : Symbol(CONTROLLER_CLASS, Decl(usage.ts, 3, 12))
77
->BindingKey.create : Symbol(BindingKey.create, Decl(bindingkey.d.ts, 2, 21))
8+
+>BindingKey.create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
89
>BindingKey : Symbol(BindingKey, Decl(usage.ts, 1, 8))
910
->create : Symbol(BindingKey.create, Decl(bindingkey.d.ts, 2, 21))
11+
+>create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
1012
>ControllerClass : Symbol(ControllerClass, Decl(usage.ts, 0, 8))
1113

12-
-=== /monorepo/context/src/value-promise.d.ts ===
13-
-export type Constructor<T> = (...args: any[]) => T;
14-
->Constructor : Symbol(Constructor, Decl(value-promise.d.ts, 0, 0))
15-
->T : Symbol(T, Decl(value-promise.d.ts, 0, 24))
16-
->args : Symbol(args, Decl(value-promise.d.ts, 0, 30))
17-
->T : Symbol(T, Decl(value-promise.d.ts, 0, 24))
18-
-
19-
-=== /monorepo/context/src/bindingkey.d.ts ===
20-
-import { Constructor } from "./value-promise"
21-
->Constructor : Symbol(Constructor, Decl(bindingkey.d.ts, 0, 8))
22-
-
23-
-export declare class BindingKey<T> {
24-
->BindingKey : Symbol(BindingKey, Decl(bindingkey.d.ts, 0, 45))
25-
->T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
26-
-
27-
- readonly __type: T;
14+
=== /monorepo/context/src/value-promise.d.ts ===
15+
@@= skipped -21, +21 lines =@@
16+
>T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
17+
18+
readonly __type: T;
2819
->__type : Symbol(BindingKey.__type, Decl(bindingkey.d.ts, 1, 36))
29-
->T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
30-
-
31-
- static create<T extends Constructor<any>>(ctor: T): BindingKey<T>;
20+
+>__type : Symbol(__type, Decl(bindingkey.d.ts, 1, 36))
21+
>T : Symbol(T, Decl(bindingkey.d.ts, 1, 32))
22+
23+
static create<T extends Constructor<any>>(ctor: T): BindingKey<T>;
3224
->create : Symbol(BindingKey.create, Decl(bindingkey.d.ts, 2, 21))
33-
->T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
34-
->Constructor : Symbol(Constructor, Decl(bindingkey.d.ts, 0, 8))
35-
->ctor : Symbol(ctor, Decl(bindingkey.d.ts, 3, 44))
36-
->T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
37-
->BindingKey : Symbol(BindingKey, Decl(bindingkey.d.ts, 0, 45))
38-
->T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
39-
-}
40-
-
41-
-=== /monorepo/context/index.d.ts ===
42-
-
43-
-export * from "./src/value-promise";
44-
-export * from "./src/bindingkey";
45-
-
25+
+>create : Symbol(create, Decl(bindingkey.d.ts, 2, 21))
26+
>T : Symbol(T, Decl(bindingkey.d.ts, 3, 16))
27+
>Constructor : Symbol(Constructor, Decl(bindingkey.d.ts, 0, 8))
28+
>ctor : Symbol(ctor, Decl(bindingkey.d.ts, 3, 44))

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkGeneratesDeepNonrelativeName.symbols

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,7 @@ import * as pkg from "package-b";
3030

3131
export const a = pkg.invoke();
3232
>a : Symbol(a, Decl(index.ts, 2, 12))
33+
>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 35))
3334
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
35+
>invoke : Symbol(invoke, Decl(index.d.ts, 0, 35))
3436

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkGeneratesDeepNonrelativeName.symbols.diff

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
export const a = pkg.invoke();
1515
>a : Symbol(a, Decl(index.ts, 2, 12))
1616
->pkg.invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 35))
17+
+>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 35))
1718
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
1819
->invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 35))
20+
+>invoke : Symbol(invoke, Decl(index.d.ts, 0, 35))
1921

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkGeneratesNonrelativeName.symbols

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ import * as pkg from "package-b";
2121

2222
export const a = pkg.invoke();
2323
>a : Symbol(a, Decl(index.ts, 2, 12))
24+
>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
2425
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
26+
>invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
2527

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkGeneratesNonrelativeName.symbols.diff

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
export const a = pkg.invoke();
1515
>a : Symbol(a, Decl(index.ts, 2, 12))
1616
->pkg.invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 32))
17+
+>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
1718
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
1819
->invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 32))
20+
+>invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
1921

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkOptionalGeneratesNonrelativeName.symbols

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ import * as pkg from "package-b";
2121

2222
export const a = pkg.invoke();
2323
>a : Symbol(a, Decl(index.ts, 2, 12))
24+
>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
2425
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
26+
>invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
2527

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkOptionalGeneratesNonrelativeName.symbols.diff

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
export const a = pkg.invoke();
1515
>a : Symbol(a, Decl(index.ts, 2, 12))
1616
->pkg.invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 32))
17+
+>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
1718
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
1819
->invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 32))
20+
+>invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
1921

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkPeerGeneratesNonrelativeName.symbols

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ import * as pkg from "package-b";
2121

2222
export const a = pkg.invoke();
2323
>a : Symbol(a, Decl(index.ts, 2, 12))
24+
>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
2425
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
26+
>invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
2527

‎testdata/baselines/reference/submodule/compiler/symlinkedWorkspaceDependenciesNoDirectLinkPeerGeneratesNonrelativeName.symbols.diff

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
export const a = pkg.invoke();
1515
>a : Symbol(a, Decl(index.ts, 2, 12))
1616
->pkg.invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 32))
17+
+>pkg.invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
1718
>pkg : Symbol(pkg, Decl(index.ts, 0, 6))
1819
->invoke : Symbol(pkg.invoke, Decl(index.d.ts, 0, 32))
20+
+>invoke : Symbol(invoke, Decl(index.d.ts, 0, 32))
1921

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// @currentDirectory: /monorepo/core
2+
// @filename: /monorepo/context/src/value-promise.d.ts
3+
export type Constructor<T> = (...args: any[]) => T;
4+
// @filename: /monorepo/context/src/bindingkey.d.ts
5+
import { Constructor } from "./value-promise"
6+
export declare class BindingKey<T> {
7+
readonly __type: T;
8+
static create<T extends Constructor<any>>(ctor: T): BindingKey<T>;
9+
}
10+
11+
// @filename: /monorepo/context/index.d.ts
12+
export * from "./src/value-promise";
13+
export * from "./src/bindingkey";
14+
15+
// @filename: /monorepo/core/tsconfig.json
16+
{
17+
"compilerOptions": {
18+
"rootDir": ".",
19+
"declaration": true,
20+
"outDir": "./dist"
21+
}
22+
}
23+
// @filename: /monorepo/core/src/application.ts
24+
import { Constructor } from "@loopback/context";
25+
export type ControllerClass = Constructor<any>;
26+
27+
// @filename: /monorepo/core/src/usage.ts
28+
import { ControllerClass } from './application';
29+
import { BindingKey } from '@loopback/context';
30+
31+
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(null as any); // line in question
32+
33+
// @link: /monorepo/context -> /monorepo/core/node_modules/@loopback/context

0 commit comments

Comments
 (0)
Please sign in to comment.