@autobe/compiler 0.18.0 → 0.20.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.
Files changed (43) hide show
  1. package/lib/AutoBeTypeScriptCompiler.js +7 -8
  2. package/lib/AutoBeTypeScriptCompiler.js.map +1 -1
  3. package/lib/interface/AutoBeInterfaceCompiler.js +2 -2
  4. package/lib/interface/AutoBeInterfaceCompiler.js.map +1 -1
  5. package/lib/prisma/validatePrismaApplication.js +259 -73
  6. package/lib/prisma/validatePrismaApplication.js.map +1 -1
  7. package/lib/prisma/writePrismaApplication.js +1 -2
  8. package/lib/prisma/writePrismaApplication.js.map +1 -1
  9. package/lib/raw/AutoBeCompilerRealizeTemplate.js +4 -3
  10. package/lib/raw/AutoBeCompilerRealizeTemplate.js.map +1 -1
  11. package/lib/raw/AutoBeCompilerTestTemplate.js +1 -1
  12. package/lib/raw/nestjs.json +7 -7
  13. package/lib/raw/test.json +2 -2
  14. package/lib/realize/writeRealizeControllers.js +10 -3
  15. package/lib/realize/writeRealizeControllers.js.map +1 -1
  16. package/lib/test/AutoBeTestCompiler.js +7 -8
  17. package/lib/test/AutoBeTestCompiler.js.map +1 -1
  18. package/lib/utils/FilePrinter.js +11 -11
  19. package/lib/utils/FilePrinter.js.map +1 -1
  20. package/lib/utils/shrinkCompileResult.d.ts +3 -0
  21. package/lib/utils/shrinkCompileResult.js +17 -0
  22. package/lib/utils/shrinkCompileResult.js.map +1 -0
  23. package/package.json +14 -9
  24. package/src/AutoBeTypeScriptCompiler.ts +12 -13
  25. package/src/interface/AutoBeInterfaceCompiler.ts +3 -3
  26. package/src/prisma/validatePrismaApplication.ts +265 -79
  27. package/src/prisma/writePrismaApplication.ts +1 -2
  28. package/src/raw/AutoBeCompilerRealizeTemplate.ts +4 -3
  29. package/src/raw/AutoBeCompilerTestTemplate.ts +1 -1
  30. package/src/raw/nestjs.json +7 -7
  31. package/src/raw/test.json +2 -2
  32. package/src/realize/writeRealizeControllers.ts +38 -4
  33. package/src/test/AutoBeTestCompiler.ts +7 -8
  34. package/src/utils/FilePrinter.ts +10 -9
  35. package/src/utils/shrinkCompileResult.ts +16 -0
  36. package/lib/interface/createMigrateApplication.d.ts +0 -3
  37. package/lib/interface/createMigrateApplication.js +0 -15
  38. package/lib/interface/createMigrateApplication.js.map +0 -1
  39. package/lib/utils/MapUtil.d.ts +0 -3
  40. package/lib/utils/MapUtil.js +0 -16
  41. package/lib/utils/MapUtil.js.map +0 -1
  42. package/src/interface/createMigrateApplication.ts +0 -18
  43. package/src/utils/MapUtil.ts +0 -10
@@ -14,11 +14,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.AutoBeTypeScriptCompiler = void 0;
16
16
  const transform_1 = __importDefault(require("@nestia/core/lib/transform"));
17
- const embed_typescript_1 = require("embed-typescript");
17
+ const embed_eslint_1 = require("embed-eslint");
18
18
  const typescript_1 = __importDefault(require("typescript"));
19
19
  const transform_2 = __importDefault(require("typia/lib/transform"));
20
20
  const nestjs_json_1 = __importDefault(require("./raw/nestjs.json"));
21
21
  const FilePrinter_1 = require("./utils/FilePrinter");
