@volar/typescript 2.1.3 → 2.1.4

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,8 +6,11 @@ const utilities_1 = require("../typescript/utilities");
6
6
  let currentCwd = '';
7
7
  function createSys(ts, env, currentDirectory) {
8
8
  let version = 0;
9
+ // sys is undefined in browser
9
10
  const sys = ts.sys;
11
+ const caseSensitive = sys?.useCaseSensitiveFileNames ?? false;
10
12
  const root = {
13
+ name: '',
11
14
  dirs: new Map(),
12
15
  files: new Map(),
13
16
  requestedRead: false,
@@ -19,10 +22,11 @@ function createSys(ts, env, currentDirectory) {
19
22
  const dirName = path.dirname(fileName);
20
23
  const baseName = path.basename(fileName);
21
24
  const dir = getDir(dirName);
22
- if (dir.files.has(baseName)) { // is requested file
25
+ if (dir.files.has(baseName) || dir.requestedRead) { // is requested file or directory
23
26
  version++;
24
27
  if (change.type === 1 || change.type === 2) {
25
- dir.files.set(baseName, {
28
+ dir.files.set(normalizeFileId(baseName), {
29
+ name: baseName,
26
30
  stat: {
27
31
  type: 1,
28
32
  ctime: Date.now(),
@@ -30,10 +34,12 @@ function createSys(ts, env, currentDirectory) {
30
34
  size: -1,
31
35
  },
32
36
  requestedStat: false,
37
+ requestedText: false,
33
38
  });
34
39
  }
35
40
  else if (change.type === 3) {
36
- dir.files.set(baseName, {
41
+ dir.files.set(normalizeFileId(baseName), {
42
+ name: baseName,
37
43
  stat: undefined,
38
44
  text: undefined,
39
45
  requestedStat: true,
@@ -49,7 +55,7 @@ function createSys(ts, env, currentDirectory) {
49
55
  },
50
56
  args: sys?.args ?? [],
51
57
  newLine: sys?.newLine ?? '\n',
52
- useCaseSensitiveFileNames: sys?.useCaseSensitiveFileNames ?? false,
58
+ useCaseSensitiveFileNames: caseSensitive,
53
59
  realpath: sys?.realpath,
54
60
  write: sys?.write ?? (() => { }),
55
61
  writeFile: sys?.writeFile ?? (() => { }),
@@ -99,7 +105,7 @@ function createSys(ts, env, currentDirectory) {
99
105
  const dir = getDir(dirPath);
100
106
  const name = path.basename(fileName);
101
107
  readFileWorker(fileName, encoding, dir);
102
- return dir.files.get(name)?.text;
108
+ return dir.files.get(normalizeFileId(name))?.text;
103
109
  }
104
110
  function directoryExists(dirName) {
105
111
  dirName = resolvePath(dirName);
@@ -168,9 +174,13 @@ function createSys(ts, env, currentDirectory) {
168
174
  const dirPath = path.dirname(fileName);
169
175
  const baseName = path.basename(fileName);
170
176
  const dir = getDir(dirPath);
171
- let file = dir.files.get(baseName);
177
+ let file = dir.files.get(normalizeFileId(baseName));
172
178
  if (!file) {
173
- dir.files.set(baseName, file = {});
179
+ dir.files.set(normalizeFileId(baseName), file = {
180
+ name: baseName,
181
+ requestedStat: false,
182
+ requestedText: false,
183
+ });
174
184
  }
175
185
  return file;
176
186
  }
@@ -179,26 +189,36 @@ function createSys(ts, env, currentDirectory) {
179
189
  dirName = resolvePath(dirName);
180
190
  readDirectoryWorker(dirName);
181
191
  const dir = getDir(dirName);
182
- return [...dir.dirs.entries()].filter(([_, dir]) => dir.exists).map(([name]) => name);
192
+ return [...dir.dirs.values()]
193
+ .filter(dir => dir.exists)
194
+ .map(dir => dir.name);
183
195
  }
184
196
  function readDirectory(dirName, extensions, excludes, includes, depth) {
185
197
  dirName = resolvePath(dirName);
186
- const matches = (0, utilities_1.matchFiles)(dirName, extensions, excludes, includes, sys?.useCaseSensitiveFileNames ?? false, currentDirectory, depth, dirPath => {
198
+ const matches = (0, utilities_1.matchFiles)(dirName, extensions, excludes, includes, caseSensitive, currentDirectory, depth, dirPath => {
187
199
  dirPath = resolvePath(dirPath);
188
200
  readDirectoryWorker(dirPath);
189
201
  const dir = getDir(dirPath);
190
202
  return {
191
- files: [...dir.files.entries()].filter(([_, file]) => file.stat?.type === 1).map(([name]) => name),
192
- directories: [...dir.dirs.entries()].filter(([_, dir]) => dir.exists).map(([name]) => name),
203
+ files: [...dir.files.values()]
204
+ .filter(file => file.stat?.type === 1)
205
+ .map(file => file.name),
206
+ directories: [...dir.dirs.values()]
207
+ .filter(dir => dir.exists)
208
+ .map(dir => dir.name),
193
209
  };
194
210
  }, sys?.realpath ? (path => sys.realpath(path)) : (path => path));
195
211
  return [...new Set(matches)];
196
212
  }
197
213
  function readFileWorker(fileName, encoding, dir) {
198
214
  const name = path.basename(fileName);
199
- let file = dir.files.get(name);
215
+ let file = dir.files.get(normalizeFileId(name));
200
216
  if (!file) {
201
- dir.files.set(name, file = {});
217
+ dir.files.set(normalizeFileId(name), file = {
218
+ name,
219
+ requestedStat: false,
220
+ requestedText: false,
221
+ });
202
222
  }
203
223
  if (file.requestedText) {
204
224
  return;
@@ -259,9 +279,13 @@ function createSys(ts, env, currentDirectory) {
259
279
  stat.then(stat => {
260
280
  promises.delete(promise);
261
281
  if (stat?.type === 1) {
262
- let file = dir.files.get(name);
282
+ let file = dir.files.get(normalizeFileId(name));
263
283
  if (!file) {
264
- dir.files.set(name, file = {});
284
+ dir.files.set(normalizeFileId(name), file = {
285
+ name,
286
+ requestedStat: false,
287
+ requestedText: false,
288
+ });
265
289
  }
266
290
  if (stat.type !== file.stat?.type || stat.mtime !== file.stat?.mtime) {
267
291
  version++;
@@ -283,9 +307,13 @@ function createSys(ts, env, currentDirectory) {
283
307
  }
284
308
  }
285
309
  if (fileType === 1) {
286
- let file = dir.files.get(name);
310
+ let file = dir.files.get(normalizeFileId(name));
287
311
  if (!file) {
288
- dir.files.set(name, file = {});
312
+ dir.files.set(normalizeFileId(name), file = {
313
+ name,
314
+ requestedStat: false,
315
+ requestedText: false,
316
+ });
289
317
  }
290
318
  if (!file.stat) {
291
319
  file.stat = {
@@ -326,15 +354,19 @@ function createSys(ts, env, currentDirectory) {
326
354
  return currentDir;
327
355
  }
328
356
  function getDirFromDir(dir, name) {
329
- let target = dir.dirs.get(name);
357
+ let target = dir.dirs.get(normalizeFileId(name));
330
358
  if (!target) {
331
- dir.dirs.set(name, target = {
359
+ dir.dirs.set(normalizeFileId(name), target = {
360
+ name,
332
361
  dirs: new Map(),
333
362
  files: new Map(),
334
363
  });
335
364
  }
336
365
  return target;
337
366
  }
367
+ function normalizeFileId(fileName) {
368
+ return caseSensitive ? fileName : fileName.toLowerCase();
369
+ }
338
370
  }
339
371
  exports.createSys = createSys;
340
372
  //# sourceMappingURL=createSys.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/typescript",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -12,13 +12,13 @@
12
12
  "directory": "packages/typescript"
13
13
  },
14
14
  "dependencies": {
15
- "@volar/language-core": "2.1.3",
15
+ "@volar/language-core": "2.1.4",
16
16
  "path-browserify": "^1.0.1"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "latest",
20
20
  "@types/path-browserify": "latest",
21
- "@volar/language-service": "2.1.3"
21
+ "@volar/language-service": "2.1.4"
22
22
  },
23
- "gitHead": "0f861d59faa19cbeadef182ee079be88f9629fc7"
23
+ "gitHead": "cc46289ff6be015ee41a1896fdaef6aa68cee755"
24
24
  }