vue-component-meta 3.0.0-beta.2 → 3.0.0-beta.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.
Files changed (2) hide show
  1. package/lib/base.js +23 -13
  2. package/package.json +4 -4
package/lib/base.js CHANGED
@@ -32,13 +32,16 @@ function createCheckerBase(ts, tsconfig, checkerOptions = {}) {
32
32
  }
33
33
  function baseCreate(ts, getCommandLine, checkerOptions, rootPath, globalComponentName) {
34
34
  let commandLine = getCommandLine();
35
- let fileNames = commandLine.fileNames.map(path => path.replace(windowsPathReg, '/'));
35
+ /**
36
+ * Used to lookup if a file is referenced.
37
+ */
38
+ let fileNames = new Set(commandLine.fileNames.map(path => path.replace(windowsPathReg, '/')));
36
39
  let projectVersion = 0;
37
40
  const projectHost = {
38
41
  getCurrentDirectory: () => rootPath,
39
42
  getProjectVersion: () => projectVersion.toString(),
40
43
  getCompilationSettings: () => commandLine.options,
41
- getScriptFileNames: () => fileNames,
44
+ getScriptFileNames: () => [...fileNames],
42
45
  getProjectReferences: () => commandLine.projectReferences,
43
46
  };
44
47
  const globalComponentSnapshot = ts.ScriptSnapshot.fromString('<script setup lang="ts"></script>');
@@ -146,16 +149,18 @@ function baseCreate(ts, getCommandLine, checkerOptions, rootPath, globalComponen
146
149
  updateFile(fileName, text) {
147
150
  fileName = fileName.replace(windowsPathReg, '/');
148
151
  scriptSnapshots.set(fileName, ts.ScriptSnapshot.fromString(text));
152
+ // Ensure the file is referenced
153
+ fileNames.add(fileName);
149
154
  projectVersion++;
150
155
  },
151
156
  deleteFile(fileName) {
152
157
  fileName = fileName.replace(windowsPathReg, '/');
153
- fileNames = fileNames.filter(f => f !== fileName);
158
+ fileNames.delete(fileName);
154
159
  projectVersion++;
155
160
  },
156
161
  reload() {
157
162
  commandLine = getCommandLine();
158
- fileNames = commandLine.fileNames.map(path => path.replace(windowsPathReg, '/'));
163
+ fileNames = new Set(commandLine.fileNames.map(path => path.replace(windowsPathReg, '/')));
159
164
  this.clearCache();
160
165
  },
161
166
  clearCache() {
@@ -265,8 +270,10 @@ interface ComponentMeta<T> {
265
270
  const vueDefaults = vueFile && exportName === 'default'
266
271
  ? (vueFile instanceof vue.VueVirtualCode ? readVueComponentDefaultProps(vueFile, printer, ts) : {})
267
272
  : {};
268
- const tsDefaults = !vueFile ? readTsComponentDefaultProps(ts.createSourceFile('/tmp.' + componentPath.slice(componentPath.lastIndexOf('.') + 1), // ts | js | tsx | jsx
269
- snapshot.getText(0, snapshot.getLength()), ts.ScriptTarget.Latest), exportName, printer, ts) : {};
273
+ const tsDefaults = !vueFile
274
+ ? readTsComponentDefaultProps(ts.createSourceFile('/tmp.' + componentPath.slice(componentPath.lastIndexOf('.') + 1), // ts | js | tsx | jsx
275
+ snapshot.getText(0, snapshot.getLength()), ts.ScriptTarget.Latest), exportName, printer, ts)
276
+ : {};
270
277
  for (const [propName, defaultExp] of Object.entries({
271
278
  ...vueDefaults,
272
279
  ...tsDefaults,
@@ -455,7 +462,8 @@ function createSchemaResolvers(typeChecker, symbolNode, { rawType, schema: optio
455
462
  else {
456
463
  subtypeStr = '[';
457
464
  for (let i = 1; i < call.parameters.length; i++) {
458
- subtypeStr += getFullyQualifiedName(typeChecker.getTypeOfSymbolAtLocation(call.parameters[i], symbolNode)) + ', ';
465
+ subtypeStr += getFullyQualifiedName(typeChecker.getTypeOfSymbolAtLocation(call.parameters[i], symbolNode))
466
+ + ', ';
459
467
  }
460
468
  subtypeStr = subtypeStr.slice(0, -2) + ']';
461
469
  getSchema = () => {
@@ -525,8 +533,9 @@ function createSchemaResolvers(typeChecker, symbolNode, { rawType, schema: optio
525
533
  },
526
534
  };
527
535
  }
528
- else if (subtype.getCallSignatures().length === 0 &&
529
- (subtype.isClassOrInterface() || subtype.isIntersection() || subtype.objectFlags & ts.ObjectFlags.Anonymous)) {
536
+ else if (subtype.getCallSignatures().length === 0
537
+ && (subtype.isClassOrInterface() || subtype.isIntersection()
538
+ || subtype.objectFlags & ts.ObjectFlags.Anonymous)) {
530
539
  let schema;
531
540
  return {
532
541
  kind: 'object',
@@ -628,7 +637,7 @@ function readVueComponentDefaultProps(root, printer, ts) {
628
637
  if (initializer) {
629
638
  const expText = printer?.printNode(ts.EmitHint.Expression, initializer, ast) ?? initializer.getText(ast);
630
639
  result[name] = {
631
- default: expText
640
+ default: expText,
632
641
  };
633
642
  }
634
643
  }
@@ -637,7 +646,9 @@ function readVueComponentDefaultProps(root, printer, ts) {
637
646
  for (const defineModel of scriptSetupRanges.defineModel) {
638
647
  const obj = defineModel.argNode ? findObjectLiteralExpression(defineModel.argNode) : undefined;
639
648
  if (obj) {
640
- const name = defineModel.name ? sfc.scriptSetup.content.slice(defineModel.name.start, defineModel.name.end).slice(1, -1) : 'modelValue';
649
+ const name = defineModel.name
650
+ ? sfc.scriptSetup.content.slice(defineModel.name.start, defineModel.name.end).slice(1, -1)
651
+ : 'modelValue';
641
652
  result[name] = resolveModelOption(ast, obj, printer, ts);
642
653
  }
643
654
  }
@@ -701,8 +712,7 @@ function readTsComponentDefaultProps(ast, exportName, printer, ts) {
701
712
  // export default { ... }
702
713
  if (ts.isObjectLiteralExpression(component)) {
703
714
  return component;
704
- }
705
- // export default defineComponent({ ... })
715
+ } // export default defineComponent({ ... })
706
716
  else if (ts.isCallExpression(component)) {
707
717
  if (component.arguments.length) {
708
718
  const arg = component.arguments[0];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-component-meta",
3
- "version": "3.0.0-beta.2",
3
+ "version": "3.0.0-beta.4",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -13,8 +13,8 @@
13
13
  "directory": "packages/component-meta"
14
14
  },
15
15
  "dependencies": {
16
- "@volar/typescript": "2.4.14",
17
- "@vue/language-core": "3.0.0-beta.2",
16
+ "@volar/typescript": "2.4.15",
17
+ "@vue/language-core": "3.0.0-beta.4",
18
18
  "path-browserify": "^1.0.1"
19
19
  },
20
20
  "peerDependencies": {
@@ -26,5 +26,5 @@
26
26
  "@types/path-browserify": "^1.0.1",
27
27
  "vue-component-type-helpers": "3.0.0-beta.1"
28
28
  },
29
- "gitHead": "ea40288f6fceebb65346732b6de5859c300cf1ee"
29
+ "gitHead": "5cb41faacbfe2d9e2d64637c6c1ae8769d9cba3f"
30
30
  }