@vue/typescript-plugin 3.1.3 → 3.1.5

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.
package/index.js CHANGED
@@ -12,6 +12,7 @@ const getElementAttrs_1 = require("./lib/requests/getElementAttrs");
12
12
  const getElementNames_1 = require("./lib/requests/getElementNames");
13
13
  const getImportPathForFile_1 = require("./lib/requests/getImportPathForFile");
14
14
  const isRefAtPosition_1 = require("./lib/requests/isRefAtPosition");
15
+ const resolveModuleName_1 = require("./lib/requests/resolveModuleName");
15
16
  module.exports = (0, createLanguageServicePlugin_1.createLanguageServicePlugin)((ts, info) => {
16
17
  const vueOptions = getVueCompilerOptions();
17
18
  const languagePlugin = core.createVueLanguagePlugin(ts, info.languageServiceHost.getCompilationSettings(), vueOptions, id => id);
@@ -115,6 +116,10 @@ module.exports = (0, createLanguageServicePlugin_1.createLanguageServicePlugin)(
115
116
  const { project } = getProject(fileName);
116
117
  return createResponse((0, getElementNames_1.getElementNames)(ts, project.getLanguageService().getProgram()));
117
118
  });
119
+ session.addProtocolHandler('_vue:resolveModuleName', request => {
120
+ const [fileName, moduleName] = request.arguments;
121
+ return createResponse((0, resolveModuleName_1.resolveModuleName)(ts, info.languageServiceHost, fileName, moduleName));
122
+ });
118
123
  projectService.logger.info('Vue specific commands are successfully added.');
119
124
  function createResponse(res) {
120
125
  return {
package/lib/common.js CHANGED
@@ -8,8 +8,6 @@ function createVueLanguageServiceProxy(ts, language, languageService, vueOptions
8
8
  const proxyCache = new Map();
9
9
  const getProxyMethod = (target, p) => {
10
10
  switch (p) {
11
- case 'findReferences':
12
- return findReferences(ts, language, languageService, asScriptId, target[p]);
13
11
  case 'getCompletionsAtPosition':
14
12
  return getCompletionsAtPosition(ts, language, asScriptId, vueOptions, target[p]);
15
13
  case 'getCompletionEntryDetails':
@@ -36,46 +34,6 @@ function createVueLanguageServiceProxy(ts, language, languageService, vueOptions
36
34
  },
37
35
  });
38
36
  }
39
- function findReferences(ts, language, languageService, asScriptId, findReferences) {
40
- return (fileName, position) => {
41
- const result = findReferences(fileName, position);
42
- const sourceScript = language.scripts.get(asScriptId(fileName));
43
- const root = sourceScript?.generated?.root;
44
- if (!(root instanceof language_core_1.VueVirtualCode)) {
45
- return result;
46
- }
47
- const { template } = root.sfc;
48
- if (template) {
49
- const textSpan = {
50
- start: template.start + 1,
51
- length: 'template'.length,
52
- };
53
- if (position >= textSpan.start && position <= textSpan.start + textSpan.length) {
54
- result?.push({
55
- definition: {
56
- fileName,
57
- textSpan,
58
- kind: ts.ScriptElementKind.scriptElement,
59
- name: fileName,
60
- containerKind: ts.ScriptElementKind.unknown,
61
- containerName: '',
62
- displayParts: [],
63
- },
64
- references: [
65
- {
66
- fileName,
67
- textSpan,
68
- isDefinition: true,
69
- isWriteAccess: false,
70
- },
71
- ...languageService.getFileReferences(fileName),
72
- ],
73
- });
74
- }
75
- }
76
- return result;
77
- };
78
- }
79
37
  function getCompletionsAtPosition(ts, language, asScriptId, vueOptions, getCompletionsAtPosition) {
80
38
  return (filePath, position, options, formattingSettings) => {
81
39
  const fileName = filePath.replace(windowsPathReg, '/');
@@ -11,6 +11,7 @@ export interface Requests {
11
11
  getComponentSlots(fileName: string): Response<ReturnType<typeof import('./getComponentSlots.js')['getComponentSlots']>>;
12
12
  getElementAttrs(fileName: string, tag: string): Response<ReturnType<typeof import('./getElementAttrs.js')['getElementAttrs']>>;
13
13
  getElementNames(fileName: string): Response<ReturnType<typeof import('./getElementNames.js')['getElementNames']>>;
14
+ resolveModuleName(fileName: string, moduleName: string): Response<ReturnType<typeof import('./resolveModuleName.js')['resolveModuleName']>>;
14
15
  getDocumentHighlights(fileName: string, position: number): Response<ts.DocumentHighlights[]>;
15
16
  getEncodedSemanticClassifications(fileName: string, span: ts.TextSpan): Response<ts.Classifications>;
16
17
  getQuickInfoAtPosition(fileName: string, position: ts.LineAndCharacter): Response<string>;
@@ -0,0 +1,2 @@
1
+ import type * as ts from 'typescript';
2
+ export declare function resolveModuleName(ts: typeof import('typescript'), languageServiceHost: ts.LanguageServiceHost, fileName: string, moduleName: string): string | undefined;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveModuleName = resolveModuleName;
4
+ function resolveModuleName(ts, languageServiceHost, fileName, moduleName) {
5
+ const compilerOptions = languageServiceHost.getCompilationSettings();
6
+ const ext = moduleName.split('.').pop();
7
+ const result = ts.resolveModuleName(moduleName, fileName, {
8
+ ...compilerOptions,
9
+ allowArbitraryExtensions: true,
10
+ }, {
11
+ fileExists(fileName) {
12
+ fileName = transformFileName(fileName, ext);
13
+ return languageServiceHost.fileExists(fileName);
14
+ },
15
+ });
16
+ const resolveFileName = result.resolvedModule?.resolvedFileName;
17
+ if (resolveFileName) {
18
+ return transformFileName(resolveFileName, ext);
19
+ }
20
+ }
21
+ function transformFileName(fileName, ext) {
22
+ if (ext && fileName.endsWith(`.d.${ext}.ts`)) {
23
+ return fileName.slice(0, -`.d.${ext}.ts`.length) + `.${ext}`;
24
+ }
25
+ return fileName;
26
+ }
27
+ //# sourceMappingURL=resolveModuleName.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/typescript-plugin",
3
- "version": "3.1.3",
3
+ "version": "3.1.5",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@volar/typescript": "2.4.23",
17
- "@vue/language-core": "3.1.3",
17
+ "@vue/language-core": "3.1.5",
18
18
  "@vue/shared": "^3.5.0",
19
19
  "path-browserify": "^1.0.1"
20
20
  },
@@ -22,5 +22,5 @@
22
22
  "@types/node": "^22.10.4",
23
23
  "@types/path-browserify": "^1.0.1"
24
24
  },
25
- "gitHead": "0d7edee43568f1d90adae6e8fcda0f7f565b3f6a"
25
+ "gitHead": "d124a88fbf169e793c39ae4248da2092098de92d"
26
26
  }