ide-assi 0.205.0 → 0.206.0

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.
@@ -193642,24 +193642,18 @@ class IdeAi
193642
193642
  return o;
193643
193643
  };
193644
193644
 
193645
- #generateRealFile = async (where) => {
193645
+ #generateRealFile = async (srcPath) => {
193646
193646
 
193647
193647
  const files = ["mybatis.xml", "service.java", "controller.java", "react.jsx"];
193648
193648
 
193649
193649
  const params = await Promise.all(
193650
193650
  files.map(async (file) => ({
193651
- path: ninegrid.decode(file, "mybatis.xml", where.mybatis, "service.java", where.service, "controller.java", where.controller, "react.jsx", where.javascript),
193651
+ path: ninegrid.decode(file, "mybatis.xml", srcPath.mybatis, "service.java", srcPath.service, "controller.java", srcPath.controller, "react.jsx", srcPath.javascript),
193652
193652
  contents: await fetch(`/api/templates/${file}`).then(res => res.text()),
193653
193653
  }))
193654
193654
  );
193655
193655
 
193656
- await fetch(`/api/source/generateRealFile`, {
193657
- method: "POST",
193658
- headers: { "Content-Type": "application/json" },
193659
- body: JSON.stringify({ list: params })
193660
- });
193661
-
193662
- return;
193656
+ api.post(`/api/source/generateRealFile`, { list: params });
193663
193657
  };
193664
193658
 
193665
193659
  #generateTmplFile = async (promptFile, generateFileName, params) => {
@@ -193670,16 +193664,6 @@ class IdeAi
193670
193664
  fileNm: generateFileName,
193671
193665
  contents: src,
193672
193666
  });
193673
- /**
193674
- await fetch(`/api/source/generateTmplFile`, {
193675
- method: "POST",
193676
- headers: { "Content-Type": "application/json" },
193677
- body: JSON.stringify({
193678
- fileNm: generateFileName,
193679
- contents: src,
193680
- })
193681
- });
193682
- */
193683
193667
 
193684
193668
  return src;
193685
193669
  };
@@ -193722,73 +193706,9 @@ class IdeAi
193722
193706
 
193723
193707
  generateSourceClient = async (userPrompt) => {
193724
193708
 
193725
- try {
193726
- this.#createModel();
193727
-
193728
- const what = await this.#what(userPrompt);
193729
- this.#parent.addMessage("명령을 이해했습니다.");
193730
-
193731
- const where = await this.#where(userPrompt, this.#getMenuInfo(), await this.#getTableList());
193732
- this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.");
193733
-
193734
- console.log(where);
193735
-
193736
- const srcPath = this.#getSourcePath(where.menu.url);
193737
-
193738
- console.log(srcPath);
193739
-
193740
-
193741
-
193742
- const columnInfo = await this.#getColumnInfo(where.table);
193709
+ console.log(undefined.VITE_REACT_PROJECT_NAME);
193743
193710
 
193744
- const mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/BuildMyBatisMapper.txt", "mybatis.xml", {
193745
- userPrompt: userPrompt,
193746
- resultType: srcPath.resultType,
193747
- namespace: srcPath.namespace,
193748
- tableDefinitions: columnInfo
193749
- });
193750
- this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
193751
-
193752
- const serviceSrc = await this.#generateTmplFile("/prompts/meta/BuildService.txt", "service.java", {
193753
- userPrompt: userPrompt,
193754
- baseClass: srcPath.baseClass,
193755
- myBatisPath: srcPath.mybatis,
193756
- namespace: srcPath.namespace,
193757
- package: srcPath.package + ".service",
193758
- mybatisXmlSource: mybatisXmlSource,
193759
- });
193760
- this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
193761
-
193762
- const controllerSrc = await this.#generateTmplFile("/prompts/meta/BuildController.txt", "controller.java", {
193763
- userPrompt: userPrompt,
193764
- baseClass: srcPath.baseClass,
193765
- menuUrl: where.menu.url,
193766
- package: srcPath.package + ".controller",
193767
- serviceSource: serviceSrc,
193768
- });
193769
- this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
193770
-
193771
- const jsSrc = await this.#generateTmplFile("/prompts/meta/BuildReactJsx.txt", "react.jsx", {
193772
- userPrompt: userPrompt,
193773
- menuUrl: where.menu.url,
193774
- menuName: where.menu.name,
193775
- baseClass: srcPath.baseClass,
193776
- controllerSource: controllerSrc,
193777
- tableDefinitions: columnInfo,
193778
- });
193779
- this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
193780
-
193781
- return "OKKKK";
193782
-
193783
- await this.#generateRealFile(where);
193784
- }
193785
- catch (error) {
193786
- throw error;
193787
- //console.log("========================");
193788
- }
193789
-
193790
-
193791
- return "OK";
193711
+ return;
193792
193712
  }
