@rnx-kit/cli 0.9.55 → 0.9.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,10 +6,10 @@ FN:39,(anonymous_2)
6
6
  FN:53,(anonymous_3)
7
7
  FN:58,(anonymous_4)
8
8
  FN:67,(anonymous_5)
9
- FN:72,(anonymous_6)
10
- FN:80,(anonymous_7)
11
- FN:96,(anonymous_8)
12
- FN:109,customizeMetroConfig
9
+ FN:77,(anonymous_6)
10
+ FN:85,(anonymous_7)
11
+ FN:101,(anonymous_8)
12
+ FN:114,customizeMetroConfig
13
13
  FNF:10
14
14
  FNH:2
15
15
  FNDA:6,createSerializerHook
@@ -38,71 +38,74 @@ DA:61,0
38
38
  DA:66,0
39
39
  DA:67,0
40
40
  DA:68,0
41
- DA:69,0
42
- DA:70,0
43
41
  DA:72,0
44
42
  DA:73,0
45
43
  DA:74,0
46
- DA:75,0
44
+ DA:77,0
45
+ DA:78,0
47
46
  DA:79,0
48
47
  DA:80,0
49
- DA:81,0
50
- DA:82,0
48
+ DA:84,0
49
+ DA:85,0
51
50
  DA:86,0
52
- DA:88,0
53
- DA:93,6
54
- DA:96,2
55
- DA:118,6
56
- DA:120,6
57
- DA:121,6
58
- DA:122,1
59
- DA:123,5
60
- DA:124,2
51
+ DA:87,0
52
+ DA:91,0
53
+ DA:93,0
54
+ DA:98,6
55
+ DA:101,2
56
+ DA:123,6
57
+ DA:125,6
61
58
  DA:126,6
62
59
  DA:127,1
63
60
  DA:128,5
64
61
  DA:129,2
65
- DA:132,6
66
- DA:133,1
67
- DA:134,1
68
- DA:135,5
69
- DA:146,4
70
- DA:150,1
71
- DA:153,6
72
- DA:154,6
73
- DA:155,0
74
- DA:156,6
75
- DA:157,6
62
+ DA:131,6
63
+ DA:132,1
64
+ DA:133,5
65
+ DA:134,2
66
+ DA:137,6
67
+ DA:138,1
68
+ DA:139,1
69
+ DA:140,5
70
+ DA:151,4
71
+ DA:155,1
72
+ DA:158,6
76
73
  DA:159,6
77
- LF:52
74
+ DA:160,0
75
+ DA:161,6
76
+ DA:162,6
77
+ DA:164,6
78
+ LF:53
78
79
  LH:27
79
80
  BRDA:41,0,0,0
80
81
  BRDA:41,0,1,0
81
82
  BRDA:42,1,0,0
82
83
  BRDA:42,1,1,0
83
- BRDA:81,2,0,0
84
- BRDA:81,2,1,0
84
+ BRDA:72,2,0,0
85
+ BRDA:72,2,1,0
85
86
  BRDA:86,3,0,0
86
87
  BRDA:86,3,1,0
87
- BRDA:86,4,0,0
88
- BRDA:86,4,1,0
89
- BRDA:121,5,0,1
90
- BRDA:121,5,1,5
91
- BRDA:123,6,0,2
92
- BRDA:123,6,1,3
93
- BRDA:126,7,0,1
94
- BRDA:126,7,1,5
95
- BRDA:128,8,0,2
96
- BRDA:128,8,1,3
97
- BRDA:132,9,0,1
98
- BRDA:132,9,1,5
99
- BRDA:135,10,0,4
100
- BRDA:135,10,1,1
101
- BRDA:154,11,0,0
102
- BRDA:154,11,1,6
103
- BRDA:156,12,0,6
104
- BRDA:156,12,1,0
105
- BRF:26
88
+ BRDA:91,4,0,0
89
+ BRDA:91,4,1,0
90
+ BRDA:91,5,0,0
91
+ BRDA:91,5,1,0
92
+ BRDA:126,6,0,1
93
+ BRDA:126,6,1,5
94
+ BRDA:128,7,0,2
95
+ BRDA:128,7,1,3
96
+ BRDA:131,8,0,1
97
+ BRDA:131,8,1,5
98
+ BRDA:133,9,0,2
99
+ BRDA:133,9,1,3
100
+ BRDA:137,10,0,1
101
+ BRDA:137,10,1,5
102
+ BRDA:140,11,0,4
103
+ BRDA:140,11,1,1
104
+ BRDA:159,12,0,0
105
+ BRDA:159,12,1,6
106
+ BRDA:161,13,0,6
107
+ BRDA:161,13,1,0
108
+ BRF:28
106
109
  BRH:14
