@dyrected/cli 2.3.4 → 2.3.5
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/generate-types.d.ts +3 -0
- package/dist/commands/generate-types.d.ts.map +1 -0
- package/dist/commands/generate-types.js +34 -0
- package/dist/commands/generate-types.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +280 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/sync-schema.d.ts +3 -0
- package/dist/commands/sync-schema.d.ts.map +1 -0
- package/dist/commands/sync-schema.js +83 -0
- package/dist/commands/sync-schema.js.map +1 -0
- package/dist/index.js +16 -571
- package/dist/index.js.map +1 -1
- package/dist/utils/config-templates.d.ts +4 -0
- package/dist/utils/config-templates.d.ts.map +1 -0
- package/dist/utils/config-templates.js +54 -0
- package/dist/utils/config-templates.js.map +1 -0
- package/dist/utils/detect.d.ts +3 -0
- package/dist/utils/detect.d.ts.map +1 -0
- package/dist/utils/detect.js +27 -0
- package/dist/utils/detect.js.map +1 -0
- package/dist/utils/type-generator.d.ts +6 -0
- package/dist/utils/type-generator.d.ts.map +1 -0
- package/dist/utils/type-generator.js +151 -0
- package/dist/utils/type-generator.js.map +1 -0
- package/dist/utils/writers.d.ts +4 -0
- package/dist/utils/writers.d.ts.map +1 -0
- package/dist/utils/writers.js +110 -0
- package/dist/utils/writers.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function buildDbConfig(db) {
|
|
2
|
+
switch (db) {
|
|
3
|
+
case "postgres":
|
|
4
|
+
return `postgresAdapter({ url: process.env.DATABASE_URL! })`;
|
|
5
|
+
case "mysql":
|
|
6
|
+
return `mysqlAdapter({ url: process.env.DATABASE_URL! })`;
|
|
7
|
+
case "sqlite":
|
|
8
|
+
return `sqliteAdapter({ filename: './data.db' })`;
|
|
9
|
+
case "mongodb":
|
|
10
|
+
return `mongodbAdapter({ url: process.env.DATABASE_URL! })`;
|
|
11
|
+
default:
|
|
12
|
+
return `postgresAdapter({ url: process.env.DATABASE_URL! })`;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function buildStorageConfig(storage) {
|
|
16
|
+
switch (storage) {
|
|
17
|
+
case "local":
|
|
18
|
+
return `localAdapter({ directory: './public/uploads', serveFrom: '/uploads' })`;
|
|
19
|
+
case "s3":
|
|
20
|
+
return `s3Adapter({ bucket: process.env.S3_BUCKET!, region: process.env.S3_REGION!, accessKeyId: process.env.S3_ACCESS_KEY_ID!, secretAccessKey: process.env.S3_SECRET_ACCESS_KEY! })`;
|
|
21
|
+
case "b2":
|
|
22
|
+
return `b2Adapter({ bucketId: process.env.B2_BUCKET_ID!, keyId: process.env.B2_KEY_ID!, applicationKey: process.env.B2_APPLICATION_KEY! })`;
|
|
23
|
+
case "cloudinary":
|
|
24
|
+
return `cloudinaryAdapter({ cloudName: process.env.CLOUDINARY_CLOUD_NAME!, apiKey: process.env.CLOUDINARY_API_KEY!, apiSecret: process.env.CLOUDINARY_API_SECRET! })`;
|
|
25
|
+
default:
|
|
26
|
+
return `localAdapter({ directory: './public/uploads', serveFrom: '/uploads' })`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function buildEnvTemplate(db, storage, framework) {
|
|
30
|
+
const lines = [
|
|
31
|
+
`# Dyrected CMS — Environment Variables`,
|
|
32
|
+
`DATABASE_URL=${db === "mongodb"
|
|
33
|
+
? "mongodb://localhost:27017/dyrected"
|
|
34
|
+
: db === "mysql"
|
|
35
|
+
? "mysql://user:pass@localhost:3306/dyrected"
|
|
36
|
+
: "postgres://user:pass@localhost:5432/dyrected"}`,
|
|
37
|
+
`JWT_SECRET=change-me-32-characters-minimum`,
|
|
38
|
+
`ENCRYPTION_KEY=change-me-aes-256-key`,
|
|
39
|
+
``,
|
|
40
|
+
];
|
|
41
|
+
if (storage === "s3") {
|
|
42
|
+
lines.push(`S3_BUCKET=my-bucket`, `S3_REGION=us-east-1`, `S3_ACCESS_KEY_ID=`, `S3_SECRET_ACCESS_KEY=`);
|
|
43
|
+
}
|
|
44
|
+
else if (storage === "b2") {
|
|
45
|
+
lines.push(`B2_BUCKET_ID=`, `B2_KEY_ID=`, `B2_APPLICATION_KEY=`);
|
|
46
|
+
}
|
|
47
|
+
else if (storage === "cloudinary") {
|
|
48
|
+
lines.push(`CLOUDINARY_CLOUD_NAME=`, `CLOUDINARY_API_KEY=`, `CLOUDINARY_API_SECRET=`);
|
|
49
|
+
}
|
|
50
|
+
const prefix = framework === "next" ? "NEXT_PUBLIC_" : "NUXT_PUBLIC_";
|
|
51
|
+
lines.push(``, `${prefix}DYRECTED_URL=http://localhost:3000`, `${prefix}DYRECTED_API_KEY=local-dev`);
|
|
52
|
+
return lines.join("\n") + "\n";
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=config-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-templates.js","sourceRoot":"","sources":["../../src/utils/config-templates.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,UAAU;YACb,OAAO,qDAAqD,CAAC;QAC/D,KAAK,OAAO;YACV,OAAO,kDAAkD,CAAC;QAC5D,KAAK,QAAQ;YACX,OAAO,0CAA0C,CAAC;QACpD,KAAK,SAAS;YACZ,OAAO,oDAAoD,CAAC;QAC9D;YACE,OAAO,qDAAqD,CAAC;IACjE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,wEAAwE,CAAC;QAClF,KAAK,IAAI;YACP,OAAO,+KAA+K,CAAC;QACzL,KAAK,IAAI;YACP,OAAO,oIAAoI,CAAC;QAC9I,KAAK,YAAY;YACf,OAAO,8JAA8J,CAAC;QACxK;YACE,OAAO,wEAAwE,CAAC;IACpF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAU,EAAE,OAAe,EAAE,SAAiB;IAC7E,MAAM,KAAK,GAAG;QACZ,wCAAwC;QACxC,gBACE,EAAE,KAAK,SAAS;YACd,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,EAAE,KAAK,OAAO;gBACd,CAAC,CAAC,2CAA2C;gBAC7C,CAAC,CAAC,8CACR,EAAE;QACF,4CAA4C;QAC5C,sCAAsC;QACtC,EAAE;KACH,CAAC;IAEF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;IACzG,CAAC;SAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,wBAAwB,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,oCAAoC,EAAE,GAAG,MAAM,4BAA4B,CAAC,CAAC;IACrG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/utils/detect.ts"],"names":[],"mappings":"AAGA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAUlF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
export function detectPackageManager(cwd) {
|
|
4
|
+
if (fs.existsSync(path.join(cwd, "bun.lockb")) || fs.existsSync(path.join(cwd, "bun.lock")))
|
|
5
|
+
return "bun";
|
|
6
|
+
if (fs.existsSync(path.join(cwd, "pnpm-lock.yaml")))
|
|
7
|
+
return "pnpm";
|
|
8
|
+
if (fs.existsSync(path.join(cwd, "yarn.lock")))
|
|
9
|
+
return "yarn";
|
|
10
|
+
return "npm";
|
|
11
|
+
}
|
|
12
|
+
export async function detectFramework(cwd) {
|
|
13
|
+
const pkgPath = path.join(cwd, "package.json");
|
|
14
|
+
if (!(await fs.pathExists(pkgPath)))
|
|
15
|
+
return null;
|
|
16
|
+
try {
|
|
17
|
+
const pkg = await fs.readJson(pkgPath);
|
|
18
|
+
const all = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
19
|
+
if (all["next"])
|
|
20
|
+
return "next";
|
|
21
|
+
if (all["nuxt"])
|
|
22
|
+
return "nuxt";
|
|
23
|
+
}
|
|
24
|
+
catch { }
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/utils/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1G,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACnE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QAC5D,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC/B,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-generator.d.ts","sourceRoot":"","sources":["../../src/utils/type-generator.ts"],"names":[],"mappings":"AAMA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,iBA+B/F"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import prettier from "prettier";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import fs from "fs-extra";
|
|
4
|
+
import path from "path";
|
|
5
|
+
import { createJiti } from "jiti";
|
|
6
|
+
export async function runGenerateTypes(options) {
|
|
7
|
+
let schema;
|
|
8
|
+
if (options.url) {
|
|
9
|
+
console.log(chalk.blue(`Fetching schemas from ${options.url}/api/schemas...`));
|
|
10
|
+
const response = await fetch(`${options.url}/api/schemas`);
|
|
11
|
+
if (!response.ok)
|
|
12
|
+
throw new Error(`Failed to fetch schemas: ${response.statusText}`);
|
|
13
|
+
schema = await response.json();
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const configPath = path.resolve(process.cwd(), options.config);
|
|
17
|
+
if (await fs.pathExists(configPath)) {
|
|
18
|
+
console.log(chalk.blue(`Generating types from local config: ${configPath}...`));
|
|
19
|
+
const jiti = createJiti(configPath);
|
|
20
|
+
const configModule = (await jiti.import(configPath));
|
|
21
|
+
schema = configModule.default || configModule;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
const url = "http://localhost:3000";
|
|
25
|
+
console.log(chalk.blue(`No local config found. Fetching schemas from ${url}/api/schemas...`));
|
|
26
|
+
const response = await fetch(`${url}/api/schemas`);
|
|
27
|
+
if (!response.ok)
|
|
28
|
+
throw new Error(`Failed to fetch schemas: ${response.statusText}`);
|
|
29
|
+
schema = await response.json();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (!schema || !schema.collections)
|
|
33
|
+
throw new Error("Invalid schema: collections missing.");
|
|
34
|
+
const code = generateTypes(schema);
|
|
35
|
+
const formattedCode = await prettier.format(code, { parser: "typescript" });
|
|
36
|
+
await fs.outputFile(path.resolve(process.cwd(), options.output), formattedCode);
|
|
37
|
+
console.log(chalk.green(`✔ Types generated at ${options.output}`));
|
|
38
|
+
}
|
|
39
|
+
function generateTypes(schema) {
|
|
40
|
+
let code = `/**
|
|
41
|
+
* This file was automatically generated by Dyrected CLI.
|
|
42
|
+
* DO NOT MODIFY IT BY HAND.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
export interface Media {
|
|
46
|
+
id: string;
|
|
47
|
+
filename: string;
|
|
48
|
+
filesize: number;
|
|
49
|
+
mimeType: string;
|
|
50
|
+
url: string;
|
|
51
|
+
width?: number;
|
|
52
|
+
height?: number;
|
|
53
|
+
createdAt: string;
|
|
54
|
+
updatedAt: string;
|
|
55
|
+
}
|
|
56
|
+
\n`;
|
|
57
|
+
for (const col of schema.collections) {
|
|
58
|
+
if (!col || !col.slug)
|
|
59
|
+
continue;
|
|
60
|
+
const interfaceName = toPascalCase(col.slug);
|
|
61
|
+
if (interfaceName === "Media") {
|
|
62
|
+
const extraFields = col.fields.filter((f) => !["filename", "filesize", "mimeType", "url", "width", "height", "createdAt", "updatedAt"].includes(f.name));
|
|
63
|
+
if (extraFields.length > 0) {
|
|
64
|
+
const insertionPoint = code.indexOf("}", code.indexOf("export interface Media {"));
|
|
65
|
+
const fieldsCode = extraFields
|
|
66
|
+
.map((f) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`)
|
|
67
|
+
.join("\n");
|
|
68
|
+
code = code.slice(0, insertionPoint) + fieldsCode + "\n" + code.slice(insertionPoint);
|
|
69
|
+
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (code.includes(`export interface ${interfaceName} {`))
|
|
73
|
+
continue;
|
|
74
|
+
code += `export interface ${interfaceName} {\n`;
|
|
75
|
+
code += ` id: string;\n`;
|
|
76
|
+
for (const field of col.fields) {
|
|
77
|
+
if (["createdAt", "updatedAt", "id"].includes(field.name))
|
|
78
|
+
continue;
|
|
79
|
+
code += ` ${field.name}${field.required ? "" : "?"}: ${mapFieldType(field)};\n`;
|
|
80
|
+
}
|
|
81
|
+
code += ` createdAt: string;\n`;
|
|
82
|
+
code += ` updatedAt: string;\n`;
|
|
83
|
+
code += `}\n\n`;
|
|
84
|
+
}
|
|
85
|
+
for (const glb of schema.globals) {
|
|
86
|
+
if (!glb || !glb.slug)
|
|
87
|
+
continue;
|
|
88
|
+
const interfaceName = `${toPascalCase(glb.slug)}Global`;
|
|
89
|
+
code += `export interface ${interfaceName} {\n`;
|
|
90
|
+
for (const field of glb.fields) {
|
|
91
|
+
code += ` ${field.name}${field.required ? "" : "?"}: ${mapFieldType(field)};\n`;
|
|
92
|
+
}
|
|
93
|
+
code += `}\n\n`;
|
|
94
|
+
}
|
|
95
|
+
code += `export interface DyrectedSchema {\n`;
|
|
96
|
+
code += ` collections: {\n`;
|
|
97
|
+
for (const col of schema.collections) {
|
|
98
|
+
code += ` ${col.slug}: ${toPascalCase(col.slug)};\n`;
|
|
99
|
+
}
|
|
100
|
+
code += ` };\n`;
|
|
101
|
+
code += ` globals: {\n`;
|
|
102
|
+
for (const glb of schema.globals) {
|
|
103
|
+
code += ` ${glb.slug}: ${toPascalCase(glb.slug)}Global;\n`;
|
|
104
|
+
}
|
|
105
|
+
code += ` };\n`;
|
|
106
|
+
code += `}\n`;
|
|
107
|
+
return code;
|
|
108
|
+
}
|
|
109
|
+
function mapFieldType(field) {
|
|
110
|
+
switch (field.type) {
|
|
111
|
+
case "text":
|
|
112
|
+
case "textarea":
|
|
113
|
+
case "richText":
|
|
114
|
+
case "date":
|
|
115
|
+
case "email":
|
|
116
|
+
case "url":
|
|
117
|
+
return "string";
|
|
118
|
+
case "number":
|
|
119
|
+
return "number";
|
|
120
|
+
case "boolean":
|
|
121
|
+
return "boolean";
|
|
122
|
+
case "select":
|
|
123
|
+
return field.options
|
|
124
|
+
? field.options.map((o) => `'${typeof o === "string" ? o : o.value}'`).join(" | ")
|
|
125
|
+
: "string";
|
|
126
|
+
case "relationship": {
|
|
127
|
+
const relationTo = field.relationTo || field.collection;
|
|
128
|
+
return relationTo === "media" ? "Media | string" : `${toPascalCase(relationTo)} | string`;
|
|
129
|
+
}
|
|
130
|
+
case "array":
|
|
131
|
+
return field.fields
|
|
132
|
+
? `Array<{\n${field.fields.map((f) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`).join("\n")}\n }>`
|
|
133
|
+
: "any[]";
|
|
134
|
+
case "blocks":
|
|
135
|
+
return field.blocks
|
|
136
|
+
? `Array<${field.blocks.map((b) => `{\n blockType: '${b.slug}';\n${b.fields.map((f) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`).join("\n")}\n }`).join(" | ")}>`
|
|
137
|
+
: "any[]";
|
|
138
|
+
case "object":
|
|
139
|
+
return field.fields
|
|
140
|
+
? `{\n${field.fields.map((f) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`).join("\n")}\n }`
|
|
141
|
+
: "any";
|
|
142
|
+
default:
|
|
143
|
+
return "any";
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function toPascalCase(str) {
|
|
147
|
+
if (!str)
|
|
148
|
+
return "Unknown";
|
|
149
|
+
return str.replace(/(^\w|-\w)/g, (m) => m.replace(/-/, "").toUpperCase());
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=type-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-generator.js","sourceRoot":"","sources":["../../src/utils/type-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function writeNextFiles(cwd: string, adminPath: string): Promise<void>;
|
|
2
|
+
export declare function writeNuxtFiles(cwd: string, adminPath: string): Promise<void>;
|
|
3
|
+
export declare function patchNuxtConfig(cwd: string, adminPath?: string): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=writers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writers.d.ts","sourceRoot":"","sources":["../../src/utils/writers.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAoElE;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAyBlE;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,iBAiCpE"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import path from "path";
|
|
4
|
+
export async function writeNextFiles(cwd, adminPath) {
|
|
5
|
+
const hasSrc = await fs.pathExists(path.join(cwd, "src"));
|
|
6
|
+
const appDir = hasSrc ? path.join(cwd, "src/app") : path.join(cwd, "app");
|
|
7
|
+
const pagesDir = hasSrc ? path.join(cwd, "src/pages") : path.join(cwd, "pages");
|
|
8
|
+
const hasAppRouter = await fs.pathExists(appDir);
|
|
9
|
+
const hasPagesRouter = await fs.pathExists(pagesDir);
|
|
10
|
+
if (hasPagesRouter && !hasAppRouter) {
|
|
11
|
+
const rel = hasSrc ? "src/pages" : "pages";
|
|
12
|
+
const apiRoutePath = path.join(pagesDir, "api/dyrected/[...route].ts");
|
|
13
|
+
if (!(await fs.pathExists(apiRoutePath))) {
|
|
14
|
+
await fs.outputFile(apiRoutePath, `export { default } from '@dyrected/next'\n`);
|
|
15
|
+
console.log(chalk.green(`✔ ${rel}/api/dyrected/[...route].ts written`));
|
|
16
|
+
}
|
|
17
|
+
const adminPagePath = path.join(pagesDir, `${adminPath}.tsx`);
|
|
18
|
+
if (!(await fs.pathExists(adminPagePath))) {
|
|
19
|
+
await fs.outputFile(adminPagePath, `import { DyrectedAdmin } from '@dyrected/next/admin'
|
|
20
|
+
|
|
21
|
+
export default function AdminPage() {
|
|
22
|
+
return <DyrectedAdmin apiPath="/api/dyrected" />
|
|
23
|
+
}
|
|
24
|
+
`);
|
|
25
|
+
console.log(chalk.green(`✔ ${rel}/${adminPath}.tsx written`));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const rel = hasSrc ? "src/app" : "app";
|
|
30
|
+
const apiRoutePath = path.join(appDir, "dyrected/[...route]/route.ts");
|
|
31
|
+
if (!(await fs.pathExists(apiRoutePath))) {
|
|
32
|
+
await fs.outputFile(apiRoutePath, `export { GET, POST, PUT, PATCH, DELETE } from '@dyrected/next'\n`);
|
|
33
|
+
console.log(chalk.green(`✔ ${rel}/dyrected/[...route]/route.ts written`));
|
|
34
|
+
}
|
|
35
|
+
const adminPagePath = path.join(appDir, `${adminPath}/page.tsx`);
|
|
36
|
+
if (!(await fs.pathExists(adminPagePath))) {
|
|
37
|
+
await fs.outputFile(adminPagePath, `import { DyrectedAdmin } from '@dyrected/next/admin'
|
|
38
|
+
|
|
39
|
+
export default function AdminPage() {
|
|
40
|
+
return <DyrectedAdmin apiPath="/dyrected" />
|
|
41
|
+
}
|
|
42
|
+
`);
|
|
43
|
+
console.log(chalk.green(`✔ ${rel}/${adminPath}/page.tsx written`));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// instrumentation.ts — logs Dyrected URLs to the console on server start
|
|
47
|
+
const instrumentationDir = hasSrc ? path.join(cwd, "src") : cwd;
|
|
48
|
+
const instrumentationPath = path.join(instrumentationDir, "instrumentation.ts");
|
|
49
|
+
if (!(await fs.pathExists(instrumentationPath))) {
|
|
50
|
+
const apiPath = hasPagesRouter && !hasAppRouter ? "/api/dyrected" : "/dyrected";
|
|
51
|
+
await fs.outputFile(instrumentationPath, `export async function register() {
|
|
52
|
+
if (process.env.NEXT_RUNTIME === 'nodejs') {
|
|
53
|
+
const base = (process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000').replace(/\\/$/, '')
|
|
54
|
+
console.log(\`\\n ➜ Dyrected admin: \${base}/${adminPath}\`)
|
|
55
|
+
console.log(\` ➜ Dyrected API: \${base}${apiPath}\\n\`)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
`);
|
|
59
|
+
const relInstrumentation = hasSrc ? "src/instrumentation.ts" : "instrumentation.ts";
|
|
60
|
+
console.log(chalk.green(`✔ ${relInstrumentation} written`));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export async function writeNuxtFiles(cwd, adminPath) {
|
|
64
|
+
const hasAppDir = await fs.pathExists(path.join(cwd, "app"));
|
|
65
|
+
const pagesBase = hasAppDir ? "app/pages" : "pages";
|
|
66
|
+
const adminPagePath = path.join(cwd, pagesBase, adminPath, "index.vue");
|
|
67
|
+
if (!(await fs.pathExists(adminPagePath))) {
|
|
68
|
+
await fs.outputFile(adminPagePath, `<template>
|
|
69
|
+
<ClientOnly>
|
|
70
|
+
<DyrectedAdmin basename="/${adminPath}" />
|
|
71
|
+
</ClientOnly>
|
|
72
|
+
</template>
|
|
73
|
+
|
|
74
|
+
<script setup lang="ts">
|
|
75
|
+
definePageMeta({
|
|
76
|
+
layout: false,
|
|
77
|
+
});
|
|
78
|
+
</script>
|
|
79
|
+
`);
|
|
80
|
+
console.log(chalk.green(`✔ ${pagesBase}/${adminPath}/index.vue written`));
|
|
81
|
+
}
|
|
82
|
+
await patchNuxtConfig(cwd, adminPath);
|
|
83
|
+
}
|
|
84
|
+
export async function patchNuxtConfig(cwd, adminPath) {
|
|
85
|
+
const tsConfig = path.join(cwd, "nuxt.config.ts");
|
|
86
|
+
const jsConfig = path.join(cwd, "nuxt.config.js");
|
|
87
|
+
const configPath = (await fs.pathExists(tsConfig)) ? tsConfig : (await fs.pathExists(jsConfig)) ? jsConfig : null;
|
|
88
|
+
if (!configPath) {
|
|
89
|
+
console.log(chalk.yellow("\n⚠ No nuxt.config.ts found. Add the module manually:"));
|
|
90
|
+
console.log(chalk.dim(` modules: [['@dyrected/nuxt', { adminPath: '${adminPath || "cms"}' }]]`));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
let content = await fs.readFile(configPath, "utf-8");
|
|
94
|
+
if (content.includes("@dyrected/nuxt")) {
|
|
95
|
+
console.log(chalk.dim("ℹ @dyrected/nuxt already in nuxt.config"));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const moduleEntry = adminPath
|
|
99
|
+
? `['@dyrected/nuxt', { adminPath: '${adminPath}' }]`
|
|
100
|
+
: `'@dyrected/nuxt'`;
|
|
101
|
+
if (/modules\s*:\s*\[/.test(content)) {
|
|
102
|
+
content = content.replace(/modules\s*:\s*\[/, `modules: [${moduleEntry}, `);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
content = content.replace(/defineNuxtConfig\s*\(\s*\{/, `defineNuxtConfig({\n modules: [${moduleEntry}],`);
|
|
106
|
+
}
|
|
107
|
+
await fs.writeFile(configPath, content, "utf-8");
|
|
108
|
+
console.log(chalk.green(`✔ @dyrected/nuxt added to ${path.relative(cwd, configPath)}`));
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=writers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writers.js","sourceRoot":"","sources":["../../src/utils/writers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dyrected/cli",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"jiti": "^2.7.0",
|
|
17
17
|
"prettier": "^3.2.5",
|
|
18
18
|
"prompts": "^2.4.2",
|
|
19
|
-
"@dyrected/
|
|
20
|
-
"@dyrected/
|
|
19
|
+
"@dyrected/core": "^2.5.2",
|
|
20
|
+
"@dyrected/sdk": "^2.4.6"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/fs-extra": "^11.0.4",
|