193793
193713
  }
193794
193714
 
@@ -193638,24 +193638,18 @@ class IdeAi
193638
193638
  return o;
193639
193639
  };
193640
193640
 
193641
- #generateRealFile = async (where) => {
193641
+ #generateRealFile = async (srcPath) => {
193642
193642
 
193643
193643
  const files = ["mybatis.xml", "service.java", "controller.java", "react.jsx"];
193644
193644
 
193645
193645
  const params = await Promise.all(
193646
193646
  files.map(async (file) => ({
193647
- path: ninegrid.decode(file, "mybatis.xml", where.mybatis, "service.java", where.service, "controller.java", where.controller, "react.jsx", where.javascript),
193647
+ path: ninegrid.decode(file, "mybatis.xml", srcPath.mybatis, "service.java", srcPath.service, "controller.java", srcPath.controller, "react.jsx", srcPath.javascript),
193648
193648
  contents: await fetch(`/api/templates/${file}`).then(res => res.text()),
193649
193649
  }))
193650
193650
  );
193651
193651
 
193652
- await fetch(`/api/source/generateRealFile`, {
193653
- method: "POST",
193654
- headers: { "Content-Type": "application/json" },
193655
- body: JSON.stringify({ list: params })
193656
- });
193657
-
193658
- return;
193652
+ api.post(`/api/source/generateRealFile`, { list: params });
193659
193653
  };
193660
193654
 
193661
193655
  #generateTmplFile = async (promptFile, generateFileName, params) => {
@@ -193666,16 +193660,6 @@ class IdeAi
193666
193660
  fileNm: generateFileName,
193667
193661
  contents: src,
193668
193662
  });
193669
- /**
193670
- await fetch(`/api/source/generateTmplFile`, {
193671
- method: "POST",
193672
- headers: { "Content-Type": "application/json" },
193673
- body: JSON.stringify({
193674
- fileNm: generateFileName,
193675
- contents: src,
193676
- })
193677
- });
193678
- */
193679
193663
 
193680
193664
  return src;
193681
193665
  };
@@ -193718,73 +193702,9 @@ class IdeAi
193718
193702
 