107
110
  end_of_record
108
111
  TN:
@@ -223,83 +226,86 @@ BRH:2
223
226
  end_of_record
224
227
  TN:
225
228
  SF:src/typescript/project-cache.ts
226
- FN:51,createProjectCache
227
- FN:60,findProjectRoot
228
- FN:79,readTSConfig
229
- FN:87,(anonymous_3)
230
- FN:94,createProject
231
- FN:100,(anonymous_5)
232
- FN:128,getProject
233
- FN:139,clearPlatform
234
- FN:140,(anonymous_8)
229
+ FN:56,createProjectCache
230
+ FN:68,findProjectRoot
231
+ FN:87,readTSConfig
232
+ FN:95,(anonymous_3)
233
+ FN:102,createProjectInfo
234
+ FN:111,(anonymous_5)
235
+ FN:147,getProjectInfo
236
+ FN:162,clearPlatform
237
+ FN:163,(anonymous_8)
235
238
  FNF:9
236
239
  FNH:1
237
240
  FNDA:6,createProjectCache
238
241
  FNDA:0,findProjectRoot
239
242
  FNDA:0,readTSConfig
240
243
  FNDA:0,(anonymous_3)
241
- FNDA:0,createProject
244
+ FNDA:0,createProjectInfo
242
245
  FNDA:0,(anonymous_5)
243
- FNDA:0,getProject
246
+ FNDA:0,getProjectInfo
244
247
  FNDA:0,clearPlatform
245
248
  FNDA:0,(anonymous_8)
246
- DA:54,6
247
- DA:55,6
248
- DA:58,6
249
- DA:62,0
250
- DA:63,0
251
- DA:64,0
252
- DA:69,0
249
+ DA:59,6
250
+ DA:60,6
251
+ DA:66,6
253
252
  DA:70,0
254
253
  DA:71,0
255
- DA:76,0
256
- DA:80,0
257
- DA:82,0
258
- DA:83,0
254
+ DA:72,0
255
+ DA:77,0
256
+ DA:78,0
257
+ DA:79,0
259
258
  DA:84,0
260
- DA:85,0
261
- DA:86,0
262
- DA:87,0
263
259
  DA:88,0
260
+ DA:90,0
264
261
  DA:91,0
262
+ DA:92,0
263
+ DA:93,0
264
+ DA:94,0
265
+ DA:95,0
265
266
  DA:96,0
266
- DA:100,0
267
- DA:101,0
268
- DA:102,0
269
- DA:103,0
270
- DA:104,0
271
- DA:105,0
267
+ DA:99,0
268
+ DA:107,0
269
+ DA:111,0
270
+ DA:112,0
271
+ DA:113,0
272
+ DA:114,0
272
273
  DA:115,0
273
- DA:123,0
274
- DA:125,0
275
- DA:129,0
276
- DA:130,0
277
- DA:131,0
278
- DA:133,0
279
- DA:134,0
274
+ DA:116,0
275
+ DA:126,0
280
276
  DA:136,0
281
- DA:140,0
277
+ DA:139,0
282
278
  DA:141,0
283
- DA:142,0
284
- DA:143,0
285
- DA:144,0
286
- DA:149,6
287
- LF:41
279
+ DA:151,0
280
+ DA:152,0
281
+ DA:154,0
282
+ DA:155,0
283
+ DA:156,0
284
+ DA:157,0
285
+ DA:159,0
286
+ DA:163,0
287
+ DA:164,0
288
+ DA:165,0
289
+ DA:166,0
290
+ DA:167,0
291
+ DA:169,0
292
+ DA:174,6
293
+ LF:44
288
294
  LH:4
