@decocms/blocks-cli 7.11.2 → 7.12.1
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/package.json +6 -12
- package/scripts/generate-blocks-manifest.ts +5 -0
- package/scripts/generate-blocks.ts +8 -0
- package/scripts/generate-invoke.ts +5 -0
- package/scripts/generate-loaders.ts +5 -0
- package/scripts/generate-schema.ts +5 -0
- package/scripts/generate-sections.ts +5 -0
- package/scripts/generate.test.ts +568 -0
- package/scripts/generate.ts +1111 -0
- package/scripts/migrate/templates/package-json.test.ts +43 -0
- package/scripts/migrate/templates/package-json.ts +9 -10
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import type { MigrationContext } from "../types";
|
|
3
|
+
import { generatePackageJson } from "./package-json";
|
|
4
|
+
|
|
5
|
+
const ctx = {
|
|
6
|
+
siteName: "acme-store",
|
|
7
|
+
platform: "vtex",
|
|
8
|
+
importMap: {},
|
|
9
|
+
discoveredNpmDeps: {},
|
|
10
|
+
} as unknown as MigrationContext;
|
|
11
|
+
|
|
12
|
+
describe("generatePackageJson — generate scripts", () => {
|
|
13
|
+
// generatePackageJson does one `npm view` lookup for the framework version
|
|
14
|
+
// (falls back silently when offline), hence the generous timeout.
|
|
15
|
+
it("emits ONE unified generate command instead of the 5-script chain", () => {
|
|
16
|
+
const pkg = JSON.parse(generatePackageJson(ctx));
|
|
17
|
+
|
|
18
|
+
expect(pkg.scripts.generate).toBe(
|
|
19
|
+
"tsx node_modules/@decocms/blocks-cli/scripts/generate.ts --site acme-store " +
|
|
20
|
+
"--exclude vtex/loaders,vtex/actions,loaders/vtex-auth-loader," +
|
|
21
|
+
"loaders/reviews/productReviews,loaders/product/buyTogether," +
|
|
22
|
+
"loaders/search/productListPageCollection,loaders/search/intelligenseSearch," +
|
|
23
|
+
"loaders/Layouts/ProductCard",
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
// The old hand-chained per-generator scripts must be gone — the
|
|
27
|
+
// orchestrator owns selection/ordering now. (The individual scripts are
|
|
28
|
+
// still shipped and runnable by path; sites just don't scaffold them.)
|
|
29
|
+
for (const legacy of [
|
|
30
|
+
"generate:blocks",
|
|
31
|
+
"generate:schema",
|
|
32
|
+
"generate:invoke",
|
|
33
|
+
"generate:sections",
|
|
34
|
+
"generate:loaders",
|
|
35
|
+
]) {
|
|
36
|
+
expect(pkg.scripts[legacy], `${legacy} should not be scaffolded`).toBeUndefined();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// tsr is TanStack's generator, not ours — it stays a separate script.
|
|
40
|
+
expect(pkg.scripts["generate:routes"]).toBe("tsr generate");
|
|
41
|
+
expect(pkg.scripts.build).toBe("npm run generate && tsr generate && vite build");
|
|
42
|
+
}, 30_000);
|
|
43
|
+
});
|
|
@@ -124,17 +124,16 @@ export function generatePackageJson(ctx: MigrationContext): string {
|
|
|
124
124
|
dev: "vite dev",
|
|
125
125
|
"dev:clean":
|
|
126
126
|
"rm -rf node_modules/.vite .wrangler/state .tanstack && vite dev",
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
// ONE incremental orchestrator instead of the old 5-script chain
|
|
128
|
+
// (generate-blocks/sections/loaders/schema/invoke). It runs the same
|
|
129
|
+
// generators — concurrently, skipping the ones whose inputs didn't
|
|
130
|
+
// change — and the individual scripts stay available under
|
|
131
|
+
// node_modules/@decocms/blocks-cli/scripts/ for one-off runs. Sites
|
|
132
|
+
// chain their own extra tools (tsr, graphql-codegen, tailwind) around
|
|
133
|
+
// this command themselves.
|
|
134
|
+
generate: `tsx node_modules/@decocms/blocks-cli/scripts/generate.ts --site ${ctx.siteName} --exclude vtex/loaders,vtex/actions,loaders/vtex-auth-loader,loaders/reviews/productReviews,loaders/product/buyTogether,loaders/search/productListPageCollection,loaders/search/intelligenseSearch,loaders/Layouts/ProductCard`,
|
|
129
135
|
"generate:routes": "tsr generate",
|
|
130
|
-
|
|
131
|
-
"generate:invoke":
|
|
132
|
-
"tsx node_modules/@decocms/blocks-cli/scripts/generate-invoke.ts",
|
|
133
|
-
"generate:sections":
|
|
134
|
-
"tsx node_modules/@decocms/blocks-cli/scripts/generate-sections.ts",
|
|
135
|
-
"generate:loaders": `tsx node_modules/@decocms/blocks-cli/scripts/generate-loaders.ts --exclude vtex/loaders,vtex/actions,loaders/vtex-auth-loader,loaders/reviews/productReviews,loaders/product/buyTogether,loaders/search/productListPageCollection,loaders/search/intelligenseSearch,loaders/Layouts/ProductCard`,
|
|
136
|
-
build:
|
|
137
|
-
"npm run generate:blocks && npm run generate:sections && npm run generate:loaders && npm run generate:schema && npm run generate:invoke && tsr generate && vite build",
|
|
136
|
+
build: "npm run generate && tsr generate && vite build",
|
|
138
137
|
preview: "vite preview",
|
|
139
138
|
// Deploy is owned by Cloudflare Workers Builds (D6.3); the
|
|
140
139
|
// repo<->worker connection is configured per-worker in the CF
|