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.
- package/README.md +11 -7
- package/dist/cli.mjs +42 -21
- package/dist/cli.mjs.map +1 -1
- package/dist/{config-CqEev07u.mjs → config-CuGxe7fm.mjs} +1 -1
- package/dist/{config-CqEev07u.mjs.map → config-CuGxe7fm.mjs.map} +1 -1
- package/dist/{config-D1VKwrsv.d.mts → config-ihW9XDVK.d.mts} +9 -1
- package/dist/config-ihW9XDVK.d.mts.map +1 -0
- package/dist/config.d.mts +1 -1
- package/dist/config.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +21 -16
- package/pkl/CompilerConfig.pkl +3 -0
- package/pkl/LanguageServerConfig.pkl +3 -0
- package/pkl/jsonschema/ConfigArtifactDefinitions.pkl +8 -0
- package/pkl/jsonschema/MuseaSchemaDefinitions.pkl +119 -0
- package/pkl/jsonschema/generate.pkl +10 -120
- package/pkl/vize.pkl +2 -0
- package/schemas/vize.config.schema.json +12 -0
- package/src/init/args.ts +1 -1
- package/src/init/plan-editor.ts +1 -1
- package/src/init/plan-project.ts +19 -20
- package/src/init/select.ts +7 -4
- package/src/init/templates.ts +19 -0
- package/src/setup/config.ts +4 -1
- package/src/types/generated.ts +8 -0
- package/dist/config-D1VKwrsv.d.mts.map +0 -1
package/src/init/plan-project.ts
CHANGED
|
@@ -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
|
|
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]
|
|
90
|
+
if (!selection[id]) {
|
|
92
91
|
continue;
|
|
93
92
|
}
|
|
94
93
|
wanted.push(...FEATURE_SCRIPTS[id]);
|
package/src/init/select.ts
CHANGED
|
@@ -126,18 +126,21 @@ function fmtOffer(detection: ProjectDetection): FeatureOffer {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
function typecheckOffer(detection: ProjectDetection): FeatureOffer {
|
|
129
|
-
const configured =
|
|
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:
|
|
136
|
+
available: true,
|
|
134
137
|
configured,
|
|
135
138
|
note: configured
|
|
136
139
|
? "already configured"
|
|
137
140
|
: detection.tsconfig === null
|
|
138
|
-
? "
|
|
141
|
+
? "creates tsconfig.json"
|
|
139
142
|
: "",
|
|
140
|
-
defaultSelected:
|
|
143
|
+
defaultSelected: true,
|
|
141
144
|
};
|
|
142
145
|
}
|
|
143
146
|
|
package/src/init/templates.ts
CHANGED
|
@@ -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
|
*
|
package/src/setup/config.ts
CHANGED
|
@@ -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
|
-
|
|
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"],
|
package/src/types/generated.ts
CHANGED
|
@@ -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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"}
|