vize 0.345.0 → 0.350.2

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.
@@ -5,7 +5,7 @@ import { DEFAULT_SCRIPTS, detectJsonIndent, parsePackageJson } from "../setup/co
5
5
  import type { ProjectDetection } from "./detect.js";
6
6
  import { skipped, type PlanDraft } from "./plan-types.js";
7
7
  import type { FeatureId, FeatureSelection } from "./select.js";
8
- import { renderVizeConfig } from "./templates.js";
8
+ import { renderTypecheckTsconfig, renderVizeConfig } from "./templates.js";
9
9
 
10
10
  /** Scripts each feature contributes, reusing the command strings `setup` ships. */
11
11
  const FEATURE_SCRIPTS: Readonly<Record<FeatureId, readonly string[]>> = {
@@ -29,29 +29,28 @@ export function planVizeConfig(
29
29
  selection: FeatureSelection,
30
30
  draft: PlanDraft,
31
31
  ): void {
32
+ if (selection.typecheck && detection.tsconfig === null) {
33
+ draft.files.push({
34
+ filename: path.join(detection.root, "tsconfig.json"),
35
+ source: renderTypecheckTsconfig(detection.typescript),
36
+ });
37
+ draft.createdFiles.push("tsconfig.json");
38
+ }
39
+
32
40
  for (const id of ["fmt", "typecheck"] as const) {
33
41
  if (!selection[id]) {
34
- draft.features.push(
35
- id === "typecheck" && detection.tsconfig === null
36
- ? skipped(id, "no tsconfig.json, so vize check has nothing to check")
37
- : skipped(id),
38
- );
39
- continue;
40
- }
41
- if (id === "typecheck" && detection.tsconfig === null) {
42
- draft.features.push({
43
- id,
44
- outcome: "blocked",
45
- detail: "vize check needs a tsconfig.json; none was found",
46
- snippet: null,
47
- });
42
+ draft.features.push(skipped(id));
48
43
  continue;
49
44
  }
45
+ const scaffoldsTsconfig = id === "typecheck" && detection.tsconfig === null;
50
46
  draft.features.push({
51
47
  id,
52
- outcome: detection.vizeConfig === null ? "configured" : "unchanged",
53
- detail:
54
- detection.vizeConfig === null
48
+ outcome: scaffoldsTsconfig || detection.vizeConfig === null ? "configured" : "unchanged",
49
+ detail: scaffoldsTsconfig
50
+ ? detection.vizeConfig === null
51
+ ? "writes tsconfig.json and vize.config.ts"
52
+ : `writes tsconfig.json; ${detection.vizeConfig} already exists and was left unchanged`
53
+ : detection.vizeConfig === null
55
54
  ? "writes vize.config.ts"
56
55
  : `${detection.vizeConfig} already exists and was left unchanged`,
57
56
  snippet: null,
@@ -67,7 +66,7 @@ export function planVizeConfig(
67
66
  source: renderVizeConfig({
68
67
  lint: selection.lint,
69
68
  fmt: selection.fmt,
70
- typecheck: selection.typecheck && detection.tsconfig !== null,
69
+ typecheck: selection.typecheck,
71
70
  vite: detection.framework === "vite",
72
71
  }),
73
72
  });
@@ -88,7 +87,7 @@ export function planScripts(
88
87
  ): readonly string[] {
89
88
  const wanted: string[] = [];
90
89
  for (const id of ["lint", "fmt", "typecheck"] as const) {
91
- if (!selection[id] || (id === "typecheck" && detection.tsconfig === null)) {
90
+ if (!selection[id]) {
92
91
  continue;
93
92
  }
94
93
  wanted.push(...FEATURE_SCRIPTS[id]);
@@ -126,18 +126,21 @@ function fmtOffer(detection: ProjectDetection): FeatureOffer {
126
126
  }
127
127
 
128
128
  function typecheckOffer(detection: ProjectDetection): FeatureOffer {
129
- const configured = detection.vizeConfig !== null && "vize:check" in detection.scripts;
129
+ const configured =
130
+ detection.tsconfig !== null &&
131
+ detection.vizeConfig !== null &&
132
+ "vize:check" in detection.scripts;
130
133
  return {
131
134
  id: "typecheck",
132
135
  label: "typecheck (vize check)",
133
- available: detection.tsconfig !== null,
136
+ available: true,
134
137
  configured,
135
138
  note: configured
136
139
  ? "already configured"
137
140
  : detection.tsconfig === null
138
- ? "needs a tsconfig.json"
141
+ ? "creates tsconfig.json"
139
142
  : "",
140
- defaultSelected: detection.tsconfig !== null,
143
+ defaultSelected: true,
141
144
  };
142
145
  }
143
146
 
@@ -50,6 +50,7 @@ export function renderVizeConfig(features: VizeConfigFeatures): string {
50
50
  blocks.push(` typeChecker: {
51
51
  enabled: true,
52
52
  strict: true,
53
+ jsxTypecheck: true,
53
54
  },`);
54
55
  }
55
56
  if (features.vite) {
@@ -65,6 +66,24 @@ ${blocks.join("\n")}
65
66
  `;
66
67
  }
67
68
 
69
+ /** Minimum project config written only when typechecking is selected and no config exists. */
70
+ export function renderTypecheckTsconfig(typescript: boolean): string {
71
+ const compilerOptions: Record<string, boolean | string> = {
72
+ strict: true,
73
+ target: "ES2022",
74
+ module: "ESNext",
75
+ moduleResolution: "Bundler",
76
+ jsx: "preserve",
77
+ };
78
+ if (!typescript) {
79
+ compilerOptions.allowJs = true;
80
+ compilerOptions.checkJs = true;
81
+ }
82
+ compilerOptions.noEmit = true;
83
+ compilerOptions.skipLibCheck = true;
84
+ return `${JSON.stringify({ compilerOptions, include: ["src/**/*"] }, null, 2)}\n`;
85
+ }
86
+
68
87
  /**
69
88
  * Config for the `oxlint` binary.
70
89
  *
@@ -44,7 +44,9 @@ export const DEFAULT_SCRIPTS = {
44
44
  "vize:fmt": "vize fmt --check src",
45
45
  "vize:fmt:fix": "vize fmt --write src",
46
46
  "vize:lint": "vize lint --preset happy-path --max-warnings 0 src",
47
- "vize:check": "vize check src",
47
+ // No positional input: the default command must check the complete tsconfig
48
+ // project graph, including root files and referenced projects outside src.
49
+ "vize:check": "vize check",
48
50
  "vize:musea": "vize musea",
49
51
  "vize:ready": "vize ready src",
50
52
  } as const;
@@ -61,6 +63,7 @@ export default defineConfig({
61
63
  typeChecker: {
62
64
  enabled: true,
63
65
  strict: true,
66
+ jsxTypecheck: true,
64
67
  },
65
68
  vite: {
66
69
  scanPatterns: ["src/**/*.vue"],
@@ -96,6 +96,10 @@ export interface CompilerConfig {
96
96
  * Treat lowercase non-HTML tags as custom renderer elements
97
97
  */
98
98
  customRenderer?: boolean;
99
+ /**
100
+ * Tag patterns that compile as custom elements instead of Vue components
101
+ */
102
+ customElements?: string[];
99
103
  /**
100
104
  * Enable SSR mode
101
105
  */
@@ -431,6 +435,10 @@ export interface LanguageServerConfig {
431
435
  * Enable completions
432
436
  */
433
437
  completion?: boolean;
438
+ /**
439
+ * Enable TypeScript signature help
440
+ */
441
+ signatureHelp?: boolean;
434
442
  /**
435
443
  * Enable hover information
436
444
  */
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-D1VKwrsv.d.mts","names":[],"sources":["../src/types/generated.ts","../src/types/rules.ts","../src/types/runtime.ts","../src/types/index.ts","../src/config.ts"],"mappings":"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"}