193719
193703
  generateSourceClient = async (userPrompt) => {
193720
193704
 
193721
- try {
193722
- this.#createModel();
193723
-
193724
- const what = await this.#what(userPrompt);
193725
- this.#parent.addMessage("명령을 이해했습니다.");
193726
-
193727
- const where = await this.#where(userPrompt, this.#getMenuInfo(), await this.#getTableList());
193728
- this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.");
193729
-
193730
- console.log(where);
193731
-
193732
- const srcPath = this.#getSourcePath(where.menu.url);
193733
-
193734
- console.log(srcPath);
193735
-
193736
-
193737
-
193738
- const columnInfo = await this.#getColumnInfo(where.table);
193705
+ console.log(import.meta.env.VITE_REACT_PROJECT_NAME);
193739
193706
 
193740
- const mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/BuildMyBatisMapper.txt", "mybatis.xml", {
193741
- userPrompt: userPrompt,
193742
- resultType: srcPath.resultType,
193743
- namespace: srcPath.namespace,
193744
- tableDefinitions: columnInfo
193745
- });
193746
- this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
193747
-
193748
- const serviceSrc = await this.#generateTmplFile("/prompts/meta/BuildService.txt", "service.java", {
193749
- userPrompt: userPrompt,
193750
- baseClass: srcPath.baseClass,
193751
- myBatisPath: srcPath.mybatis,
193752
- namespace: srcPath.namespace,
193753
- package: srcPath.package + ".service",
193754
- mybatisXmlSource: mybatisXmlSource,
193755
- });
193756
- this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
193757
-
193758
- const controllerSrc = await this.#generateTmplFile("/prompts/meta/BuildController.txt", "controller.java", {
193759
- userPrompt: userPrompt,
193760
- baseClass: srcPath.baseClass,
193761
- menuUrl: where.menu.url,
193762
- package: srcPath.package + ".controller",
193763
- serviceSource: serviceSrc,
193764
- });
193765
- this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
193766
-
193767
- const jsSrc = await this.#generateTmplFile("/prompts/meta/BuildReactJsx.txt", "react.jsx", {
193768
- userPrompt: userPrompt,
193769
- menuUrl: where.menu.url,
193770
- menuName: where.menu.name,
193771
- baseClass: srcPath.baseClass,
193772
- controllerSource: controllerSrc,
193773
- tableDefinitions: columnInfo,
193774
- });
193775
- this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
193776
-
193777
- return "OKKKK";
193778
-
193779
- await this.#generateRealFile(where);
193780
- }
193781
- catch (error) {
193782
- throw error;
193783
- //console.log("========================");
193784
- }
193785
-
193786
-
193787
- return "OK";
193707
+ return;
193788
193708
  }
193789
193709
  }
193790
193710
 
@@ -226,38 +226,18 @@ export class IdeAi
226
226
  return o;
227
227
  };
228
228
 
229
- #generateRealFile = async (where) => {
229
+ #generateRealFile = async (srcPath) => {
230
230
 
231
231
  const files = ["mybatis.xml", "service.java", "controller.java", "react.jsx"];
232
232
 
233
233
  const params = await Promise.all(
234
234
  files.map(async (file) => ({
235
- path: ninegrid.decode(file, "mybatis.xml", where.mybatis, "service.java", where.service, "controller.java", where.controller, "react.jsx", where.javascript),
235
+ path: ninegrid.decode(file, "mybatis.xml", srcPath.mybatis, "service.java", srcPath.service, "controller.java", srcPath.controller, "react.jsx", srcPath.javascript),
236
236
  contents: await fetch(`/api/templates/${file}`).then(res => res.text()),
237
237
  }))
238
238
  );
239
239
 
240
- await fetch(`/api/source/generateRealFile`, {
241
- method: "POST",
242
- headers: { "Content-Type": "application/json" },
243
- body: JSON.stringify({ list: params })
244
- });
245
-
246
- return;
247
-
248
- return await new PromptTemplate({
249
- template,
250
- inputVariables: Object.keys(params),
251
- }).format(params);
252
-
253
- const response3 = await fetch(`/api/source/generateRealFile`, {
254
- method: "POST",
255
- headers: { "Content-Type": "application/json" },
256
- body: JSON.stringify({
257
- fileNm: filePath,
258
- contents: src,
259
- })
260
- });
240
+ api.post(`/api/source/generateRealFile`, { list: params });
261
241
  };
262
242
 
263
243
  #generateTmplFile = async (promptFile, generateFileName, params) => {
@@ -268,16 +248,6 @@ export class IdeAi
268
248
  fileNm: generateFileName,
269
249
  contents: src,
270
250
  });
271
- /**
272
- await fetch(`/api/source/generateTmplFile`, {
273
- method: "POST",
274
- headers: { "Content-Type": "application/json" },
275
- body: JSON.stringify({
276
- fileNm: generateFileName,
277
- contents: src,
278
- })
279
- });
280
- */
281
251
 
282
252
  return src;
283
253
  };
@@ -320,71 +290,64 @@ export class IdeAi
320
290
 