289
- BRDA:63,0,0,0
290
- BRDA:63,0,1,0
291
- BRDA:70,1,0,0
292
- BRDA:70,1,1,0
293
- BRDA:83,2,0,0
294
- BRDA:83,2,1,0
295
- BRDA:85,3,0,0
296
- BRDA:85,3,1,0
297
- BRDA:130,4,0,0
298
- BRDA:130,4,1,0
299
- BRDA:133,5,0,0
300
- BRDA:133,5,1,0
301
- BRDA:142,6,0,0
302
- BRDA:142,6,1,0
295
+ BRDA:71,0,0,0
296
+ BRDA:71,0,1,0
297
+ BRDA:78,1,0,0
298
+ BRDA:78,1,1,0
299
+ BRDA:91,2,0,0
300
+ BRDA:91,2,1,0
301
+ BRDA:93,3,0,0
302
+ BRDA:93,3,1,0
303
+ BRDA:155,4,0,0
304
+ BRDA:155,4,1,0
305
+ BRDA:165,5,0,0
306
+ BRDA:165,5,1,0
307
+ BRDA:166,6,0,0
308
+ BRDA:166,6,1,0
303
309
  BRF:14
304
310
  BRH:0
305
311
  end_of_record
@@ -1 +1 @@
1
- {"version":3,"file":"metro-config.d.ts","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,IAAI,qBAAqB,EACvC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAEL,OAAO,IAAI,wBAAwB,EACpC,MAAM,0CAA0C,CAAC;AAUlD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AA+EpE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,YAAY,EACjC,wBAAwB,EAAE,OAAO,GAAG,qBAAqB,EACzD,2BAA2B,EAAE,OAAO,GAAG,wBAAwB,EAC/D,oBAAoB,EAAE,OAAO,GAAG,2BAA2B,EAC3D,sBAAsB,EAAE,OAAO,GAC9B,IAAI,CA6CN"}
1
+ {"version":3,"file":"metro-config.d.ts","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,IAAI,qBAAqB,EACvC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAEL,OAAO,IAAI,wBAAwB,EACpC,MAAM,0CAA0C,CAAC;AAUlD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AAoFpE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,YAAY,EACjC,wBAAwB,EAAE,OAAO,GAAG,qBAAqB,EACzD,2BAA2B,EAAE,OAAO,GAAG,wBAAwB,EAC/D,oBAAoB,EAAE,OAAO,GAAG,2BAA2B,EAC3D,sBAAsB,EAAE,OAAO,GAC9B,IAAI,CA6CN"}
@@ -37,12 +37,14 @@ function createSerializerHook(options) {
37
37
  // Map each file to a TypeScript project, and apply its delta operation.
38
38
  const tsprojectsToValidate = new Set();
39
39
  adds.concat(updates).forEach((sourceFile) => {
40
- const tsproject = projectCache.getProject(sourceFile, platform);
41
- tsproject.setFile(sourceFile);
42
- tsprojectsToValidate.add(tsproject);
40
+ const { tsproject, tssourceFiles } = projectCache.getProjectInfo(sourceFile, platform);
41
+ if (tssourceFiles.has(sourceFile)) {
42
+ tsproject.setFile(sourceFile);
43
+ tsprojectsToValidate.add(tsproject);
44
+ }
43
45
  });
44
46
  deletes.forEach((sourceFile) => {
45
- const tsproject = projectCache.getProject(sourceFile, platform);
47
+ const { tsproject } = projectCache.getProjectInfo(sourceFile, platform);
46
48
  tsproject.removeFile(sourceFile);
47
49
  tsprojectsToValidate.add(tsproject);
48
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { AllPlatforms } from "@rnx-kit/tools-react-native/platform";
2
2
  import { Project } from "@rnx-kit/typescript-service";
3
+ export declare type ProjectInfo = {
4
+ tsproject: Project;
5
+ tssourceFiles: Set<string>;
6
+ };
3
7
  /**
4
8
  * Collection of TypeScript projects, separated by their target platform.
5
9
  *
@@ -19,14 +23,14 @@ export interface ProjectCache {
19
23
  */
20
24
  clearPlatform(platform: AllPlatforms): void;
21
25
  /**
22
- * Get the project which targets a specific platform and contains a specific
26
+ * Get info on the project which targets a specific platform and contains a specific
23
27
  * source file. If the project is not cached, load it and add it to the cache.
24
28
  *
25
29
  * @param platform Target platform
26
30
  * @param sourceFile Source file
27
31
  * @returns Project targeting the given platform and containing the given source file
28
32
  */
29
- getProject(sourceFile: string, platform: AllPlatforms): Project;
33
+ getProjectInfo(sourceFile: string, platform: AllPlatforms): ProjectInfo;
30
34
  }
31
35
  /**
32
36
  * Create an empty cache for holding TypeScript projects.
@@ -1 +1 @@
1
- {"version":3,"file":"project-cache.d.ts","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,OAAO,EAER,MAAM,6BAA6B,CAAC;AAIrC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5C;;;;;;;OAOG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,YAAY,CAoGd"}
1
+ {"version":3,"file":"project-cache.d.ts","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,OAAO,EAER,MAAM,6BAA6B,CAAC;AAIrC,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5C;;;;;;;OAOG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;CACzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,YAAY,CAwHd"}
@@ -48,7 +48,7 @@ function createProjectCache(print) {
48
48
  }
49
49
  return cmdLine;
50
50
  }
51
- function createProject(root, platform) {
51
+ function createProjectInfo(root, platform) {
52
52
  // Load the TypeScript configuration file for this project.
53
53
  const cmdLine = readTSConfig(root);
54
54
  // Create a TypeScript project using the configuration file. Enhance the
@@ -69,32 +69,41 @@ function createProjectCache(print) {
69
69
  });
70
70
  };
71
71
  const tsproject = new typescript_service_1.Project(documentRegistry, diagnosticWriter, cmdLine, enhanceLanguageServiceHost);
72
- // Start with an empty project, ignoring the file graph from tsconfig.json.
72
+ // Store TypeScript's source file list for this project. We'll use it later
73
+ // to filter files from Metro's file graph. We only want to check files that
74
+ // TypeScript considers to be source code, and not transpiled output.
75
+ const tssourceFiles = new Set(cmdLine.fileNames);
76
+ // Start with an empty project
73
77
  tsproject.removeAllFiles();
74
- return tsproject;
78
+ return {
79
+ tsproject,
80
+ tssourceFiles,
81
+ };
75
82
  }
76
- function getProject(sourceFile, platform) {
83
+ function getProjectInfo(sourceFile, platform) {
77
84
  const root = findProjectRoot(sourceFile);
78
- if (!projects[root]) {
79
- projects[root] = {};
80
- }
81
- if (!projects[root][platform]) {
82
- projects[root][platform] = createProject(root, platform);
85
+ projects[root] || (projects[root] = {});
86
+ let info = projects[root][platform];
87
+ if (!info) {
88
+ info = createProjectInfo(root, platform);
89
+ projects[root][platform] = info;
83
90
  }
84
- return projects[root][platform];
91
+ return info;
85
92
  }
86
93
  function clearPlatform(platform) {
87
94
  Object.values(projects).forEach((projectsByPlatform) => {
88
- const project = projectsByPlatform[platform];
89
- if (project) {
90
- project.dispose();
95
+ const info = projectsByPlatform[platform];
96
+ if (info) {
97
+ if (info.tsproject) {
98
+ info.tsproject.dispose();
99
+ }
91
100
  delete projectsByPlatform[platform];
92
101
  }
93
102
  });
94
103
  }
95
104
  return {
96
105
  clearPlatform,
97
- getProject,
106
+ getProjectInfo,
98
107
  };
99
108
  }
100
109
  exports.createProjectCache = createProjectCache;
@@ -1 +1 @@
1
- {"version":3,"file":"project-cache.js","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-cache.js","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnx-kit/cli",
3
- "version": "0.9.55",
3
+ "version": "0.9.56",
4
4
  "description": "Command-line interface for working with kit packages in your repo",
5
5
  "homepage": "https://github.com/microsoft/rnx-kit/tree/main/packages/cli",
6
6
  "license": "MIT",
@@ -65,12 +65,17 @@ function createSerializerHook(options: TypeScriptValidationOptions) {
65
65
  // Map each file to a TypeScript project, and apply its delta operation.
66
66
  const tsprojectsToValidate: Set<Project> = new Set();
67
67
  adds.concat(updates).forEach((sourceFile) => {
68
- const tsproject = projectCache.getProject(sourceFile, platform);
69
- tsproject.setFile(sourceFile);
70
- tsprojectsToValidate.add(tsproject);
68
+ const { tsproject, tssourceFiles } = projectCache.getProjectInfo(
69
+ sourceFile,
70
+ platform
71
+ );
72
+ if (tssourceFiles.has(sourceFile)) {
73
+ tsproject.setFile(sourceFile);
74
+ tsprojectsToValidate.add(tsproject);
75
+ }
71
76
  });
72
77
  deletes.forEach((sourceFile) => {
73
- const tsproject = projectCache.getProject(sourceFile, platform);
78
+ const { tsproject } = projectCache.getProjectInfo(sourceFile, platform);
74
79
  tsproject.removeFile(sourceFile);
75
80
  tsprojectsToValidate.add(tsproject);
76
81
  });
@@ -12,6 +12,11 @@ import {
12
12
  import path from "path";
13
13
  import ts from "typescript";
14
14
 
15
+ export type ProjectInfo = {
16
+ tsproject: Project;
17
+ tssourceFiles: Set<string>;
18
+ };
19
+
15
20
  /**
16
21
  * Collection of TypeScript projects, separated by their target platform.
17
22
  *
@@ -32,14 +37,14 @@ export interface ProjectCache {
32
37
  clearPlatform(platform: AllPlatforms): void;
33
38
 
34
39
  /**
35
- * Get the project which targets a specific platform and contains a specific
40
+ * Get info on the project which targets a specific platform and contains a specific
36
41
  * source file. If the project is not cached, load it and add it to the cache.
37
42
  *
38
43
  * @param platform Target platform
39
44
  * @param sourceFile Source file
40
45
  * @returns Project targeting the given platform and containing the given source file
41
46
  */
42
- getProject(sourceFile: string, platform: AllPlatforms): Project;
47
+ getProjectInfo(sourceFile: string, platform: AllPlatforms): ProjectInfo;
43
48
  }
44
49
 
45
50
  /**
@@ -55,7 +60,10 @@ export function createProjectCache(
55
60
  const diagnosticWriter = createDiagnosticWriter(print);
56
61
 
57
62
  // Collection of projects organized by root directory, then by platform.
58
- const projects: Record<string, Partial<Record<AllPlatforms, Project>>> = {};
63
+ const projects: Record<
64
+ string,
65
+ Partial<Record<AllPlatforms, ProjectInfo>>
66
+ > = {};
59
67
 
60
68
  function findProjectRoot(sourceFile: string): string {
61
69
  // Search known root directories to see if the source file is in one of them.
@@ -91,7 +99,10 @@ export function createProjectCache(
91
99
  return cmdLine;
92
100
  }
93
101
 
94
- function createProject(root: string, platform: AllPlatforms): Project {
102
+ function createProjectInfo(
103
+ root: string,
104
+ platform: AllPlatforms
105
+ ): ProjectInfo {
95
106
  // Load the TypeScript configuration file for this project.
96
107
  const cmdLine = readTSConfig(root);
97
108
 
@@ -119,28 +130,42 @@ export function createProjectCache(
119
130
  enhanceLanguageServiceHost
120
131
  );
121
132
 
122
- // Start with an empty project, ignoring the file graph from tsconfig.json.
133
+ // Store TypeScript's source file list for this project. We'll use it later
134
+ // to filter files from Metro's file graph. We only want to check files that
135
+ // TypeScript considers to be source code, and not transpiled output.
136
+ const tssourceFiles = new Set(cmdLine.fileNames);
137
+
138
+ // Start with an empty project
123
139
  tsproject.removeAllFiles();
124
140
 
125
- return tsproject;
141
+ return {
142
+ tsproject,
143
+ tssourceFiles,
144
+ };
126
145
  }
127
146
 
128
- function getProject(sourceFile: string, platform: AllPlatforms): Project {
147
+ function getProjectInfo(
148
+ sourceFile: string,
149
+ platform: AllPlatforms
150
+ ): ProjectInfo {
129
151
  const root = findProjectRoot(sourceFile);
130
- if (!projects[root]) {
131
- projects[root] = {};
132
- }
133
- if (!projects[root][platform]) {
134
- projects[root][platform] = createProject(root, platform);
152
+ projects[root] ||= {};
153
+
154
+ let info = projects[root][platform];
155
+ if (!info) {
156
+ info = createProjectInfo(root, platform);
157
+ projects[root][platform] = info;
135
158
  }
136
- return projects[root][platform]!;
159
+ return info;
137
160
  }
138
161
 
139
162
  function clearPlatform(platform: AllPlatforms): void {
140
163
  Object.values(projects).forEach((projectsByPlatform) => {
141
- const project = projectsByPlatform[platform];
142
- if (project) {
143
- project.dispose();
164
+ const info = projectsByPlatform[platform];
165
+ if (info) {
166
+ if (info.tsproject) {
167
+ info.tsproject.dispose();
168
+ }
144
169
  delete projectsByPlatform[platform];
145
170
  }
146
171
  });
@@ -148,6 +173,6 @@ export function createProjectCache(
148
173
 
149
174
  return {
150
175
  clearPlatform,
151
- getProject,
176
+ getProjectInfo,
152
177
  };
153
178
  }