vue-component-meta 3.2.5 → 3.2.7

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/lib/checker.js CHANGED
@@ -82,7 +82,11 @@ function createCheckerBase(ts, getConfigAndFiles, checkerOptions, rootPath) {
82
82
  });
83
83
  const { languageServiceHost } = (0, typescript_1.createLanguageServiceHost)(ts, ts.sys, language, s => s, projectHost);
84
84
  const tsLs = ts.createLanguageService(languageServiceHost);
85
- const printer = ts.createPrinter(checkerOptions.printer);
85
+ const printer = ts.createPrinter({
86
+ ...checkerOptions.printer,
87
+ // @ts-expect-error internal option to prevent unicode-escaping non-ASCII characters
88
+ neverAsciiEscape: true,
89
+ });
86
90
  const getScriptKind = languageServiceHost.getScriptKind?.bind(languageServiceHost);
87
91
  if (checkerOptions.forceUseTs ?? true) {
88
92
  languageServiceHost.getScriptKind = fileName => {
@@ -109,7 +113,7 @@ function createCheckerBase(ts, getConfigAndFiles, checkerOptions, rootPath) {
109
113
  }
110
114
  const checker = program.getTypeChecker();
111
115
  const componentType = checker.getTypeAtLocation(componentNode);
112
- return (0, componentMeta_1.getComponentMeta)(ts, checker, printer, language, componentNode, componentType, checkerOptions.schema ?? false, {
116
+ return (0, componentMeta_1.getComponentMeta)(ts, checker, printer, language, fileName => language.scripts.get(fileName), componentNode, componentType, checkerOptions.schema ?? false, {
113
117
  noDeclarations: checkerOptions.noDeclarations ?? true,
114
118
  rawType: checkerOptions.rawType ?? false,
115
119
  });
@@ -1,7 +1,7 @@
1
1
  import * as core from '@vue/language-core';
2
2
  import type * as ts from 'typescript';
3
3
  import type { ComponentMeta, MetaCheckerSchemaOptions } from './types';
4
- export declare function getComponentMeta(ts: typeof import('typescript'), typeChecker: ts.TypeChecker, printer: ts.Printer, language: core.Language<string>, componentNode: ts.Node, componentType: ts.Type, options: MetaCheckerSchemaOptions, deprecatedOptions?: {
4
+ export declare function getComponentMeta(ts: typeof import('typescript'), typeChecker: ts.TypeChecker, printer: ts.Printer, language: core.Language, getSourceScript: (fileName: string) => core.SourceScript | undefined, componentNode: ts.Node, componentType: ts.Type, options: MetaCheckerSchemaOptions, deprecatedOptions?: {
5
5
  noDeclarations: boolean;
6
6
  rawType: boolean;
7
7
  }): ComponentMeta;
@@ -38,7 +38,7 @@ const core = __importStar(require("@vue/language-core"));
38
38
  const helpers_1 = require("./helpers");
39
39
  const schemaResolvers_1 = require("./schemaResolvers");
40
40
  const scriptSetup_1 = require("./scriptSetup");
41
- function getComponentMeta(ts, typeChecker, printer, language, componentNode, componentType, options, deprecatedOptions = { noDeclarations: true, rawType: false }) {
41
+ function getComponentMeta(ts, typeChecker, printer, language, getSourceScript, componentNode, componentType, options, deprecatedOptions = { noDeclarations: true, rawType: false }) {
42
42
  const componentSymbol = typeChecker.getSymbolAtLocation(componentNode);
43
43
  let componentFile = componentNode.getSourceFile();
44
44
  if (componentSymbol) {
@@ -95,11 +95,11 @@ function getComponentMeta(ts, typeChecker, printer, language, componentNode, com
95
95
  const eventProps = new Set(meta.events.map(event => `on${event.name.charAt(0).toUpperCase()}${event.name.slice(1)}`));
96
96
  result = properties
97
97
  .map(prop => {
98
- const { resolveNestedProperties, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, options, deprecatedOptions);
98
+ const { resolveNestedProperties, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, getSourceScript, options, deprecatedOptions);
99
99
  return resolveNestedProperties(prop);
100
100
  })
101
101
  .filter((prop) => !!prop && !eventProps.has(prop.name));
102
- const defaults = (0, scriptSetup_1.getDefaultsFromScriptSetup)(ts, printer, language, componentFile.fileName);
102
+ const defaults = (0, scriptSetup_1.getDefaultsFromScriptSetup)(ts, printer, getSourceScript(componentFile.fileName));
103
103
  for (const prop of result) {
104
104
  if (prop.name.match(/^onVnode[A-Z]/)) {
105
105
  prop.name = 'onVue:' + prop.name['onVnode'.length]?.toLowerCase() + prop.name.slice('onVnode'.length + 1);
@@ -113,7 +113,7 @@ function getComponentMeta(ts, typeChecker, printer, language, componentNode, com
113
113
  if (emitType) {
114
114
  const calls = emitType.getCallSignatures();
115
115
  return calls.map(call => {
116
- const { resolveEventSignature, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, options, deprecatedOptions);
116
+ const { resolveEventSignature, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, getSourceScript, options, deprecatedOptions);
117
117
  return resolveEventSignature(call);
118
118
  }).filter(event => event.name);
119
119
  }
@@ -124,7 +124,7 @@ function getComponentMeta(ts, typeChecker, printer, language, componentNode, com
124
124
  if (slotsType) {
125
125
  const properties = slotsType.getProperties();
126
126
  return properties.map(prop => {
127
- const { resolveSlotProperties, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, options, deprecatedOptions);
127
+ const { resolveSlotProperties, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, getSourceScript, options, deprecatedOptions);
128
128
  return resolveSlotProperties(prop);
129
129
  });
130
130
  }
@@ -144,7 +144,7 @@ function getComponentMeta(ts, typeChecker, printer, language, componentNode, com
144
144
  // Exclude $slots
145
145
  && prop.name !== '$slots');
146
146
  return properties.map(prop => {
147
- const { resolveExposedProperties, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, options, deprecatedOptions);
147
+ const { resolveExposedProperties, } = (0, schemaResolvers_1.createSchemaResolvers)(ts, typeChecker, printer, language, getSourceScript, options, deprecatedOptions);
148
148
  return resolveExposedProperties(prop);
149
149
  });
150
150
  }
@@ -1,7 +1,7 @@
1
1
  import type * as core from '@vue/language-core';
2
2
  import type * as ts from 'typescript';
3
3
  import type { EventMeta, ExposeMeta, PropertyMeta, PropertyMetaSchema, SlotMeta } from './types';
4
- export declare function createSchemaResolvers(ts: typeof import('typescript'), typeChecker: ts.TypeChecker, printer: ts.Printer, language: core.Language<string>, options: import('./types').MetaCheckerSchemaOptions, deprecatedOptions: {
4
+ export declare function createSchemaResolvers(ts: typeof import('typescript'), typeChecker: ts.TypeChecker, printer: ts.Printer, language: core.Language, getSourceScript: (fileName: string) => core.SourceScript | undefined, options: import('./types').MetaCheckerSchemaOptions, deprecatedOptions: {
5
5
  noDeclarations: boolean;
6
6
  rawType: boolean;
7
7
  }): {
@@ -8,7 +8,7 @@ const publicPropsInterfaces = new Set([
8
8
  'AllowedComponentProps',
9
9
  'ComponentCustomProps',
10
10
  ]);
11
- function createSchemaResolvers(ts, typeChecker, printer, language, options, deprecatedOptions) {
11
+ function createSchemaResolvers(ts, typeChecker, printer, language, getSourceScript, options, deprecatedOptions) {
12
12
  const visited = new Set();
13
13
  function shouldIgnore(subtype) {
14
14
  const name = getFullyQualifiedName(subtype);
@@ -311,7 +311,7 @@ function createSchemaResolvers(ts, typeChecker, printer, language, options, depr
311
311
  }
312
312
  function getDeclaration(declaration) {
313
313
  const fileName = declaration.getSourceFile().fileName;
314
- const sourceScript = language.scripts.get(fileName);
314
+ const sourceScript = getSourceScript(fileName);
315
315
  if (sourceScript?.generated) {
316
316
  const script = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
317
317
  if (script) {
@@ -319,7 +319,7 @@ function createSchemaResolvers(ts, typeChecker, printer, language, options, depr
319
319
  for (const [start] of map.toSourceLocation(declaration.getStart())) {
320
320
  for (const [end] of map.toSourceLocation(declaration.getEnd())) {
321
321
  return {
322
- file: sourceScript.id,
322
+ file: String(sourceScript.id),
323
323
  range: [start, end],
324
324
  };
325
325
  }
@@ -1,4 +1,4 @@
1
1
  import * as core from '@vue/language-core';
2
2
  import type * as ts from 'typescript';
3
- export declare function getDefaultsFromScriptSetup(ts: typeof import('typescript'), printer: ts.Printer, language: core.Language<string>, componentPath: string): Map<string, string> | undefined;
3
+ export declare function getDefaultsFromScriptSetup(ts: typeof import('typescript'), printer: ts.Printer, sourceScript: core.SourceScript | undefined): Map<string, string> | undefined;
4
4
  export declare function resolveDefaultOptionExpression(ts: typeof import('typescript'), _default: ts.Expression): ts.Expression;
@@ -36,8 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getDefaultsFromScriptSetup = getDefaultsFromScriptSetup;
37
37
  exports.resolveDefaultOptionExpression = resolveDefaultOptionExpression;
38
38
  const core = __importStar(require("@vue/language-core"));
39
- function getDefaultsFromScriptSetup(ts, printer, language, componentPath) {
40
- const sourceScript = language.scripts.get(componentPath);
39
+ function getDefaultsFromScriptSetup(ts, printer, sourceScript) {
41
40
  const virtualCode = sourceScript?.generated?.root;
42
41
  if (!virtualCode) {
43
42
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-component-meta",
3
- "version": "3.2.5",
3
+ "version": "3.2.7",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -14,12 +14,12 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@volar/typescript": "2.4.28",
17
- "@vue/language-core": "3.2.5",
17
+ "@vue/language-core": "3.2.7",
18
18
  "path-browserify": "^1.0.1"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node": "^22.10.4",
22
- "@types/path-browserify": "^1.0.1"
22
+ "@types/path-browserify": "^1.0.3"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "typescript": "*"
@@ -29,5 +29,5 @@
29
29
  "optional": true
30
30
  }
31
31
  },
32
- "gitHead": "ee5041d27940cf6f9a5150635d3b13140a9dff54"
32
+ "gitHead": "a7092edf12862f0db8e39bd2afbda3d54aa26506"
33
33
  }