321
291
  generateSourceClient = async (userPrompt) => {
322
292
 
323
- try {
324
- this.#createModel();
325
-
326
- const what = await this.#what(userPrompt);
327
- this.#parent.addMessage("명령을 이해했습니다.");
328
-
329
- const where = await this.#where(userPrompt, this.#getMenuInfo(), await this.#getTableList());
330
- this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.")
331
-
332
- console.log(where);
333
-
334
- const srcPath = this.#getSourcePath(where.menu.url);
335
-
336
- console.log(srcPath);
293
+ console.log(import.meta.env.VITE_REACT_PROJECT_NAME);
337
294
 
295
+ return;
338
296
 
297
+ this.#createModel();
339
298
 
340
- const columnInfo = await this.#getColumnInfo(where.table);
299
+ const what = await this.#what(userPrompt);
300
+ this.#parent.addMessage("명령을 이해했습니다.");
341
301
 
342
- const mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/BuildMyBatisMapper.txt", "mybatis.xml", {
343
- userPrompt: userPrompt,
344
- resultType: srcPath.resultType,
345
- namespace: srcPath.namespace,
346
- tableDefinitions: columnInfo
347
- });
348
- this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
302
+ const where = await this.#where(userPrompt, this.#getMenuInfo(), await this.#getTableList());
303
+ this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.")
349
304
 
350
- const serviceSrc = await this.#generateTmplFile("/prompts/meta/BuildService.txt", "service.java", {
351
- userPrompt: userPrompt,
352
- baseClass: srcPath.baseClass,
353
- myBatisPath: srcPath.mybatis,
354
- namespace: srcPath.namespace,
355
- package: srcPath.package + ".service",
356
- mybatisXmlSource: mybatisXmlSource,
357
- });
358
- this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
305
+ console.log(where);
359
306
 
360
- const controllerSrc = await this.#generateTmplFile("/prompts/meta/BuildController.txt", "controller.java", {
361
- userPrompt: userPrompt,
362
- baseClass: srcPath.baseClass,
363
- menuUrl: where.menu.url,
364
- package: srcPath.package + ".controller",
365
- serviceSource: serviceSrc,
366
- });
367
- this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
307
+ const srcPath = this.#getSourcePath(where.menu.url);
368
308
 
369
- const jsSrc = await this.#generateTmplFile("/prompts/meta/BuildReactJsx.txt", "react.jsx", {
370
- userPrompt: userPrompt,
371
- menuUrl: where.menu.url,
372
- menuName: where.menu.name,
373
- baseClass: srcPath.baseClass,
374
- controllerSource: controllerSrc,
375
- tableDefinitions: columnInfo,
376
- });
377
- this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
309
+ console.log(srcPath);
378
310
 
379
- return "OKKKK";
311
+ const columnInfo = await this.#getColumnInfo(where.table);
380
312
 
381
- await this.#generateRealFile(where);
382
- }
383
- catch (error) {
384
- throw error;
385
- //console.log("========================");
386
- }
313
+ const mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/BuildMyBatisMapper.txt", "mybatis.xml", {
314
+ userPrompt: userPrompt,
315
+ resultType: srcPath.resultType,
316
+ namespace: srcPath.namespace,
317
+ tableDefinitions: columnInfo
318
+ });
319
+ this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
320
+
321
+ const serviceSrc = await this.#generateTmplFile("/prompts/meta/BuildService.txt", "service.java", {
322
+ userPrompt: userPrompt,
323
+ baseClass: srcPath.baseClass,
324
+ myBatisPath: srcPath.mybatis,
325
+ namespace: srcPath.namespace,
326
+ package: srcPath.package + ".service",
327
+ mybatisXmlSource: mybatisXmlSource,
328
+ });
329
+ this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
330
+
331
+ const controllerSrc = await this.#generateTmplFile("/prompts/meta/BuildController.txt", "controller.java", {
332
+ userPrompt: userPrompt,
333
+ baseClass: srcPath.baseClass,
334
+ menuUrl: where.menu.url,
335
+ package: srcPath.package + ".controller",
336
+ serviceSource: serviceSrc,
337
+ });
338
+ this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
339
+
340
+ const jsSrc = await this.#generateTmplFile("/prompts/meta/BuildReactJsx.txt", "react.jsx", {
341
+ userPrompt: userPrompt,
342
+ menuUrl: where.menu.url,
343
+ menuName: where.menu.name,
344
+ baseClass: srcPath.baseClass,
345
+ controllerSource: controllerSrc,
346
+ tableDefinitions: columnInfo,
347
+ });
348
+ this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
387
349
 
