synthesisui 0.4.10 → 0.4.11
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/dist/commands/clean.js +3 -1
- package/dist/commands/template.js +4 -3
- package/dist/index.js +10 -1
- package/dist/registry.js +3 -1
- package/package.json +1 -1
package/dist/commands/clean.js
CHANGED
|
@@ -90,7 +90,9 @@ export async function clean(opts) {
|
|
|
90
90
|
// 4. Default README.
|
|
91
91
|
const readmePath = join(root, "README.md");
|
|
92
92
|
const readmeSrc = await readIf(readmePath);
|
|
93
|
-
if (readmeSrc &&
|
|
93
|
+
if (readmeSrc &&
|
|
94
|
+
/create-next-app/.test(readmeSrc) &&
|
|
95
|
+
/Getting Started/.test(readmeSrc)) {
|
|
94
96
|
actions.push({
|
|
95
97
|
verb: "remove",
|
|
96
98
|
path: "README.md",
|
|
@@ -16,14 +16,15 @@ export async function template(slug, name, opts) {
|
|
|
16
16
|
const target = opts.target === "general" || opts.target === "next"
|
|
17
17
|
? opts.target
|
|
18
18
|
: config.target;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const asName = opts.as && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(opts.as) ? opts.as : undefined;
|
|
20
|
+
console.log(`→ generating "${name}"${asName ? ` as "${asName}"` : ""} from "${slug}" (${target}) …`);
|
|
21
|
+
const generated = await fetchTemplate(base, slug, name, target, opts.version, asName);
|
|
21
22
|
// --out targets the page (1st file); sibling files (e.g. the CSS) land in the
|
|
22
23
|
// same directory. Without --out, everything goes under templates/<name>/ -
|
|
23
24
|
// a loose landing.tsx at the app/ root read as a route without being one,
|
|
24
25
|
// and a second template turned the app dir into soup.
|
|
25
26
|
const [pageFile, ...siblings] = generated.files;
|
|
26
|
-
const defaultDir = join("templates", name);
|
|
27
|
+
const defaultDir = join("templates", asName ?? name);
|
|
27
28
|
const pageRel = opts.out ?? join(defaultDir, pageFile.filename);
|
|
28
29
|
const pageDir = dirname(join(root, pageRel));
|
|
29
30
|
await mkdir(pageDir, { recursive: true });
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,7 @@ Usage - deterministic, FREE:
|
|
|
21
21
|
synthesisui add <slug> [options] materialize a DS into _synthesisui/ds/<slug>/
|
|
22
22
|
synthesisui component <slug> <name> bring one EXISTING component in as YOUR <Pascal>.tsx
|
|
23
23
|
synthesisui template <slug> <name> materialize a whole page from a DS template
|
|
24
|
+
(--as landing-home names the output - multi-page safe)
|
|
24
25
|
synthesisui upgrade <slug> update an installed DS + regenerate your components + migration brief
|
|
25
26
|
synthesisui use <slug> "<intent>" print a ready-to-paste agent prompt to build/modify on-system
|
|
26
27
|
synthesisui clean [--force] strip create-next-app boilerplate (dry run without --force)
|
|
@@ -178,7 +179,15 @@ async function main() {
|
|
|
178
179
|
}
|
|
179
180
|
const target = typeof flags.target === "string" ? flags.target : undefined;
|
|
180
181
|
const out = typeof flags.out === "string" ? flags.out : undefined;
|
|
181
|
-
|
|
182
|
+
const as_ = typeof flags.as === "string" ? flags.as : undefined;
|
|
183
|
+
await template(slug, name, {
|
|
184
|
+
registry,
|
|
185
|
+
dir,
|
|
186
|
+
out,
|
|
187
|
+
target,
|
|
188
|
+
version,
|
|
189
|
+
as: as_,
|
|
190
|
+
});
|
|
182
191
|
break;
|
|
183
192
|
}
|
|
184
193
|
case "component": {
|
package/dist/registry.js
CHANGED
|
@@ -46,12 +46,14 @@ export async function fetchDesignSystem(base, slug, version) {
|
|
|
46
46
|
* Fetches a whole page generated from a DS template (`?template=&target=`). The
|
|
47
47
|
* server codegens it from `document.layouts[<template>]`; the CLI just writes it.
|
|
48
48
|
*/
|
|
49
|
-
export async function fetchTemplate(base, slug, template, target, version) {
|
|
49
|
+
export async function fetchTemplate(base, slug, template, target, version, as_) {
|
|
50
50
|
const url = new URL(`${base}/api/registry/ds/${encodeURIComponent(slug)}`);
|
|
51
51
|
url.searchParams.set("template", template);
|
|
52
52
|
url.searchParams.set("target", target);
|
|
53
53
|
if (version != null)
|
|
54
54
|
url.searchParams.set("version", String(version));
|
|
55
|
+
if (as_)
|
|
56
|
+
url.searchParams.set("as", as_);
|
|
55
57
|
const res = await request(url.toString());
|
|
56
58
|
if (res.status === 404) {
|
|
57
59
|
const body = (await res.json().catch(() => ({})));
|