22
+ const shrinkCompileResult_1 = require("./utils/shrinkCompileResult");
22
23
  /**
23
24
  * Official TypeScript compiler for final code validation and quality assurance.
24
25
  *
@@ -49,7 +50,7 @@ class AutoBeTypeScriptCompiler {
49
50
  return __awaiter(this, void 0, void 0, function* () {
50
51
  var _a, _b;
51
52
  const alias = (_a = props.package) !== null && _a !== void 0 ? _a : "@ORGANIZATION/PROJECT-api";
52
- const compiler = new embed_typescript_1.EmbedTypeScript({
53
+ const compiler = new embed_eslint_1.EmbedEsLint({
53
54
  external: nestjs_json_1.default,
54
55
  compilerOptions: {
55
56
  target: typescript_1.default.ScriptTarget.ESNext,
@@ -77,13 +78,11 @@ class AutoBeTypeScriptCompiler {
77
78
  }),
78
79
  ],
79
80
  }),
81
+ rules: {
82
+ "no-floating-promises": "error",
83
+ },
80
84
  });
81
- const result = yield compiler.compile(Object.assign(Object.assign({}, props.files), ((_b = props.prisma) !== null && _b !== void 0 ? _b : {})));
82
- return result.type === "success"
83
- ? { type: "success" }
84
- : result.type === "failure"
85
- ? { type: "failure", diagnostics: result.diagnostics }
86
- : { type: "exception", error: result.error };
85
+ return (0, shrinkCompileResult_1.shrinkCompileResult)(compiler.compile(Object.assign(Object.assign({}, props.files), ((_b = props.prisma) !== null && _b !== void 0 ? _b : {}))));
87
86
  });
88
87
  }
89
88
  getExternal(location) {
@@ -1 +1 @@
1
- {"version":3,"file":"AutoBeTypeScriptCompiler.js","sourceRoot":"","sources":["../src/AutoBeTypeScriptCompiler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,2EAA6D;AAC7D,uDAA2E;AAC3E,4DAA4B;AAC5B,oEAAiD;AAEjD,oEAA+C;AAC/C,qDAAkD;AAElD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,wBAAwB;IACtB,OAAO,CAClB,KAAoC;;;YAEpC,MAAM,KAAK,GAAW,MAAA,KAAK,CAAC,OAAO,mCAAI,2BAA2B,CAAC;YACnE,MAAM,QAAQ,GAAoB,IAAI,kCAAe,CAAC;gBACpD,QAAQ,EAAE,qBAAwC;gBAClD,eAAe,EAAE;oBACf,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM;oBAC9B,MAAM,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;oBAC9B,kBAAkB,EAAE,IAAI;oBACxB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC;wBACtB,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC;qBACpC;oBACD,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,IAAI;oBACrB,sBAAsB,EAAE,IAAI;oBAC5B,qBAAqB,EAAE,IAAI;oBAC3B,iBAAiB,EAAE,IAAI;iBACxB;gBACD,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;oBACvC,MAAM,EAAE;wBACN,IAAA,mBAAc,EACZ,OAAO,EACP,EAAE,EACF;4BACE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;yBAClD,CACF;wBACD,IAAA,mBAAmB,EACjB,OAAO,EACP,EAAE,EACF;4BACE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;yBAClD,CACF;qBACF;iBACF,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,MAAM,GAA2B,MAAM,QAAQ,CAAC,OAAO,iCACxD,KAAK,CAAC,KAAK,GACX,CAAC,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC,EACvB,CAAC;YAEH,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS;gBAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;gBACrB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;oBACzB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;oBACtD,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACnD,CAAC;KAAA;IAEY,WAAW,CAAC,QAAgB;;;YACvC,OAAO,MAAC,qBAAyC,CAAC,QAAQ,CAAC,mCAAI,SAAS,CAAC;QAC3E,CAAC;KAAA;IAEM,QAAQ,CAAC,MAAc;QAC5B,OAAO,yBAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AA9DD,4DA8DC"}
1
+ {"version":3,"file":"AutoBeTypeScriptCompiler.js","sourceRoot":"","sources":["../src/AutoBeTypeScriptCompiler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,2EAA6D;AAC7D,+CAA2C;AAC3C,4DAA4B;AAC5B,oEAAiD;AAEjD,oEAA+C;AAC/C,qDAAkD;AAClD,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,wBAAwB;IACtB,OAAO,CAClB,KAAoC;;;YAEpC,MAAM,KAAK,GAAW,MAAA,KAAK,CAAC,OAAO,mCAAI,2BAA2B,CAAC;YACnE,MAAM,QAAQ,GAAgB,IAAI,0BAAW,CAAC;gBAC5C,QAAQ,EAAE,qBAAwC;gBAClD,eAAe,EAAE;oBACf,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM;oBAC9B,MAAM,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;oBAC9B,kBAAkB,EAAE,IAAI;oBACxB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC;wBACtB,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC;qBACpC;oBACD,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,IAAI;oBACrB,sBAAsB,EAAE,IAAI;oBAC5B,qBAAqB,EAAE,IAAI;oBAC3B,iBAAiB,EAAE,IAAI;iBACxB;gBACD,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;oBACvC,MAAM,EAAE;wBACN,IAAA,mBAAc,EACZ,OAAO,EACP,EAAE,EACF;4BACE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;yBAClD,CACF;wBACD,IAAA,mBAAmB,EACjB,OAAO,EACP,EAAE,EACF;4BACE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;yBAClD,CACF;qBACF;iBACF,CAAC;gBACF,KAAK,EAAE;oBACL,sBAAsB,EAAE,OAAO;iBAChC;aACF,CAAC,CAAC;YACH,OAAO,IAAA,yCAAmB,EACxB,QAAQ,CAAC,OAAO,iCACX,KAAK,CAAC,KAAK,GACX,CAAC,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC,EACvB,CACH,CAAC;QACJ,CAAC;KAAA;IAEY,WAAW,CAAC,QAAgB;;;YACvC,OAAO,MAAC,qBAAyC,CAAC,QAAQ,CAAC,mCAAI,SAAS,CAAC;QAC3E,CAAC;KAAA;IAEM,QAAQ,CAAC,MAAc;QAC5B,OAAO,yBAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AA5DD,4DA4DC"}
@@ -11,10 +11,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AutoBeInterfaceCompiler = void 0;
13
13
  const utils_1 = require("@autobe/utils");
14
+ const migrate_1 = require("@nestia/migrate");
14
15
  const AutoBeCompilerInterfaceTemplate_1 = require("../raw/AutoBeCompilerInterfaceTemplate");
15
16
  const ArrayUtil_1 = require("../utils/ArrayUtil");
16
17
  const FilePrinter_1 = require("../utils/FilePrinter");
17
- const createMigrateApplication_1 = require("./createMigrateApplication");
18
18
  /**
19
19
  * Custom Interface compiler that handles API specification and NestJS
20
20
  * application generation.
@@ -41,7 +41,7 @@ const createMigrateApplication_1 = require("./createMigrateApplication");
41
41
  class AutoBeInterfaceCompiler {
42
42
  write(document) {
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const migrate = (0, createMigrateApplication_1.createMigrateApplication)(document);
44
+ const migrate = new migrate_1.NestiaMigrateApplication((0, utils_1.transformOpenApiDocument)(document));
45
45
  const files = migrate.nest({
46
46
  keyword: true,
47
47
  simulate: true,
@@ -1 +1 @@
1
- {"version":3,"file":"AutoBeInterfaceCompiler.js","sourceRoot":"","sources":["../../src/interface/AutoBeInterfaceCompiler.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgF;AAIhF,4FAAyF;AACzF,kDAA+C;AAC/C,sDAAmD;AACnD,yEAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,uBAAuB;IACrB,KAAK,CAChB,QAAiC;;YAEjC,MAAM,OAAO,GACX,IAAA,mDAAwB,EAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,KAAK,GAA2B,OAAO,CAAC,IAAI,CAAC;gBACjD,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE;oBACN,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE,0DAA0D;iBAClE;aACF,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,WAAW,CAAC;gBACxB,GAAG,CAAC,MAAM,qBAAS,CAAC,QAAQ,CAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EACrB,KAAqB,EAAE,0CAAhB,CAAC,GAAG,EAAE,KAAK,CAAC;oBAAK,OAAA;wBACtB,GAAG;wBACH,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK;4BACpD,CAAC,CAAC,MAAM,yBAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACnC,CAAC,CAAC,KAAK;qBACV,CAAA;kBAAA,CACF,CAAC;gBACF;oBACE,2BAA2B;oBAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtD;gBACD,GAAG,MAAM,CAAC,OAAO,CAAC,iEAA+B,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,SAAS,CACpB,QAAiC;;YAEjC,OAAO,IAAA,gCAAwB,EAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;KAAA;IAEY,MAAM,CACjB,QAA2B;;YAE3B,OAAO,IAAA,6BAAqB,EAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;KAAA;IAEY,WAAW;;YACtB,OAAO,iEAA+B,CAAC;QACzC,CAAC;KAAA;CACF;AAhDD,0DAgDC"}
1
+ {"version":3,"file":"AutoBeInterfaceCompiler.js","sourceRoot":"","sources":["../../src/interface/AutoBeInterfaceCompiler.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgF;AAChF,6CAA2D;AAG3D,4FAAyF;AACzF,kDAA+C;AAC/C,sDAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,uBAAuB;IACrB,KAAK,CAChB,QAAiC;;YAEjC,MAAM,OAAO,GAA6B,IAAI,kCAAwB,CACpE,IAAA,gCAAwB,EAAC,QAAQ,CAAC,CACnC,CAAC;YACF,MAAM,KAAK,GAA2B,OAAO,CAAC,IAAI,CAAC;gBACjD,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE;oBACN,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE,0DAA0D;iBAClE;aACF,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,WAAW,CAAC;gBACxB,GAAG,CAAC,MAAM,qBAAS,CAAC,QAAQ,CAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EACrB,KAAqB,EAAE,0CAAhB,CAAC,GAAG,EAAE,KAAK,CAAC;oBAAK,OAAA;wBACtB,GAAG;wBACH,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK;4BACpD,CAAC,CAAC,MAAM,yBAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACnC,CAAC,CAAC,KAAK;qBACV,CAAA;kBAAA,CACF,CAAC;gBACF;oBACE,2BAA2B;oBAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtD;gBACD,GAAG,MAAM,CAAC,OAAO,CAAC,iEAA+B,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,SAAS,CACpB,QAAiC;;YAEjC,OAAO,IAAA,gCAAwB,EAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;KAAA;IAEY,MAAM,CACjB,QAA2B;;YAE3B,OAAO,IAAA,6BAAqB,EAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;KAAA;IAEY,WAAW;;YACtB,OAAO,iEAA+B,CAAC;QACzC,CAAC;KAAA;CACF;AAjDD,0DAiDC"}
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validatePrismaApplication = validatePrismaApplication;
4
4
  const utils_1 = require("@autobe/utils");
5
5
  const tstl_1 = require("tstl");
6
- const MapUtil_1 = require("../utils/MapUtil");
7
6
  function validatePrismaApplication(application) {
8
7
  const dict = new Map(application.files
9
8
  .map((file, fi) => file.models.map((model, mi) => [
@@ -49,7 +48,7 @@ function validateDuplicatedFiles(app) {
49
48
  const group = new Map();
50
49
  app.files.forEach((file, fileIndex) => {
51
50
  const container = { file, index: fileIndex };
52
- MapUtil_1.MapUtil.take(group, file.filename, () => []).push(container);
51
+ utils_1.MapUtil.take(group, file.filename, () => []).push(container);
53
52
  });
54
53
  const errors = [];
55
54
  for (const array of group.values())
@@ -59,15 +58,16 @@ function validateDuplicatedFiles(app) {
59
58
  path: `application.files[${container.index}]`,
60
59
  table: null,
61
60
  field: null,
62
- message: [
63
- `File ${container.file.filename} is duplicated.`,
64
- "",
65
- "Accessors of the other duplicated files are:",
66
- "",
67
- ...array
68
- .filter((_oppo, j) => i !== j)
69
- .map((oppo) => `- application.files[${oppo.index}]`),
70
- ].join("\n"),
61
+ message: utils_1.StringUtil.trim `
62
+ File ${container.file.filename} is duplicated.
63
+
64
+ Accessors of the other duplicated files are:
65
+
66
+ ${array
67
+ .filter((_oppo, j) => i !== j)
68
+ .map((oppo) => `- application.files[${oppo.index}]`)
69
+ .join("\n")},
70
+ `,
71
71
  });
72
72
  });
73
73
  return errors;
@@ -82,7 +82,7 @@ function validateDuplicatedModels(app) {
82
82
  fileIndex,
83
83
  modelIndex,
84
84
  };
85
- MapUtil_1.MapUtil.take(modelContainers, model.name, () => []).push(container);
85
+ utils_1.MapUtil.take(modelContainers, model.name, () => []).push(container);
86
86
  });
87
87
  });
88
88
  const errors = [];
@@ -93,15 +93,16 @@ function validateDuplicatedModels(app) {
93
93
  path: `application.files[${container.fileIndex}].models[${container.modelIndex}]`,
94
94
  table: container.model.name,
95
95
  field: null,
96
- message: [
97
- `Model ${container.model.name} is duplicated.`,
98
- "",
99
- "Accessors of the other duplicated models are:",
100
- "",
101
- ...array
102
- .filter((_oppo, j) => i !== j)
103
- .map((oppo) => `- application.files[${oppo.fileIndex}].models[${oppo.modelIndex}]`),
104
- ].join("\n"),
96
+ message: utils_1.StringUtil.trim `
97
+ Model ${container.model.name} is duplicated.
98
+
99
+ Accessors of the other duplicated models are:
100
+
101
+ ${array
102
+ .filter((_oppo, j) => i !== j)
103
+ .map((oppo) => `- application.files[${oppo.fileIndex}].models[${oppo.modelIndex}]`)
104
+ .join("\n")},
105
+ `,
105
106
  });
106
107
  });
107
108
  return errors;
@@ -110,9 +111,12 @@ function validateDuplicatedFields(dict, model, accessor) {
110
111
  const errors = [];
111
112
  // FIND DUPLICATED FIELDS
112
113
  const group = new Map();
113
- MapUtil_1.MapUtil.take(group, model.primaryField.name, () => []).push(`${accessor}.primaryField.name`);
114
- model.foreignFields.forEach((field, i) => MapUtil_1.MapUtil.take(group, field.name, () => []).push(`${accessor}.foreignFields[${i}].name`));
115
- model.plainFields.forEach((field, i) => MapUtil_1.MapUtil.take(group, field.name, () => []).push(`${accessor}.plainFields[${i}].name`));
114
+ utils_1.MapUtil.take(group, model.primaryField.name, () => []).push(`${accessor}.primaryField.name`);
115
+ model.foreignFields.forEach((field, i) => {
116
+ utils_1.MapUtil.take(group, field.name, () => []).push(`${accessor}.foreignFields[${i}].name`);
117
+ utils_1.MapUtil.take(group, field.relation.name, () => []).push(`${accessor}.foreignFields[${i}].relation.name`);
118
+ });
119
+ model.plainFields.forEach((field, i) => utils_1.MapUtil.take(group, field.name, () => []).push(`${accessor}.plainFields[${i}].name`));
116
120
  for (const [field, array] of group)
117
121
  if (array.length !== 1)
118
122
  array.forEach((path, i) => {
@@ -120,13 +124,16 @@ function validateDuplicatedFields(dict, model, accessor) {
120
124
  path,
121
125
  table: model.name,
122
126
  field,
123
- message: [
124
- `Field ${field} is duplicated.`,
125
- "",
126
- "Accessors of the other duplicated fields are:",
127
- "",
128
- ...array.filter((_oppo, j) => i !== j).map((a) => `- ${a}`),
129
- ].join("\n"),
127
+ message: utils_1.StringUtil.trim `
128
+ Field ${field} is duplicated.
129
+
130
+ Accessors of the other duplicated fields are:
131
+
132
+ ${array
133
+ .filter((_oppo, j) => i !== j)
134
+ .map((a) => `- ${a}`)
135
+ .join("\n")},
136
+ `,
130
137
  });
131
138
  });
132
139
  // FIND TABLE NAMED FIELDS
@@ -137,12 +144,37 @@ function validateDuplicatedFields(dict, model, accessor) {
137
144
  table: model.name,
138
145
  field: field.name,
139
146
  message: utils_1.StringUtil.trim `
140
- There's a same named table in the application.
147
+ Field name conflicts with an existing table name.
148
+
149
+ **What happened?**
150
+ The field "${field.name}" in model "${model.name}" has the same name as another table "${field.name}".
151
+ This can cause confusion and potential issues in the generated code.
141
152
 
142
- Check whether the field has been designed for denormalization
143
- like pre-calculation. If do so, remove the field.
153
+ **Why is this a problem?**
154
+ - Naming conflicts can lead to ambiguous references in your code
155
+ - It may cause issues with Prisma's relation inference
156
+ - It makes the schema harder to understand and maintain
144
157
 
145
- Otherwise, change the field name to something else.
158
+ **How to fix this:**
159
+
160
+ 1. **If this is a denormalization field (pre-calculated value):**
161
+ - Consider if this field is really necessary
162
+ - If it's storing aggregated data from the related table, it might be better to calculate it dynamically
163
+ - Remove the field if it's redundant
164
+
165
+ 2. **If this is a legitimate field:**
166
+ - Rename the field to be more descriptive
167
+ - Good naming examples:
168
+ - Instead of "user", use "user_name" or "user_id"
169
+ - Instead of "order", use "order_status" or "order_count"
170
+ - Instead of "product", use "product_name" or "product_code"
171
+
172
+ 3. **Naming best practices:**
173
+ - Use specific, descriptive names that indicate the field's purpose
174
+ - Avoid using table names as field names
175
+ - Consider adding a suffix or prefix to clarify the field's role
176
+
177
+ Please rename the field or remove it if unnecessary.
146
178
  `,
147
179
  });
148
180
  });
@@ -168,13 +200,16 @@ function validateDuplicatedIndexes(model, accessor) {
168
200
  path,
169
201
  table: model.name,
170
202
  field: null,
171
- message: [
172
- `Duplicated index found (${fieldNames.join(", ")}).`,
173
- "",
174
- "Accessors of the other duplicated indexes are:",
175
- "",
176
- ...array.filter((_oppo, j) => i !== j).map((a) => `- ${a}`),
177
- ].join("\n"),
203
+ message: utils_1.StringUtil.trim `
204
+ Duplicated index found (${fieldNames.join(", ")}).
205
+
206
+ Accessors of the other duplicated indexes are:
207
+
208
+ ${array
209
+ .filter((_oppo, j) => i !== j)
210
+ .map((a) => `- ${a}`)
211
+ .join("\n")},
212
+ `,
178
213
  });
179
214
  });
180
215
  // SUBSET RELATIONS
@@ -208,13 +243,44 @@ function validateDuplicatedIndexes(model, accessor) {
208
243
  table: model.name,
209
244
  field: null,
210
245
  message: utils_1.StringUtil.trim `
211
- Subset unique index found (${subset.join(", ")}).
212
-
213
- You have defined an unique index with multiple fields,
214
- but its subset is already defined as an unique index.
215
-
216
- Consider to change the unique index to a plain index,
217
- or drop the redundant unique index please.
246
+ Redundant subset unique index detected.
247
+
248
+ **What is a subset unique index problem?**
249
+ When you have a unique index on multiple fields, any subset of those fields is automatically unique too.
250
+ This is a fundamental property of unique constraints in databases.
251
+
252
+ **Current situation:**
253
+ - You have a unique index on: (${unique.fieldNames.join(", ")})
254
+ - But there's already a unique index on its subset: (${subset.join(", ")})
255
+ - This makes the larger unique index redundant for uniqueness purposes
256
+
257
+ **Why is this a problem?**
258
+ 1. **Logical redundancy**: If (A) is unique, then (A, B) is automatically unique
259
+ 2. **Performance overhead**: Maintaining unnecessary indexes slows down write operations
260
+ 3. **Storage waste**: Each index consumes disk space
261
+ 4. **Confusion**: It's unclear which uniqueness constraint is the intended one
262
+
263
+ **Example to illustrate:**
264
+ If email is unique, then (email, name) is automatically unique because:
265
+ - No two records can have the same email
266
+ - Therefore, no two records can have the same (email, name) combination
267
+
268
+ **How to fix:**
269
+ Choose one of these solutions based on your needs:
270
+
271
+ 1. **If you need uniqueness only:**
272
+ - Keep just the subset unique index: (${subset.join(", ")})
273
+ - Remove the larger unique index
274
+
275
+ 2. **If you need the multi-field index for query performance:**
276
+ - Keep the subset as unique index: (${subset.join(", ")})
277
+ - Change the larger index to a plain (non-unique) index for performance
278
+
279
+ 3. **If the subset unique was added by mistake:**
280
+ - Remove the subset unique index
281
+ - Keep the multi-field unique index
282
+
283
+ Please review your uniqueness requirements and adjust accordingly.
218
284
  `,
219
285
  });
220
286
  });
@@ -231,12 +297,42 @@ function validateDuplicatedIndexes(model, accessor) {
231
297
  table: model.name,
232
298
  field: null,
233
299
  message: utils_1.StringUtil.trim `
234
- Superset plain index found (${y.fieldNames.join(", ")}).
235
-
236
- You have defined a plain index with multiple fields,
237
- but its superset is already defined as another plain index.
238
-
239
- As subset index is vulnerable, drop this plain index please.
300
+ Inefficient subset index detected - superset index exists.
301
+
302
+ **What is a subset/superset index problem?**
303
+ In database indexing, when you have an index on (A, B, C), it can efficiently serve queries
304
+ that filter by A, or by (A, B), or by (A, B, C). This is called index prefix matching.
305
+
306
+ **Current situation:**
307
+ - You have a plain index on: (${x.fieldNames.join(", ")})
308
+ - But there's already a plain index on its superset: (${y.fieldNames.join(", ")})
309
+ - The subset index is redundant because the superset can handle the same queries
310
+
311
+ **Why is this a problem?**
312
+ 1. **Query efficiency**: The superset index can handle all queries the subset can
313
+ 2. **Storage waste**: You're maintaining two indexes where one would suffice
314
+ 3. **Write performance**: Each index slows down INSERT, UPDATE, and DELETE operations
315
+ 4. **Maintenance overhead**: More indexes mean more work for the database
316
+
317
+ **How indexes work (example):**
318
+ If you have an index on (country, city, street):
319
+ - ✅ Can efficiently find by country
320
+ - ✅ Can efficiently find by country + city
321
+ - ✅ Can efficiently find by country + city + street
322
+ - ❌ Cannot efficiently find by city alone
323
+ - ❌ Cannot efficiently find by street alone
324
+
325
+ **How to fix:**
326
+ Remove the subset index (${x.fieldNames.join(", ")}) because:
327
+ - The superset index (${y.fieldNames.join(", ")}) already covers these queries
328
+ - You'll save storage space and improve write performance
329
+ - Query performance will remain the same
330
+
331
+ **When to keep both indexes:**
332
+ Only if the subset index is UNIQUE (which it isn't in this case), as unique
333
+ constraints serve a different purpose than performance optimization.
334
+
335
+ Please remove the redundant subset index.
240
336
  `,
241
337
  });
242
338
  });
@@ -315,9 +411,37 @@ function validateIndexes(model, accessor) {
315
411
  table: model.name,
316
412
  field: null,
317
413
  message: utils_1.StringUtil.trim `
318
- GIN index can only be used on string typed field.
319
- However, the target field ${gin.fieldName} does not exist
320
- in the {@link plainFields}.
414
+ GIN index cannot be applied to this field.
415
+
416
+ **What is a GIN index?**
417
+ GIN (Generalized Inverted Index) is a special index type in PostgreSQL designed for
418
+ full-text search and operations on complex data types. In AutoBE, GIN indexes are
419
+ used exclusively for string fields to enable efficient text searching.
420
+
421
+ **Current problem:**
422
+ The field "${gin.fieldName}" specified for GIN index does not exist in the plain fields
423
+ of model "${model.name}".
424
+
425
+ **Possible causes:**
426
+ 1. The field name is misspelled
427
+ 2. The field is a foreign key field (not a plain field)
428
+ 3. The field was removed but the index definition remained
429
+
430
+ **How to fix:**
431
+ 1. Check if the field name is correct
432
+ 2. Ensure the field exists in the plainFields array
433
+ 3. Make sure the field is of type "string" (GIN indexes only work with strings)
434
+ 4. If the field doesn't exist, either:
435
+ - Add the missing string field to plainFields
436
+ - Remove this GIN index definition
437
+
438
+ **Example of correct GIN index usage:**
439
+ plainFields: [
440
+ { name: "content", type: "string" } // ✓ Can use GIN index
441
+ ]
442
+ ginIndexes: [
443
+ { fieldName: "content" } // ✓ Correct
444
+ ]
321
445
  `,
322
446
  });
323
447
  else if (model.plainFields[pIndex].type !== "string")
@@ -326,11 +450,43 @@ function validateIndexes(model, accessor) {
326
450
  table: model.name,
327
451
  field: model.plainFields[pIndex].name,
328
452
  message: utils_1.StringUtil.trim `
329
- GIN index can only be used on string typed field.
330
- However, the target field ${gin.fieldName} is not string,
331
- but ${model.plainFields[pIndex].type}.
332
-
333
- - accessor of the wrong typed field: ${`${accessor}.plainFields[${pIndex}].type`},
453
+ GIN index type mismatch - requires string field.
454
+
455
+ **What is a GIN index?**
456
+ GIN (Generalized Inverted Index) is PostgreSQL's specialized index for full-text search.
457
+ It's designed to efficiently search within text content, making it perfect for features like:
458
+ - Search functionality in articles or posts
459
+ - Finding keywords in product descriptions
460
+ - Filtering by text content
461
+
462
+ **Current problem:**
463
+ You're trying to apply a GIN index to field "${gin.fieldName}" which is of type "${model.plainFields[pIndex].type}".
464
+ GIN indexes can ONLY be applied to "string" type fields.
465
+
466
+ **Why string fields only?**
467
+ GIN indexes work by breaking down text into searchable tokens (words, phrases).
468
+ Other data types like numbers, booleans, or dates don't have this text structure.
469
+
470
+ **How to fix:**
471
+
472
+ 1. **If you need text search on this field:**
473
+ - Change the field type to "string"
474
+ - Example: If storing a product code as number, consider storing as string instead
475
+
476
+ 2. **If the field should remain as ${model.plainFields[pIndex].type}:**
477
+ - Remove the GIN index for this field
478
+ - Use a regular index instead (plainIndexes)
479
+ - Consider if you really need an index on this field
480
+
481
+ 3. **Alternative indexing strategies:**
482
+ - For ${model.plainFields[pIndex].type} fields, use plainIndexes for general performance
483
+ - For unique ${model.plainFields[pIndex].type} values, use uniqueIndexes
484
+ - GIN indexes should be reserved for text search scenarios only
485
+
486
+ **Location of the field:**
487
+ - Field definition: ${`${accessor}.plainFields[${pIndex}]`}
488
+
489
+ Please either change the field type to "string" or remove the GIN index.
334
490
  `,
335
491
  });
336
492
  },
@@ -340,6 +496,7 @@ function validateIndexes(model, accessor) {
340
496
  function validateReferences(model, accessor, dict) {
341
497
  const errors = [];
342
498
  model.foreignFields.forEach((field, i) => {
499
+ // DUPLICATED NAME
343
500
  const target = dict.get(field.relation.targetModel);
344
501
  if (target === undefined) {
345
502
  // CHECK EXISTENCE
@@ -361,22 +518,51 @@ function validateReferences(model, accessor, dict) {
361
518
  message: utils_1.StringUtil.trim `
362
519
  Cross-reference dependency detected between models.
363
520
 
364
- - accessor of opposite side: application.files[${target.fileIndex}].models[${target.modelIndex}].foreignFields[${j}].relation.targetModel
521
+ **What is Cross-reference dependency?**
522
+ A cross-reference dependency (also known as circular dependency) occurs when two models
523
+ reference each other through foreign key fields. This creates a circular relationship
524
+ where Model A references Model B, and Model B also references Model A.
525
+
526
+ **Current situation:**
527
+ - ${model.name} model has a foreign key field "${field.name}" that references ${field.relation.targetModel}
528
+ - ${field.relation.targetModel} model also has a foreign key field that references ${model.name}
529
+ - Location of opposite reference: application.files[${target.fileIndex}].models[${target.modelIndex}].foreignFields[${j}].relation.targetModel
530
+
531
+ **Why is this a problem?**
532
+ Circular dependencies can cause issues with:
533
+ - Database initialization (which table to create first?)
534
+ - Data insertion (which record to insert first?)
535
+ - Cascading updates and deletes
536
+ - Query performance and complexity
365
537
 
366
- Cross-references (circular dependencies) are not permitted in AutoBe Prisma schemas.
538
+ **How to fix this:**
539
+ You need to remove one of the foreign key relationships. Here's how to decide:
367
540
 
368
- To resolve this issue:
541
+ 1. **Identify the primary relationship direction**
542
+ - Which model is the "parent" and which is the "child"?
543
+ - Which relationship is essential for your business logic?
544
+ - Example: In User ↔ Profile, User is typically the parent
369
545
 
370
- 1. Remove one of the foreign key fields from either model
371
- 2. Keep only the foreign key that represents the primary relationship direction
372
- 3. Remove any related indexes that reference the deleted foreign key field
546
+ 2. **Remove the redundant foreign key**
547
+ - Keep the foreign key in the child model pointing to the parent
548
+ - Remove the foreign key in the parent model pointing to the child
549
+ - You can still access the reverse relationship through Prisma's implicit relations
373
550
 
374
- The foreign key field to remove is typically:
551
+ 3. **Update any affected indexes**
552
+ - Remove indexes that include the deleted foreign key field
553
+ - Update composite indexes if necessary
375
554
 
376
- - A redundant field that can be computed from the existing relationship
377
- - A field that duplicates information already accessible through the primary relationship
555
+ **Example solution:**
556
+ If you have:
557
+ - User model with profileId foreign key
558
+ - Profile model with userId foreign key
559
+
560
+ You should:
561
+ - Keep userId in Profile (child references parent)
562
+ - Remove profileId from User
563
+ - Access user's profile through: user.profile (Prisma will handle this)
378
564
 
379
- Please eliminate the circular dependency and try again.`,
565
+ Please eliminate the circular dependency and regenerate the schema.`,
380
566
  });
381
567
  }
382
568
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validatePrismaApplication.js","sourceRoot":"","sources":["../../src/prisma/validatePrismaApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validatePrismaApplication.js","sourceRoot":"","sources":["../../src/prisma/validatePrismaApplication.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ exports.writePrismaApplication = writePrismaApplication;
7
7
  const utils_1 = require("@autobe/utils");
8
8
  const crypto_1 = __importDefault(require("crypto"));
9
9
  const ArrayUtil_1 = require("../utils/ArrayUtil");
10
- const MapUtil_1 = require("../utils/MapUtil");
11
10
  function writePrismaApplication(props) {
12
11
  for (const file of props.application.files)
13
12
  for (const model of file.models)
@@ -40,7 +39,7 @@ function writeModel(props) {
40
39
  function fillMappingName(model) {
41
40
  const group = new Map();
42
41
  for (const ff of model.foreignFields) {
43
- MapUtil_1.MapUtil.take(group, ff.relation.targetModel, () => []).push(ff);
42
+ utils_1.MapUtil.take(group, ff.relation.targetModel, () => []).push(ff);
44
43
  if (ff.relation.targetModel == model.name)
45
44
  ff.relation.mappingName = "recursive";
46
45
  }