350
+ await this.#generateRealFile(srcPath);
388
351
 
389
352
  return "OK";
390
353
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ide-assi",
3
3
  "type": "module",
4
- "version": "0.205.0",
4
+ "version": "0.206.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -226,38 +226,18 @@ export class IdeAi
226
226
  return o;
227
227
  };
228
228
 
229
- #generateRealFile = async (where) => {
229
+ #generateRealFile = async (srcPath) => {
230
230
 
231
231
  const files = ["mybatis.xml", "service.java", "controller.java", "react.jsx"];
232
232
 
233
233
  const params = await Promise.all(
234
234
  files.map(async (file) => ({
235
- path: ninegrid.decode(file, "mybatis.xml", where.mybatis, "service.java", where.service, "controller.java", where.controller, "react.jsx", where.javascript),
235
+ path: ninegrid.decode(file, "mybatis.xml", srcPath.mybatis, "service.java", srcPath.service, "controller.java", srcPath.controller, "react.jsx", srcPath.javascript),
236
236
  contents: await fetch(`/api/templates/${file}`).then(res => res.text()),
237
237
  }))
238
238
  );
239
239
 
240
- await fetch(`/api/source/generateRealFile`, {
241
- method: "POST",
242
- headers: { "Content-Type": "application/json" },
243
- body: JSON.stringify({ list: params })
244
- });
245
-
246
- return;
247
-
248
- return await new PromptTemplate({
249
- template,
250
- inputVariables: Object.keys(params),
251
- }).format(params);
252
-
253
- const response3 = await fetch(`/api/source/generateRealFile`, {
254
- method: "POST",
255
- headers: { "Content-Type": "application/json" },
256
- body: JSON.stringify({
257
- fileNm: filePath,
258
- contents: src,
259
- })
260
- });
240
+ api.post(`/api/source/generateRealFile`, { list: params });
261
241
  };
262
242
 
263
243
  #generateTmplFile = async (promptFile, generateFileName, params) => {
@@ -268,16 +248,6 @@ export class IdeAi
268
248
  fileNm: generateFileName,
269
249
  contents: src,
270
250
  });
271
- /**
272
- await fetch(`/api/source/generateTmplFile`, {
273
- method: "POST",
274
- headers: { "Content-Type": "application/json" },
275
- body: JSON.stringify({
276
- fileNm: generateFileName,
277
- contents: src,
278
- })
279
- });
280
- */
281
251
 
282
252
  return src;
283
253
  };
@@ -320,71 +290,64 @@ export class IdeAi
320
290
 
321
291
  generateSourceClient = async (userPrompt) => {
322
292
 
323
- try {
324
- this.#createModel();
325
-
326
- const what = await this.#what(userPrompt);
327
- this.#parent.addMessage("명령을 이해했습니다.");
328
-
329
- const where = await this.#where(userPrompt, this.#getMenuInfo(), await this.#getTableList());
330
- this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.")
331
-
332
- console.log(where);
333
-
334
- const srcPath = this.#getSourcePath(where.menu.url);
335
-
336
- console.log(srcPath);
293
+ console.log(import.meta.env.VITE_REACT_PROJECT_NAME);
337
294
 
295
+ return;
338
296
 
297
+ this.#createModel();
339
298
 
340
- const columnInfo = await this.#getColumnInfo(where.table);
299
+ const what = await this.#what(userPrompt);
300
+ this.#parent.addMessage("명령을 이해했습니다.");
341
301
 
342
- const mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/BuildMyBatisMapper.txt", "mybatis.xml", {
343
- userPrompt: userPrompt,
344
- resultType: srcPath.resultType,
345
- namespace: srcPath.namespace,
346
- tableDefinitions: columnInfo
347
- });
348
- this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
302
+ const where = await this.#where(userPrompt, this.#getMenuInfo(), await this.#getTableList());
303
+ this.#parent.addMessage("대상 메뉴와 테이블을 찾았습니다.")
349
304
 
