swallowkit 0.3.0-beta.2 → 0.4.0-beta.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.ja.md +1 -1
- package/README.md +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +0 -3
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/create-model.d.ts.map +1 -1
- package/dist/cli/commands/create-model.js +29 -9
- package/dist/cli/commands/create-model.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deploy.js +0 -3
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/dev.js +27 -3
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/init.js +155 -47
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/provision.d.ts.map +1 -1
- package/dist/cli/commands/provision.js +32 -8
- package/dist/cli/commands/provision.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts.map +1 -1
- package/dist/cli/commands/scaffold.js +97 -140
- package/dist/cli/commands/scaffold.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +87 -57
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/scaffold/functions-generator.d.ts +4 -2
- package/dist/core/scaffold/functions-generator.d.ts.map +1 -1
- package/dist/core/scaffold/functions-generator.js +147 -285
- package/dist/core/scaffold/functions-generator.js.map +1 -1
- package/dist/core/scaffold/model-parser.d.ts +24 -0
- package/dist/core/scaffold/model-parser.d.ts.map +1 -1
- package/dist/core/scaffold/model-parser.js +255 -21
- package/dist/core/scaffold/model-parser.js.map +1 -1
- package/dist/core/scaffold/nextjs-generator.d.ts +7 -2
- package/dist/core/scaffold/nextjs-generator.d.ts.map +1 -1
- package/dist/core/scaffold/nextjs-generator.js +148 -334
- package/dist/core/scaffold/nextjs-generator.js.map +1 -1
- package/dist/core/scaffold/ui-generator.d.ts +11 -11
- package/dist/core/scaffold/ui-generator.d.ts.map +1 -1
- package/dist/core/scaffold/ui-generator.js +247 -42
- package/dist/core/scaffold/ui-generator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Next.js UI
|
|
4
|
-
* CRUD
|
|
3
|
+
* Next.js UI コンポーネント生成
|
|
4
|
+
* CRUD 画面(一覧、詳細、新規作成、編集)を生成する
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.generateListPage = generateListPage;
|
|
@@ -11,9 +11,9 @@ exports.generateNewPage = generateNewPage;
|
|
|
11
11
|
exports.generateEditPage = generateEditPage;
|
|
12
12
|
const model_parser_1 = require("./model-parser");
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* 一覧画面を生成
|
|
15
15
|
*/
|
|
16
|
-
function generateListPage(model) {
|
|
16
|
+
function generateListPage(model, sharedPackageName) {
|
|
17
17
|
const modelName = model.name;
|
|
18
18
|
const modelCamel = (0, model_parser_1.toCamelCase)(modelName);
|
|
19
19
|
const modelKebab = (0, model_parser_1.toKebabCase)(modelName);
|
|
@@ -24,6 +24,9 @@ function generateListPage(model) {
|
|
|
24
24
|
// 外部キーフィールドを検出
|
|
25
25
|
const foreignKeyFields = displayFields.filter(f => f.isForeignKey);
|
|
26
26
|
const hasForeignKeys = foreignKeyFields.length > 0;
|
|
27
|
+
// ネストスキーマフィールドを検出
|
|
28
|
+
const nestedFields = displayFields.filter(f => f.isNestedSchema);
|
|
29
|
+
const hasNestedSchemas = nestedFields.length > 0;
|
|
27
30
|
// 外部キー用のstate定義を生成
|
|
28
31
|
const foreignKeyStates = foreignKeyFields.map(f => {
|
|
29
32
|
const refModel = f.referencedModel;
|
|
@@ -46,11 +49,21 @@ function generateListPage(model) {
|
|
|
46
49
|
})
|
|
47
50
|
.catch(err => console.error('Failed to fetch ${refModel}s:', err));`;
|
|
48
51
|
}).join('\n');
|
|
52
|
+
const schemaName = model.schemaName;
|
|
53
|
+
// schemaNameとmodelNameが同じ場合はimportエイリアスで名前衝突を回避
|
|
54
|
+
const needsAlias = schemaName === modelName;
|
|
55
|
+
const localSchemaName = needsAlias ? `${(0, model_parser_1.toCamelCase)(modelName)}Schema` : schemaName;
|
|
56
|
+
const schemaImportLine = needsAlias
|
|
57
|
+
? `import { ${schemaName} as ${localSchemaName} } from '${sharedPackageName}';`
|
|
58
|
+
: `import { ${schemaName} } from '${sharedPackageName}';`;
|
|
49
59
|
return `'use client';
|
|
50
60
|
|
|
51
61
|
import { useEffect, useState } from 'react';
|
|
52
62
|
import Link from 'next/link';
|
|
53
|
-
import {
|
|
63
|
+
import { z } from 'zod/v4';
|
|
64
|
+
${schemaImportLine}
|
|
65
|
+
|
|
66
|
+
type ${modelName} = z.infer<typeof ${localSchemaName}>;
|
|
54
67
|
|
|
55
68
|
export default function ${modelName}ListPage() {
|
|
56
69
|
const [${modelCamel}s, set${modelName}s] = useState<${modelName}[]>([]);
|
|
@@ -110,6 +123,14 @@ ${hasForeignKeys ? foreignKeyFetches : ''}
|
|
|
110
123
|
|
|
111
124
|
return (
|
|
112
125
|
<div className="container mx-auto px-4 py-8">
|
|
126
|
+
<div className="mb-4">
|
|
127
|
+
<Link
|
|
128
|
+
href="/"
|
|
129
|
+
className="text-blue-600 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-300 text-sm"
|
|
130
|
+
>
|
|
131
|
+
← Home
|
|
132
|
+
</Link>
|
|
133
|
+
</div>
|
|
113
134
|
<div className="flex justify-between items-center mb-6">
|
|
114
135
|
<h1 className="text-3xl font-bold text-gray-900 dark:text-gray-100">${modelName}</h1>
|
|
115
136
|
<Link
|
|
@@ -129,9 +150,14 @@ ${hasForeignKeys ? foreignKeyFetches : ''}
|
|
|
129
150
|
<table className="min-w-full divide-y divide-gray-200 dark:divide-gray-700">
|
|
130
151
|
<thead className="bg-gray-50 dark:bg-gray-900">
|
|
131
152
|
<tr>
|
|
132
|
-
${displayFields.map(f =>
|
|
133
|
-
|
|
134
|
-
|
|
153
|
+
${displayFields.map(f => {
|
|
154
|
+
const headerLabel = f.isNestedSchema && f.nestedModelName
|
|
155
|
+
? f.nestedModelName
|
|
156
|
+
: (f.isForeignKey && f.referencedModel ? f.referencedModel : f.name);
|
|
157
|
+
return ` <th className="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider">
|
|
158
|
+
${headerLabel}
|
|
159
|
+
</th>`;
|
|
160
|
+
}).join('\n')}
|
|
135
161
|
<th className="px-6 py-3 text-right text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider">
|
|
136
162
|
Actions
|
|
137
163
|
</th>
|
|
@@ -141,7 +167,20 @@ ${displayFields.map(f => ` <th className="px-6 py-3 text-left tex
|
|
|
141
167
|
{${modelCamel}s.map((item) => (
|
|
142
168
|
<tr key={item.id} className="hover:bg-gray-50 dark:hover:bg-gray-700">
|
|
143
169
|
${displayFields.map(f => {
|
|
144
|
-
if (f.
|
|
170
|
+
if (f.isNestedSchema && f.nestedModelName) {
|
|
171
|
+
const displayField = f.nestedDisplayField || 'name';
|
|
172
|
+
if (f.isArray) {
|
|
173
|
+
return ` <td className="px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-gray-100">
|
|
174
|
+
{Array.isArray(item.${f.name}) ? item.${f.name}.map((ref: any) => ref?.${displayField} || '-').join(', ') : '-'}
|
|
175
|
+
</td>`;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
return ` <td className="px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-gray-100">
|
|
179
|
+
{item.${f.name}?.${displayField} || '-'}
|
|
180
|
+
</td>`;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else if (f.isForeignKey && f.referencedModel) {
|
|
145
184
|
const refModel = f.referencedModel;
|
|
146
185
|
const refModelCamel = (0, model_parser_1.toCamelCase)(refModel);
|
|
147
186
|
return ` <td className="px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-gray-100">
|
|
@@ -186,9 +225,9 @@ ${displayFields.map(f => {
|
|
|
186
225
|
`;
|
|
187
226
|
}
|
|
188
227
|
/**
|
|
189
|
-
*
|
|
228
|
+
* 詳細画面を生成
|
|
190
229
|
*/
|
|
191
|
-
function generateDetailPage(model) {
|
|
230
|
+
function generateDetailPage(model, sharedPackageName) {
|
|
192
231
|
const modelName = model.name;
|
|
193
232
|
const modelCamel = (0, model_parser_1.toCamelCase)(modelName);
|
|
194
233
|
const modelKebab = (0, model_parser_1.toKebabCase)(modelName);
|
|
@@ -216,12 +255,22 @@ function generateDetailPage(model) {
|
|
|
216
255
|
})
|
|
217
256
|
.catch(err => console.error('Failed to fetch ${refModel}s:', err));`;
|
|
218
257
|
}).join('\n');
|
|
258
|
+
const schemaName = model.schemaName;
|
|
259
|
+
// Zod公式パターン対応: schemaNameとmodelNameが同じ場合はimportエイリアスで名前衝突を回避
|
|
260
|
+
const needsAlias = schemaName === modelName;
|
|
261
|
+
const localSchemaName = needsAlias ? `${(0, model_parser_1.toCamelCase)(modelName)}Schema` : schemaName;
|
|
262
|
+
const schemaImportLine = needsAlias
|
|
263
|
+
? `import { ${schemaName} as ${localSchemaName} } from '${sharedPackageName}';`
|
|
264
|
+
: `import { ${schemaName} } from '${sharedPackageName}';`;
|
|
219
265
|
return `'use client';
|
|
220
266
|
|
|
221
267
|
import { useEffect, useState } from 'react';
|
|
222
268
|
import { useParams, useRouter } from 'next/navigation';
|
|
223
269
|
import Link from 'next/link';
|
|
224
|
-
import {
|
|
270
|
+
import { z } from 'zod/v4';
|
|
271
|
+
${schemaImportLine}
|
|
272
|
+
|
|
273
|
+
type ${modelName} = z.infer<typeof ${localSchemaName}>;
|
|
225
274
|
|
|
226
275
|
export default function ${modelName}DetailPage() {
|
|
227
276
|
const params = useParams();
|
|
@@ -292,13 +341,13 @@ ${hasForeignKeys ? foreignKeyFetches : ''}
|
|
|
292
341
|
<div className="space-x-2">
|
|
293
342
|
<Link
|
|
294
343
|
href={\`/${modelKebab}/\${${modelCamel}.id}/edit\`}
|
|
295
|
-
className="bg-green-600 hover:bg-green-700 dark:bg-green-500 dark:hover:bg-green-600 text-white px-4 py-2 rounded"
|
|
344
|
+
className="inline-flex items-center bg-green-600 hover:bg-green-700 dark:bg-green-500 dark:hover:bg-green-600 text-white px-4 py-2 rounded"
|
|
296
345
|
>
|
|
297
346
|
Edit
|
|
298
347
|
</Link>
|
|
299
348
|
<button
|
|
300
349
|
onClick={handleDelete}
|
|
301
|
-
className="bg-red-600 hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600 text-white px-4 py-2 rounded"
|
|
350
|
+
className="inline-flex items-center bg-red-600 hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600 text-white px-4 py-2 rounded"
|
|
302
351
|
>
|
|
303
352
|
Delete
|
|
304
353
|
</button>
|
|
@@ -308,7 +357,23 @@ ${hasForeignKeys ? foreignKeyFetches : ''}
|
|
|
308
357
|
<div className="bg-white dark:bg-gray-800 shadow-md rounded-lg p-6">
|
|
309
358
|
<dl className="space-y-4">
|
|
310
359
|
${model.fields.map(f => {
|
|
311
|
-
if (f.
|
|
360
|
+
if (f.isNestedSchema && f.nestedModelName) {
|
|
361
|
+
const displayField = f.nestedDisplayField || 'name';
|
|
362
|
+
const label = f.nestedModelName;
|
|
363
|
+
if (f.isArray) {
|
|
364
|
+
return ` <div>
|
|
365
|
+
<dt className="text-sm font-medium text-gray-500 dark:text-gray-400">${label}</dt>
|
|
366
|
+
<dd className="mt-1 text-sm text-gray-900 dark:text-gray-100">{Array.isArray(${modelCamel}.${f.name}) ? ${modelCamel}.${f.name}.map((ref: any) => ref?.${displayField} || '-').join(', ') : '-'}</dd>
|
|
367
|
+
</div>`;
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
return ` <div>
|
|
371
|
+
<dt className="text-sm font-medium text-gray-500 dark:text-gray-400">${label}</dt>
|
|
372
|
+
<dd className="mt-1 text-sm text-gray-900 dark:text-gray-100">{${modelCamel}.${f.name}?.${displayField} || '-'}</dd>
|
|
373
|
+
</div>`;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
else if (f.isForeignKey && f.referencedModel) {
|
|
312
377
|
const refModel = f.referencedModel;
|
|
313
378
|
const refModelCamel = (0, model_parser_1.toCamelCase)(refModel);
|
|
314
379
|
return ` <div>
|
|
@@ -341,28 +406,59 @@ ${model.fields.map(f => {
|
|
|
341
406
|
`;
|
|
342
407
|
}
|
|
343
408
|
/**
|
|
344
|
-
*
|
|
409
|
+
* フォームコンポーネントを生成
|
|
345
410
|
*/
|
|
346
|
-
function generateFormComponent(model) {
|
|
411
|
+
function generateFormComponent(model, sharedPackageName) {
|
|
347
412
|
const modelName = model.name;
|
|
348
413
|
const modelCamel = (0, model_parser_1.toCamelCase)(modelName);
|
|
349
414
|
const schemaName = model.schemaName;
|
|
350
|
-
//
|
|
415
|
+
// Zod公式パターン対応: schemaNameとmodelNameが同じ場合はimportエイリアスで名前衝突を回避
|
|
416
|
+
const needsAlias = schemaName === modelName;
|
|
417
|
+
const localSchemaName = needsAlias ? `${(0, model_parser_1.toCamelCase)(modelName)}Schema` : schemaName;
|
|
418
|
+
const schemaImportLine = needsAlias
|
|
419
|
+
? `import { ${schemaName} as ${localSchemaName} } from '${sharedPackageName}';`
|
|
420
|
+
: `import { ${schemaName} } from '${sharedPackageName}';`;
|
|
421
|
+
// id, createdAt, updatedAt 以外のフィールド
|
|
351
422
|
const formFields = model.fields.filter(f => f.name !== 'id' &&
|
|
352
423
|
f.name !== 'createdAt' &&
|
|
353
424
|
f.name !== 'updatedAt');
|
|
354
425
|
// 外部キーフィールドを抽出
|
|
355
426
|
const foreignKeyFields = formFields.filter(f => f.isForeignKey);
|
|
356
427
|
const hasForignKeys = foreignKeyFields.length > 0;
|
|
428
|
+
// ネストスキーマフィールドを抽出
|
|
429
|
+
const nestedSchemaFields = formFields.filter(f => f.isNestedSchema);
|
|
430
|
+
const hasNestedSchemas = nestedSchemaFields.length > 0;
|
|
431
|
+
// useEffect が必要かどうか
|
|
432
|
+
const needsUseEffect = hasForignKeys || hasNestedSchemas;
|
|
433
|
+
// ネストスキーマ用のstate定義を生成
|
|
434
|
+
const nestedSchemaStates = nestedSchemaFields.map(f => {
|
|
435
|
+
const refModelCamel = (0, model_parser_1.toCamelCase)(f.nestedModelName);
|
|
436
|
+
const refModelPascal = f.nestedModelName;
|
|
437
|
+
return ` const [${refModelCamel}Options, set${refModelPascal}Options] = useState<Array<{ id: string; name: string }>>([]);`;
|
|
438
|
+
}).join('\n');
|
|
439
|
+
// ネストスキーマデータのフェッチロジック
|
|
440
|
+
const nestedSchemaFetches = nestedSchemaFields.map(f => {
|
|
441
|
+
const refModelCamel = (0, model_parser_1.toCamelCase)(f.nestedModelName);
|
|
442
|
+
const refModelPascal = f.nestedModelName;
|
|
443
|
+
const displayField = f.nestedDisplayField || 'name';
|
|
444
|
+
return ` // ${refModelPascal} の一覧を取得
|
|
445
|
+
fetch('/api/${refModelCamel}')
|
|
446
|
+
.then(res => res.json())
|
|
447
|
+
.then(data => set${refModelPascal}Options(data.map((item: any) => ({ id: item.id, name: item.${displayField} || item.name || item.title || item.id }))))
|
|
448
|
+
.catch(err => console.error('Failed to load ${refModelPascal} options:', err));`;
|
|
449
|
+
}).join('\n');
|
|
357
450
|
return `'use client';
|
|
358
451
|
|
|
359
|
-
import { useState, FormEvent${
|
|
452
|
+
import { useState, FormEvent${needsUseEffect ? ', useEffect' : ''} } from 'react';
|
|
360
453
|
import { useRouter } from 'next/navigation';
|
|
361
|
-
import {
|
|
454
|
+
import { z } from 'zod/v4';
|
|
455
|
+
${schemaImportLine}
|
|
362
456
|
|
|
363
457
|
// Input schema: SwallowKit-managed fields (id, createdAt, updatedAt) are optional
|
|
364
458
|
// These fields are ignored by the backend and auto-managed
|
|
365
|
-
const ${modelName}InputSchema = ${
|
|
459
|
+
const ${modelName}InputSchema = ${localSchemaName}.partial({ id: true, createdAt: true, updatedAt: true });
|
|
460
|
+
|
|
461
|
+
type ${modelName} = z.infer<typeof ${localSchemaName}>;
|
|
366
462
|
|
|
367
463
|
interface ${modelName}FormProps {
|
|
368
464
|
initialData?: ${modelName};
|
|
@@ -374,9 +470,19 @@ export default function ${modelName}Form({ initialData, isEdit = false }: ${mode
|
|
|
374
470
|
const [loading, setLoading] = useState(false);
|
|
375
471
|
const [errors, setErrors] = useState<Record<string, string>>({});
|
|
376
472
|
${hasForignKeys ? foreignKeyFields.map(f => ` const [${(0, model_parser_1.toCamelCase)(f.referencedModel)}Options, set${f.referencedModel}Options] = useState<Array<{ id: string; name: string }>>([]);`).join('\n') : ''}
|
|
473
|
+
${hasNestedSchemas ? nestedSchemaStates : ''}
|
|
377
474
|
|
|
378
475
|
const [formData, setFormData] = useState({
|
|
379
476
|
${formFields.map(f => {
|
|
477
|
+
// ネストスキーマの場合は参照ID(単一: string, 配列: string[])を管理
|
|
478
|
+
if (f.isNestedSchema) {
|
|
479
|
+
if (f.isArray) {
|
|
480
|
+
return ` ${f.name}Ids: initialData?.${f.name} ? (Array.isArray(initialData.${f.name}) ? initialData.${f.name}.map((item: any) => item.id) : []) : [] as string[],`;
|
|
481
|
+
}
|
|
482
|
+
else {
|
|
483
|
+
return ` ${f.name}Id: initialData?.${f.name}?.id ?? '',`;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
380
486
|
let defaultValue = "''";
|
|
381
487
|
if (f.isArray) {
|
|
382
488
|
// Array の場合は空文字列(カンマ区切りで入力するため)
|
|
@@ -402,14 +508,15 @@ ${formFields.map(f => {
|
|
|
402
508
|
return ` ${f.name}: initialData?.${f.name} ?? ${defaultValue},`;
|
|
403
509
|
}).join('\n')}
|
|
404
510
|
});
|
|
405
|
-
${
|
|
406
|
-
//
|
|
511
|
+
${needsUseEffect ? `
|
|
512
|
+
// 参照データの選択肢を取得
|
|
407
513
|
useEffect(() => {
|
|
408
|
-
${foreignKeyFields.map(f => ` // ${f.referencedModel} の一覧を取得
|
|
514
|
+
${hasForignKeys ? foreignKeyFields.map(f => ` // ${f.referencedModel} の一覧を取得
|
|
409
515
|
fetch('/api/${(0, model_parser_1.toKebabCase)(f.referencedModel)}')
|
|
410
516
|
.then(res => res.json())
|
|
411
517
|
.then(data => set${f.referencedModel}Options(data.map((item: any) => ({ id: item.id, name: item.name || item.title || item.id }))))
|
|
412
|
-
.catch(err => console.error('Failed to load ${f.referencedModel} options:', err));`).join('\n')}
|
|
518
|
+
.catch(err => console.error('Failed to load ${f.referencedModel} options:', err));`).join('\n') : ''}
|
|
519
|
+
${hasNestedSchemas ? nestedSchemaFetches : ''}
|
|
413
520
|
}, []);
|
|
414
521
|
` : ''}
|
|
415
522
|
const handleSubmit = async (e: FormEvent) => {
|
|
@@ -419,10 +526,15 @@ ${foreignKeyFields.map(f => ` // ${f.referencedModel} の一覧を取得
|
|
|
419
526
|
|
|
420
527
|
try {
|
|
421
528
|
// Array フィールドをカンマ区切りから配列に変換
|
|
422
|
-
const submitData = { ...formData };
|
|
423
|
-
${formFields.filter(f => f.isArray).map(f => ` if (typeof submitData.${f.name} === 'string') {
|
|
529
|
+
const submitData: any = { ...formData };
|
|
530
|
+
${formFields.filter(f => f.isArray && !f.isNestedSchema).map(f => ` if (typeof submitData.${f.name} === 'string') {
|
|
424
531
|
submitData.${f.name} = submitData.${f.name}.split(',').map((s: string) => s.trim()).filter((s: string) => s.length > 0);
|
|
425
532
|
}`).join('\n')}
|
|
533
|
+
${formFields.filter(f => f.enumValues && f.enumValues.length > 0).length > 0 ? `
|
|
534
|
+
// Enum フィールドの空文字列を undefined に変換(.default() を有効にする)
|
|
535
|
+
${formFields.filter(f => f.enumValues && f.enumValues.length > 0).map(f => ` if (submitData.${f.name} === '') {
|
|
536
|
+
submitData.${f.name} = undefined;
|
|
537
|
+
}`).join('\n')}` : ''}
|
|
426
538
|
${formFields.filter(f => f.type === 'number').length > 0 ? `
|
|
427
539
|
// Number フィールドを変換(空文字列 → undefined、文字列 → 数値)
|
|
428
540
|
${formFields.filter(f => f.type === 'number').map(f => ` if (submitData.${f.name} === '' || submitData.${f.name} === null) {
|
|
@@ -430,6 +542,33 @@ ${formFields.filter(f => f.type === 'number').map(f => ` if (submitData.${f
|
|
|
430
542
|
} else if (typeof submitData.${f.name} === 'string') {
|
|
431
543
|
submitData.${f.name} = Number(submitData.${f.name});
|
|
432
544
|
}`).join('\n')}` : ''}
|
|
545
|
+
${hasNestedSchemas ? `
|
|
546
|
+
// ネストスキーマ参照をIDからオブジェクトに変換
|
|
547
|
+
${nestedSchemaFields.map(f => {
|
|
548
|
+
const refModelCamel = (0, model_parser_1.toCamelCase)(f.nestedModelName);
|
|
549
|
+
const refModelPascal = f.nestedModelName;
|
|
550
|
+
if (f.isArray) {
|
|
551
|
+
return ` // ${refModelPascal} 配列参照の変換
|
|
552
|
+
if (submitData.${f.name}Ids) {
|
|
553
|
+
submitData.${f.name} = submitData.${f.name}Ids
|
|
554
|
+
.map((refId: string) => ${refModelCamel}Options.find(opt => opt.id === refId))
|
|
555
|
+
.filter(Boolean);
|
|
556
|
+
delete submitData.${f.name}Ids;
|
|
557
|
+
}`;
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
return ` // ${refModelPascal} 単一参照の変換
|
|
561
|
+
if (submitData.${f.name}Id) {
|
|
562
|
+
const selected = ${refModelCamel}Options.find(opt => opt.id === submitData.${f.name}Id);
|
|
563
|
+
submitData.${f.name} = selected || undefined;
|
|
564
|
+
delete submitData.${f.name}Id;
|
|
565
|
+
} else {
|
|
566
|
+
submitData.${f.name} = undefined;
|
|
567
|
+
delete submitData.${f.name}Id;
|
|
568
|
+
}`;
|
|
569
|
+
}
|
|
570
|
+
}).join('\n')}
|
|
571
|
+
` : ''}
|
|
433
572
|
|
|
434
573
|
// Validate input (excluding SwallowKit-managed fields)
|
|
435
574
|
${modelName}InputSchema.parse(submitData);
|
|
@@ -450,10 +589,10 @@ ${formFields.filter(f => f.type === 'number').map(f => ` if (submitData.${f
|
|
|
450
589
|
|
|
451
590
|
router.push('/${(0, model_parser_1.toKebabCase)(modelName)}');
|
|
452
591
|
} catch (err: any) {
|
|
453
|
-
if (err.
|
|
592
|
+
if (err.issues) {
|
|
454
593
|
// Zod validation errors
|
|
455
594
|
const fieldErrors: Record<string, string> = {};
|
|
456
|
-
err.
|
|
595
|
+
err.issues.forEach((error: any) => {
|
|
457
596
|
const field = error.path[0];
|
|
458
597
|
fieldErrors[field] = error.message;
|
|
459
598
|
});
|
|
@@ -468,6 +607,62 @@ ${formFields.filter(f => f.type === 'number').map(f => ` if (submitData.${f
|
|
|
468
607
|
return (
|
|
469
608
|
<form onSubmit={handleSubmit} className="space-y-6">
|
|
470
609
|
${formFields.map(f => {
|
|
610
|
+
// ネストスキーマの場合はセレクトボックス(単一)またはマルチセレクト(配列)
|
|
611
|
+
if (f.isNestedSchema && f.nestedModelName) {
|
|
612
|
+
const optionsVar = `${(0, model_parser_1.toCamelCase)(f.nestedModelName)}Options`;
|
|
613
|
+
const label = f.nestedModelName;
|
|
614
|
+
if (f.isArray) {
|
|
615
|
+
// 配列参照: マルチセレクト
|
|
616
|
+
return ` <div>
|
|
617
|
+
<label htmlFor="${f.name}" className="block text-sm font-medium text-gray-700 dark:text-gray-300">
|
|
618
|
+
${label}${!f.isOptional ? ' *' : ''} <span className="text-xs text-gray-500">(複数選択可)</span>
|
|
619
|
+
</label>
|
|
620
|
+
<select
|
|
621
|
+
id="${f.name}"
|
|
622
|
+
name="${f.name}"
|
|
623
|
+
multiple
|
|
624
|
+
value={formData.${f.name}Ids}
|
|
625
|
+
onChange={(e) => {
|
|
626
|
+
const selected = Array.from(e.target.selectedOptions, option => option.value);
|
|
627
|
+
setFormData({ ...formData, ${f.name}Ids: selected });
|
|
628
|
+
}}
|
|
629
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400 min-h-[120px]"
|
|
630
|
+
${!f.isOptional ? 'required' : ''}
|
|
631
|
+
>
|
|
632
|
+
{${optionsVar}.map((option) => (
|
|
633
|
+
<option key={option.id} value={option.id}>{option.name}</option>
|
|
634
|
+
))}
|
|
635
|
+
</select>
|
|
636
|
+
{errors.${f.name} && (
|
|
637
|
+
<p className="mt-1 text-sm text-red-600 dark:text-red-400">{errors.${f.name}}</p>
|
|
638
|
+
)}
|
|
639
|
+
</div>`;
|
|
640
|
+
}
|
|
641
|
+
else {
|
|
642
|
+
// 単一オブジェクト参照: セレクトボックス
|
|
643
|
+
return ` <div>
|
|
644
|
+
<label htmlFor="${f.name}" className="block text-sm font-medium text-gray-700 dark:text-gray-300">
|
|
645
|
+
${label}${!f.isOptional ? ' *' : ''}
|
|
646
|
+
</label>
|
|
647
|
+
<select
|
|
648
|
+
id="${f.name}"
|
|
649
|
+
name="${f.name}"
|
|
650
|
+
value={formData.${f.name}Id}
|
|
651
|
+
onChange={(e) => setFormData({ ...formData, ${f.name}Id: e.target.value })}
|
|
652
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400"
|
|
653
|
+
${!f.isOptional ? 'required' : ''}
|
|
654
|
+
>
|
|
655
|
+
<option value="">選択してください</option>
|
|
656
|
+
{${optionsVar}.map((option) => (
|
|
657
|
+
<option key={option.id} value={option.id}>{option.name}</option>
|
|
658
|
+
))}
|
|
659
|
+
</select>
|
|
660
|
+
{errors.${f.name} && (
|
|
661
|
+
<p className="mt-1 text-sm text-red-600 dark:text-red-400">{errors.${f.name}}</p>
|
|
662
|
+
)}
|
|
663
|
+
</div>`;
|
|
664
|
+
}
|
|
665
|
+
}
|
|
471
666
|
// 外部キーの場合は参照先モデルのドロップダウン
|
|
472
667
|
if (f.isForeignKey && f.referencedModel) {
|
|
473
668
|
const optionsVar = `${(0, model_parser_1.toCamelCase)(f.referencedModel)}Options`;
|
|
@@ -480,7 +675,7 @@ ${formFields.map(f => {
|
|
|
480
675
|
name="${f.name}"
|
|
481
676
|
value={formData.${f.name}}
|
|
482
677
|
onChange={(e) => setFormData({ ...formData, ${f.name}: e.target.value })}
|
|
483
|
-
className="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-
|
|
678
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400"
|
|
484
679
|
${!f.isOptional ? 'required' : ''}
|
|
485
680
|
>
|
|
486
681
|
<option value="">選択してください</option>
|
|
@@ -504,7 +699,7 @@ ${formFields.map(f => {
|
|
|
504
699
|
name="${f.name}"
|
|
505
700
|
value={formData.${f.name}}
|
|
506
701
|
onChange={(e) => setFormData({ ...formData, ${f.name}: e.target.value })}
|
|
507
|
-
className="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-
|
|
702
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400"
|
|
508
703
|
${!f.isOptional ? 'required' : ''}
|
|
509
704
|
>
|
|
510
705
|
<option value="">選択してください</option>
|
|
@@ -524,7 +719,7 @@ ${f.enumValues.map(v => ` <option value="${v}">${v}</option>`).join('\n
|
|
|
524
719
|
name="${f.name}"
|
|
525
720
|
checked={formData.${f.name}}
|
|
526
721
|
onChange={(e) => setFormData({ ...formData, ${f.name}: e.target.checked })}
|
|
527
|
-
className="h-4 w-4 text-blue-600 dark:text-blue-400 focus:ring-blue-500 dark:focus:ring-blue-400 border-gray-300 dark:border-gray-600 rounded"
|
|
722
|
+
className="h-4 w-4 text-blue-600 dark:text-blue-400 focus:ring-blue-500 dark:focus:ring-blue-400 border border-gray-300 dark:border-gray-600 rounded"
|
|
528
723
|
/>
|
|
529
724
|
<label htmlFor="${f.name}" className="ml-2 block text-sm text-gray-700 dark:text-gray-300">
|
|
530
725
|
${f.name}
|
|
@@ -547,7 +742,7 @@ ${f.enumValues.map(v => ` <option value="${v}">${v}</option>`).join('\n
|
|
|
547
742
|
value={formData.${f.name}}
|
|
548
743
|
onChange={(e) => setFormData({ ...formData, ${f.name}: e.target.value })}
|
|
549
744
|
placeholder="例: item1, item2, item3"
|
|
550
|
-
className="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-
|
|
745
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400"
|
|
551
746
|
${!f.isOptional ? 'required' : ''}
|
|
552
747
|
/>
|
|
553
748
|
{errors.${f.name} && (
|
|
@@ -567,7 +762,7 @@ ${f.enumValues.map(v => ` <option value="${v}">${v}</option>`).join('\n
|
|
|
567
762
|
name="${f.name}"
|
|
568
763
|
value={formData.${f.name}}
|
|
569
764
|
onChange={(e) => setFormData({ ...formData, ${f.name}: e.target.value })}
|
|
570
|
-
className="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-
|
|
765
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400"
|
|
571
766
|
${!f.isOptional ? 'required' : ''}
|
|
572
767
|
/>
|
|
573
768
|
{errors.${f.name} && (
|
|
@@ -587,7 +782,7 @@ ${f.enumValues.map(v => ` <option value="${v}">${v}</option>`).join('\n
|
|
|
587
782
|
name="${f.name}"
|
|
588
783
|
value={formData.${f.name}}
|
|
589
784
|
onChange={(e) => setFormData({ ...formData, ${f.name}: e.target.value })}
|
|
590
|
-
className="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-
|
|
785
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400"
|
|
591
786
|
${!f.isOptional ? 'required' : ''}
|
|
592
787
|
/>
|
|
593
788
|
{errors.${f.name} && (
|
|
@@ -606,7 +801,7 @@ ${f.enumValues.map(v => ` <option value="${v}">${v}</option>`).join('\n
|
|
|
606
801
|
name="${f.name}"
|
|
607
802
|
value={formData.${f.name}}
|
|
608
803
|
onChange={(e) => setFormData({ ...formData, ${f.name}: e.target.value })}
|
|
609
|
-
className="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-
|
|
804
|
+
className="mt-1 block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 shadow-sm px-3 py-2 focus:border-blue-500 focus:ring-blue-500 dark:focus:border-blue-400 dark:focus:ring-blue-400"
|
|
610
805
|
${!f.isOptional ? 'required' : ''}
|
|
611
806
|
/>
|
|
612
807
|
{errors.${f.name} && (
|
|
@@ -637,7 +832,7 @@ ${f.enumValues.map(v => ` <option value="${v}">${v}</option>`).join('\n
|
|
|
637
832
|
`;
|
|
638
833
|
}
|
|
639
834
|
/**
|
|
640
|
-
*
|
|
835
|
+
* 新規作成画面を生成
|
|
641
836
|
*/
|
|
642
837
|
function generateNewPage(model) {
|
|
643
838
|
const modelName = model.name;
|
|
@@ -649,7 +844,7 @@ export default function New${modelName}Page() {
|
|
|
649
844
|
<div className="container mx-auto px-4 py-8">
|
|
650
845
|
<div className="max-w-2xl mx-auto">
|
|
651
846
|
<h1 className="text-3xl font-bold mb-6">Create New ${modelName}</h1>
|
|
652
|
-
<div className="bg-white shadow-md rounded-lg p-6">
|
|
847
|
+
<div className="bg-white dark:bg-gray-800 shadow-md rounded-lg p-6">
|
|
653
848
|
<${modelName}Form />
|
|
654
849
|
</div>
|
|
655
850
|
</div>
|
|
@@ -659,18 +854,28 @@ export default function New${modelName}Page() {
|
|
|
659
854
|
`;
|
|
660
855
|
}
|
|
661
856
|
/**
|
|
662
|
-
*
|
|
857
|
+
* 編集画面を生成
|
|
663
858
|
*/
|
|
664
|
-
function generateEditPage(model) {
|
|
859
|
+
function generateEditPage(model, sharedPackageName) {
|
|
665
860
|
const modelName = model.name;
|
|
666
861
|
const modelCamel = (0, model_parser_1.toCamelCase)(modelName);
|
|
667
862
|
const modelKebab = (0, model_parser_1.toKebabCase)(modelName);
|
|
863
|
+
const schemaName = model.schemaName;
|
|
864
|
+
// Zod公式パターン対応: schemaNameとmodelNameが同じ場合はimportエイリアスで名前衝突を回避
|
|
865
|
+
const needsAlias = schemaName === modelName;
|
|
866
|
+
const localSchemaName = needsAlias ? `${(0, model_parser_1.toCamelCase)(modelName)}Schema` : schemaName;
|
|
867
|
+
const schemaImportLine = needsAlias
|
|
868
|
+
? `import { ${schemaName} as ${localSchemaName} } from '${sharedPackageName}';`
|
|
869
|
+
: `import { ${schemaName} } from '${sharedPackageName}';`;
|
|
668
870
|
return `'use client';
|
|
669
871
|
|
|
670
872
|
import { useEffect, useState } from 'react';
|
|
671
873
|
import { useParams } from 'next/navigation';
|
|
672
874
|
import ${modelName}Form from '../../_components/${modelName}Form';
|
|
673
|
-
import {
|
|
875
|
+
import { z } from 'zod/v4';
|
|
876
|
+
${schemaImportLine}
|
|
877
|
+
|
|
878
|
+
type ${modelName} = z.infer<typeof ${localSchemaName}>;
|
|
674
879
|
|
|
675
880
|
export default function Edit${modelName}Page() {
|
|
676
881
|
const params = useParams();
|
|
@@ -710,7 +915,7 @@ export default function Edit${modelName}Page() {
|
|
|
710
915
|
<div className="container mx-auto px-4 py-8">
|
|
711
916
|
<div className="max-w-2xl mx-auto">
|
|
712
917
|
<h1 className="text-3xl font-bold mb-6">Edit ${modelName}</h1>
|
|
713
|
-
<div className="bg-white shadow-md rounded-lg p-6">
|
|
918
|
+
<div className="bg-white dark:bg-gray-800 shadow-md rounded-lg p-6">
|
|
714
919
|
<${modelName}Form initialData={${modelCamel}} isEdit={true} />
|
|
715
920
|
</div>
|
|
716
921
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-generator.js","sourceRoot":"","sources":["../../../src/core/scaffold/ui-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui-generator.js","sourceRoot":"","sources":["../../../src/core/scaffold/ui-generator.ts"],"names":[],"mappings":"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"}
|