350
- const serviceSrc = await this.#generateTmplFile("/prompts/meta/BuildService.txt", "service.java", {
351
- userPrompt: userPrompt,
352
- baseClass: srcPath.baseClass,
353
- myBatisPath: srcPath.mybatis,
354
- namespace: srcPath.namespace,
355
- package: srcPath.package + ".service",
356
- mybatisXmlSource: mybatisXmlSource,
357
- });
358
- this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
305
+ console.log(where);
359
306
 
360
- const controllerSrc = await this.#generateTmplFile("/prompts/meta/BuildController.txt", "controller.java", {
361
- userPrompt: userPrompt,
362
- baseClass: srcPath.baseClass,
363
- menuUrl: where.menu.url,
364
- package: srcPath.package + ".controller",
365
- serviceSource: serviceSrc,
366
- });
367
- this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
307
+ const srcPath = this.#getSourcePath(where.menu.url);
368
308
 
369
- const jsSrc = await this.#generateTmplFile("/prompts/meta/BuildReactJsx.txt", "react.jsx", {
370
- userPrompt: userPrompt,
371
- menuUrl: where.menu.url,
372
- menuName: where.menu.name,
373
- baseClass: srcPath.baseClass,
374
- controllerSource: controllerSrc,
375
- tableDefinitions: columnInfo,
376
- });
377
- this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
309
+ console.log(srcPath);
378
310
 
379
- return "OKKKK";
311
+ const columnInfo = await this.#getColumnInfo(where.table);
380
312
 
381
- await this.#generateRealFile(where);
382
- }
383
- catch (error) {
384
- throw error;
385
- //console.log("========================");
386
- }
313
+ const mybatisXmlSource = await this.#generateTmplFile("/prompts/meta/BuildMyBatisMapper.txt", "mybatis.xml", {
314
+ userPrompt: userPrompt,
315
+ resultType: srcPath.resultType,
316
+ namespace: srcPath.namespace,
317
+ tableDefinitions: columnInfo
318
+ });
319
+ this.#parent.addMessage("MyBatis 소스파일을 생성했습니다.");
320
+
321
+ const serviceSrc = await this.#generateTmplFile("/prompts/meta/BuildService.txt", "service.java", {
322
+ userPrompt: userPrompt,
323
+ baseClass: srcPath.baseClass,
324
+ myBatisPath: srcPath.mybatis,
325
+ namespace: srcPath.namespace,
326
+ package: srcPath.package + ".service",
327
+ mybatisXmlSource: mybatisXmlSource,
328
+ });
329
+ this.#parent.addMessage("Java(Service) 소스파일을 생성했습니다.");
330
+
331
+ const controllerSrc = await this.#generateTmplFile("/prompts/meta/BuildController.txt", "controller.java", {
332
+ userPrompt: userPrompt,
333
+ baseClass: srcPath.baseClass,
334
+ menuUrl: where.menu.url,
335
+ package: srcPath.package + ".controller",
336
+ serviceSource: serviceSrc,
337
+ });
338
+ this.#parent.addMessage("Java(Controller) 소스파일을 생성했습니다.");
339
+
340
+ const jsSrc = await this.#generateTmplFile("/prompts/meta/BuildReactJsx.txt", "react.jsx", {
341
+ userPrompt: userPrompt,
342
+ menuUrl: where.menu.url,
343
+ menuName: where.menu.name,
344
+ baseClass: srcPath.baseClass,
345
+ controllerSource: controllerSrc,
346
+ tableDefinitions: columnInfo,
347
+ });
348
+ this.#parent.addMessage("Jsx(React) 소스파일을 생성했습니다.");
387
349
 
350
+ await this.#generateRealFile(srcPath);
388
351
 
389
352
  return "OK";
390
353
  }