blend-kit 1.0.1

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 (210) hide show
  1. package/dist/helper/ApiHelper.js +0 -0
  2. package/dist/helper/BasicHelper.js +28 -0
  3. package/dist/helper/CommonHelper.js +10 -0
  4. package/dist/helper/DataHelper.js +241 -0
  5. package/dist/helper/ExpressHelper.js +728 -0
  6. package/dist/helper/FrontEndApiHelper.js +485 -0
  7. package/dist/helper/FrontEndReactApiHelper.js +483 -0
  8. package/dist/helper/MongoHelper.js +143 -0
  9. package/dist/helper/RNHelper.js +560 -0
  10. package/dist/helper/ReactHelper.js +524 -0
  11. package/dist/helper/SectionHelper.js +152 -0
  12. package/dist/helper/fileHelper.js +127 -0
  13. package/dist/helper/grammarHelper/BlendApiGrammarHelper.js +48 -0
  14. package/dist/helper/grammarHelper/BlendBasicGrammarHelper.js +98 -0
  15. package/dist/helper/grammarHelper/BlendDataGrammarHelper.js +47 -0
  16. package/dist/helper/grammarHelper/BlendMDPGrammarHelper.js +29 -0
  17. package/dist/helper/grammarHelper/BlendMongoGrammarHelper.js +51 -0
  18. package/dist/helper/grammarHelper/BlendRNGrammarHelper.js +56 -0
  19. package/dist/helper/grammarHelper/BlendReactGrammarHelper.js +55 -0
  20. package/dist/helper/grammarHelper/GrammarErrorHelper.js +16 -0
  21. package/dist/index.js +159 -0
  22. package/dist/parser/blendApi/src/grammar/BlendApiLexer.js +201 -0
  23. package/dist/parser/blendApi/src/grammar/BlendApiListener.js +3 -0
  24. package/dist/parser/blendApi/src/grammar/BlendApiParser.js +961 -0
  25. package/dist/parser/blendData/src/grammar/BlendDataLexer.js +154 -0
  26. package/dist/parser/blendData/src/grammar/BlendDataListener.js +3 -0
  27. package/dist/parser/blendData/src/grammar/BlendDataParser.js +641 -0
  28. package/dist/parser/blendMDP/src/grammar/BlendMDPLexer.js +151 -0
  29. package/dist/parser/blendMDP/src/grammar/BlendMDPListener.js +3 -0
  30. package/dist/parser/blendMDP/src/grammar/BlendMDPParser.js +490 -0
  31. package/dist/parser/blendMongo/src/grammar/BlendMongoLexer.js +187 -0
  32. package/dist/parser/blendMongo/src/grammar/BlendMongoListener.js +3 -0
  33. package/dist/parser/blendMongo/src/grammar/BlendMongoParser.js +848 -0
  34. package/dist/parser/blendRN/src/grammar/BlendRNLexer.js +172 -0
  35. package/dist/parser/blendRN/src/grammar/BlendRNListener.js +3 -0
  36. package/dist/parser/blendRN/src/grammar/BlendRNParser.js +657 -0
  37. package/dist/parser/blendReact/src/grammar/BlendReactLexer.js +159 -0
  38. package/dist/parser/blendReact/src/grammar/BlendReactListener.js +3 -0
  39. package/dist/parser/blendReact/src/grammar/BlendReactParser.js +644 -0
  40. package/dist/parser/blendbasic/src/grammar/BlendBasicLexer.js +147 -0
  41. package/dist/parser/blendbasic/src/grammar/BlendBasicListener.js +3 -0
  42. package/dist/parser/blendbasic/src/grammar/BlendBasicParser.js +747 -0
  43. package/dist/src/app.js +76 -0
  44. package/dist/src/app.ts +54 -0
  45. package/dist/types/apiOperationTypes.js +13 -0
  46. package/dist/types/basicOperationTypes.js +2 -0
  47. package/dist/types/dataOperationTypes.js +2 -0
  48. package/dist/types/frontendOperationTypes.js +4 -0
  49. package/dist/types/generalTypes.js +0 -0
  50. package/dist/types/mongoOperationTypes.js +12 -0
  51. package/package.json +29 -0
  52. package/src/grammar/.antlr/ApiModuleLexer.interp +71 -0
  53. package/src/grammar/.antlr/ApiModuleLexer.java +194 -0
  54. package/src/grammar/.antlr/ApiModuleLexer.tokens +32 -0
  55. package/src/grammar/.antlr/BlendApi.interp +70 -0
  56. package/src/grammar/.antlr/BlendApi.tokens +44 -0
  57. package/src/grammar/.antlr/BlendApiLexer.interp +89 -0
  58. package/src/grammar/.antlr/BlendApiLexer.java +237 -0
  59. package/src/grammar/.antlr/BlendApiLexer.tokens +44 -0
  60. package/src/grammar/.antlr/BlendApiParser.java +767 -0
  61. package/src/grammar/.antlr/BlendBasic.interp +41 -0
  62. package/src/grammar/.antlr/BlendBasic.tokens +20 -0
  63. package/src/grammar/.antlr/BlendBasicLexer.interp +50 -0
  64. package/src/grammar/.antlr/BlendBasicLexer.java +179 -0
  65. package/src/grammar/.antlr/BlendBasicLexer.tokens +20 -0
  66. package/src/grammar/.antlr/BlendBasicParser.java +599 -0
  67. package/src/grammar/.antlr/BlendData.interp +50 -0
  68. package/src/grammar/.antlr/BlendData.tokens +29 -0
  69. package/src/grammar/.antlr/BlendDataLexer.interp +65 -0
  70. package/src/grammar/.antlr/BlendDataLexer.java +181 -0
  71. package/src/grammar/.antlr/BlendDataLexer.tokens +29 -0
  72. package/src/grammar/.antlr/BlendDataParser.java +520 -0
  73. package/src/grammar/.antlr/BlendMDP.interp +45 -0
  74. package/src/grammar/.antlr/BlendMDP.tokens +25 -0
  75. package/src/grammar/.antlr/BlendMDPLexer.interp +59 -0
  76. package/src/grammar/.antlr/BlendMDPLexer.java +178 -0
  77. package/src/grammar/.antlr/BlendMDPLexer.tokens +25 -0
  78. package/src/grammar/.antlr/BlendMDPParser.java +386 -0
  79. package/src/grammar/.antlr/BlendMongo.interp +65 -0
  80. package/src/grammar/.antlr/BlendMongo.tokens +41 -0
  81. package/src/grammar/.antlr/BlendMongoLexer.interp +83 -0
  82. package/src/grammar/.antlr/BlendMongoLexer.java +219 -0
  83. package/src/grammar/.antlr/BlendMongoLexer.tokens +41 -0
  84. package/src/grammar/.antlr/BlendMongoParser.java +669 -0
  85. package/src/grammar/.antlr/BlendRN.interp +53 -0
  86. package/src/grammar/.antlr/BlendRN.tokens +31 -0
  87. package/src/grammar/.antlr/BlendRNLexer.interp +71 -0
  88. package/src/grammar/.antlr/BlendRNLexer.java +202 -0
  89. package/src/grammar/.antlr/BlendRNLexer.tokens +31 -0
  90. package/src/grammar/.antlr/BlendRNParser.java +542 -0
  91. package/src/grammar/.antlr/BlendReact.interp +49 -0
  92. package/src/grammar/.antlr/BlendReact.tokens +28 -0
  93. package/src/grammar/.antlr/BlendReactLexer.interp +65 -0
  94. package/src/grammar/.antlr/BlendReactLexer.java +188 -0
  95. package/src/grammar/.antlr/BlendReactLexer.tokens +28 -0
  96. package/src/grammar/.antlr/BlendReactParser.java +530 -0
  97. package/src/grammar/BlendApi.g4 +26 -0
  98. package/src/grammar/BlendBasic.g4 +16 -0
  99. package/src/grammar/BlendData.g4 +24 -0
  100. package/src/grammar/BlendMDP.g4 +12 -0
  101. package/src/grammar/BlendMongo.g4 +24 -0
  102. package/src/grammar/BlendRN.g4 +18 -0
  103. package/src/grammar/BlendReact.g4 +16 -0
  104. package/src/helper/BasicHelper.ts +35 -0
  105. package/src/helper/CommonHelper.ts +5 -0
  106. package/src/helper/DataHelper.ts +268 -0
  107. package/src/helper/ExpressHelper.ts +807 -0
  108. package/src/helper/FrontEndApiHelper.ts +526 -0
  109. package/src/helper/FrontEndReactApiHelper.ts +532 -0
  110. package/src/helper/MongoHelper.ts +165 -0
  111. package/src/helper/RNHelper.ts +651 -0
  112. package/src/helper/ReactHelper.ts +597 -0
  113. package/src/helper/SectionHelper.ts +154 -0
  114. package/src/helper/fileHelper.ts +111 -0
  115. package/src/helper/grammarHelper/BlendApiGrammarHelper.ts +45 -0
  116. package/src/helper/grammarHelper/BlendBasicGrammarHelper.ts +101 -0
  117. package/src/helper/grammarHelper/BlendDataGrammarHelper.ts +49 -0
  118. package/src/helper/grammarHelper/BlendMDPGrammarHelper.ts +33 -0
  119. package/src/helper/grammarHelper/BlendMongoGrammarHelper.ts +50 -0
  120. package/src/helper/grammarHelper/BlendRNGrammarHelper.ts +65 -0
  121. package/src/helper/grammarHelper/BlendReactGrammarHelper.ts +65 -0
  122. package/src/helper/grammarHelper/GrammarErrorHelper.ts +13 -0
  123. package/src/index.ts +168 -0
  124. package/src/parser/blendApi/src/grammar/BlendApi.interp +70 -0
  125. package/src/parser/blendApi/src/grammar/BlendApi.tokens +44 -0
  126. package/src/parser/blendApi/src/grammar/BlendApiLexer.interp +89 -0
  127. package/src/parser/blendApi/src/grammar/BlendApiLexer.tokens +44 -0
  128. package/src/parser/blendApi/src/grammar/BlendApiLexer.ts +193 -0
  129. package/src/parser/blendApi/src/grammar/BlendApiListener.ts +145 -0
  130. package/src/parser/blendApi/src/grammar/BlendApiParser.ts +968 -0
  131. package/src/parser/blendData/src/grammar/BlendData.interp +50 -0
  132. package/src/parser/blendData/src/grammar/BlendData.tokens +29 -0
  133. package/src/parser/blendData/src/grammar/BlendDataLexer.interp +65 -0
  134. package/src/parser/blendData/src/grammar/BlendDataLexer.tokens +29 -0
  135. package/src/parser/blendData/src/grammar/BlendDataLexer.ts +146 -0
  136. package/src/parser/blendData/src/grammar/BlendDataListener.ts +97 -0
  137. package/src/parser/blendData/src/grammar/BlendDataParser.ts +641 -0
  138. package/src/parser/blendMDP/src/grammar/BlendMDP.interp +45 -0
  139. package/src/parser/blendMDP/src/grammar/BlendMDP.tokens +25 -0
  140. package/src/parser/blendMDP/src/grammar/BlendMDPLexer.interp +59 -0
  141. package/src/parser/blendMDP/src/grammar/BlendMDPLexer.tokens +25 -0
  142. package/src/parser/blendMDP/src/grammar/BlendMDPLexer.ts +143 -0
  143. package/src/parser/blendMDP/src/grammar/BlendMDPListener.ts +85 -0
  144. package/src/parser/blendMDP/src/grammar/BlendMDPParser.ts +483 -0
  145. package/src/parser/blendMongo/src/grammar/BlendMongo.interp +65 -0
  146. package/src/parser/blendMongo/src/grammar/BlendMongo.tokens +41 -0
  147. package/src/parser/blendMongo/src/grammar/BlendMongoLexer.interp +83 -0
  148. package/src/parser/blendMongo/src/grammar/BlendMongoLexer.tokens +41 -0
  149. package/src/parser/blendMongo/src/grammar/BlendMongoLexer.ts +179 -0
  150. package/src/parser/blendMongo/src/grammar/BlendMongoListener.ts +133 -0
  151. package/src/parser/blendMongo/src/grammar/BlendMongoParser.ts +849 -0
  152. package/src/parser/blendRN/src/grammar/BlendRN.interp +53 -0
  153. package/src/parser/blendRN/src/grammar/BlendRN.tokens +31 -0
  154. package/src/parser/blendRN/src/grammar/BlendRNLexer.interp +71 -0
  155. package/src/parser/blendRN/src/grammar/BlendRNLexer.tokens +31 -0
  156. package/src/parser/blendRN/src/grammar/BlendRNLexer.ts +164 -0
  157. package/src/parser/blendRN/src/grammar/BlendRNListener.ts +85 -0
  158. package/src/parser/blendRN/src/grammar/BlendRNParser.ts +659 -0
  159. package/src/parser/blendReact/src/grammar/BlendReact.interp +49 -0
  160. package/src/parser/blendReact/src/grammar/BlendReact.tokens +28 -0
  161. package/src/parser/blendReact/src/grammar/BlendReactLexer.interp +65 -0
  162. package/src/parser/blendReact/src/grammar/BlendReactLexer.tokens +28 -0
  163. package/src/parser/blendReact/src/grammar/BlendReactLexer.ts +151 -0
  164. package/src/parser/blendReact/src/grammar/BlendReactListener.ts +85 -0
  165. package/src/parser/blendReact/src/grammar/BlendReactParser.ts +646 -0
  166. package/src/parser/blendbasic/src/grammar/BlendBasic.interp +41 -0
  167. package/src/parser/blendbasic/src/grammar/BlendBasic.tokens +20 -0
  168. package/src/parser/blendbasic/src/grammar/BlendBasicLexer.interp +50 -0
  169. package/src/parser/blendbasic/src/grammar/BlendBasicLexer.tokens +20 -0
  170. package/src/parser/blendbasic/src/grammar/BlendBasicLexer.ts +139 -0
  171. package/src/parser/blendbasic/src/grammar/BlendBasicListener.ts +109 -0
  172. package/src/parser/blendbasic/src/grammar/BlendBasicParser.ts +747 -0
  173. package/src/types/apiOperationTypes.ts +43 -0
  174. package/src/types/basicOperationTypes.ts +15 -0
  175. package/src/types/dataOperationTypes.ts +20 -0
  176. package/src/types/frontendOperationTypes.ts +92 -0
  177. package/src/types/generalTypes.ts +0 -0
  178. package/src/types/mongoOperationTypes.ts +36 -0
  179. package/template/.env.dev +1 -0
  180. package/template/package.json +36 -0
  181. package/template/src/app.js +76 -0
  182. package/template/src/app.ts +54 -0
  183. package/template/src/config/app.config.js +0 -0
  184. package/template/src/config/app.config.ts +0 -0
  185. package/template/src/config/database.config.js +6 -0
  186. package/template/src/config/database.config.ts +4 -0
  187. package/template/src/data/interfaces.js +2 -0
  188. package/template/src/data/interfaces.ts +23 -0
  189. package/template/src/middlewares/auth.js +22 -0
  190. package/template/src/middlewares/auth.ts +21 -0
  191. package/template/src/models/Database.js +10 -0
  192. package/template/src/models/Database.ts +8 -0
  193. package/template/src/models/User/Permission.model.js +13 -0
  194. package/template/src/models/User/Permission.model.ts +14 -0
  195. package/template/src/models/User/Role.model.js +13 -0
  196. package/template/src/models/User/Role.model.ts +14 -0
  197. package/template/src/models/User/User.model.js +17 -0
  198. package/template/src/models/User/User.model.ts +18 -0
  199. package/template/src/routes/User.routes.js +47 -0
  200. package/template/src/routes/User.routes.ts +41 -0
  201. package/template/src/routes/common/common.routes.config.js +14 -0
  202. package/template/src/routes/common/common.routes.config.ts +15 -0
  203. package/template/src/services/User/User.service.js +75 -0
  204. package/template/src/services/User/User.service.ts +68 -0
  205. package/template/src/services/User/api.data.js +72 -0
  206. package/template/src/services/User/api.data.ts +79 -0
  207. package/template/src/services/User/api.interface.js +3 -0
  208. package/template/src/services/User/api.interface.ts +10 -0
  209. package/template/tsconfig.json +10 -0
  210. package/tsconfig.json +13 -0
File without changes
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fileHelper_1 = require("./fileHelper");
7
+ const path_1 = __importDefault(require("path"));
8
+ const BlendBasicGrammarHelper_1 = __importDefault(require("./grammarHelper/BlendBasicGrammarHelper"));
9
+ class BasicHelper {
10
+ constructor() {
11
+ this.folderPath = path_1.default.join(process.cwd());
12
+ this.folderName = path_1.default.basename(this.folderPath);
13
+ this.basicFilePath = path_1.default.join(this.folderPath, `${this.folderName}.basic`);
14
+ this.configPath = path_1.default.join(this.folderPath, '.basicConfig');
15
+ }
16
+ parseSpec(spec) {
17
+ const blendbasic = new BlendBasicGrammarHelper_1.default();
18
+ const basicParsedJSON = blendbasic.parseBlendBasic(spec);
19
+ if (basicParsedJSON.valid) {
20
+ basicParsedJSON.basicJson.name = this.folderName;
21
+ fileHelper_1.FileHelper.ensureDir(this.configPath);
22
+ fileHelper_1.FileHelper.writeFile(`${this.configPath}/basicConfig.json`, JSON.stringify(basicParsedJSON.basicJson));
23
+ }
24
+ else {
25
+ }
26
+ }
27
+ }
28
+ exports.default = BasicHelper;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommonHelper = void 0;
4
+ class CommonHelper {
5
+ static hyphenSepratedString(text) {
6
+ return text.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
7
+ ;
8
+ }
9
+ }
10
+ exports.CommonHelper = CommonHelper;
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const path_1 = __importDefault(require("path"));
16
+ const fileHelper_1 = require("./fileHelper");
17
+ const BlendDataGrammarHelper_1 = __importDefault(require("./grammarHelper/BlendDataGrammarHelper"));
18
+ const basicDataTypes = ["string", "object", "boolean", "number", "any"];
19
+ class DataHelper {
20
+ constructor() {
21
+ this.folderPath = path_1.default.join(process.cwd());
22
+ this.folderName = path_1.default.basename(this.folderPath);
23
+ this.basicFilePath = path_1.default.join(this.folderPath, `${this.folderName}.basic`);
24
+ this.configPath = path_1.default.join(this.folderPath, '.basicConfig');
25
+ this.basicProjectContent = JSON.parse(fileHelper_1.FileHelper.readFile(`${this.configPath}/basicConfig.json`) || "{}");
26
+ }
27
+ doDataOperations(basicFileContent) {
28
+ try {
29
+ this.basicFileContent = basicFileContent;
30
+ this.createDataSpec();
31
+ this.parseSpec();
32
+ }
33
+ catch (e) {
34
+ }
35
+ }
36
+ createDataSpec() {
37
+ this.basicProjectContent.sectionList.forEach(section => {
38
+ const sectionName = section.name.trim();
39
+ const sectionFolderPath = path_1.default.join(this.folderPath, 'spec', sectionName);
40
+ const dataFolderPath = path_1.default.join(sectionFolderPath, 'data');
41
+ section.dataModuleList.forEach(dataModule => {
42
+ const dataFilePath = path_1.default.join(dataFolderPath, `${dataModule}.data`);
43
+ if (!fileHelper_1.FileHelper.exists(dataFilePath)) {
44
+ fileHelper_1.FileHelper.writeFile(dataFilePath, `module ${dataModule}`);
45
+ }
46
+ else {
47
+ }
48
+ });
49
+ });
50
+ }
51
+ parseSpec() {
52
+ let sectionDataObjList = [];
53
+ this.basicProjectContent.sectionList.forEach(section => {
54
+ const sectionName = section.name;
55
+ const sectionFolderPath = path_1.default.join(this.folderPath, 'spec', sectionName);
56
+ let mainDataObjList = [];
57
+ const dataFolderPath = path_1.default.join(sectionFolderPath, 'data');
58
+ section.dataModuleList.forEach(module => {
59
+ const filePath = path_1.default.join(dataFolderPath, `${module}.data`);
60
+ const specCode = fileHelper_1.FileHelper.readFile(filePath);
61
+ const json = new BlendDataGrammarHelper_1.default().parseBlendData(specCode);
62
+ if (!json.valid) {
63
+ throw new Error("Error while parsing the syntax");
64
+ }
65
+ const moduleDataObject = json.moduleDataObject;
66
+ mainDataObjList.push(moduleDataObject);
67
+ });
68
+ sectionDataObjList.push({
69
+ name: sectionName,
70
+ sectionDataList: mainDataObjList
71
+ });
72
+ });
73
+ fileHelper_1.FileHelper.writeFile(`${this.configPath}/dataConfig.json`, JSON.stringify(sectionDataObjList));
74
+ }
75
+ parseJSONAndGenerateFiles() {
76
+ try {
77
+ const sectionDataList = JSON.parse(fileHelper_1.FileHelper.readFile(`${this.configPath}/dataConfig.json`));
78
+ sectionDataList.forEach((sectionData) => __awaiter(this, void 0, void 0, function* () {
79
+ const sectionPath = path_1.default.join(this.folderPath, `module/${sectionData.name}`);
80
+ sectionData.sectionDataList.forEach((moduleData) => __awaiter(this, void 0, void 0, function* () {
81
+ const dataPath = path_1.default.join(sectionPath, `data/${moduleData.name}.ts`);
82
+ const imports = new Set(); // Collect unique imports
83
+ // Generate class definitions
84
+ const classesCode = moduleData.dataList
85
+ .map((curItem) => {
86
+ // Collect imports for fields with types like "Module->ClassName"
87
+ curItem.fields.forEach((field) => {
88
+ const typeParts = field.type.split("->");
89
+ if (typeParts.length === 2) {
90
+ const [module, typeName] = typeParts;
91
+ const baseTypeName = typeName.endsWith("[]") ? typeName.slice(0, -2) : typeName;
92
+ imports.add(`import { ${baseTypeName} } from './${module}';`);
93
+ }
94
+ });
95
+ // Generate the class code
96
+ return `
97
+ export class ${curItem.name} {
98
+ constructor(
99
+ ${curItem.fields
100
+ .map((field) => ` public ${field.name}: ${this.resolveType(field.type)}${!field.required ? '|undefined' : ''} = ${this.getDefaultValue(field, moduleData)},`)
101
+ .join('\n')}
102
+ ) {}
103
+
104
+ static fromJSON(jsonObj: any): ${curItem.name} {
105
+ return new ${curItem.name}(
106
+ ${curItem.fields
107
+ .map((field) => this.generateFromJSONField(field))
108
+ .join(',\n')}
109
+ );
110
+ }
111
+
112
+ public toJson(): object {
113
+ return {
114
+ ${curItem.fields
115
+ .map((field) => this.generateToJSONField(field))
116
+ .join('\n')}
117
+ };
118
+ }
119
+ }
120
+ `;
121
+ })
122
+ .join('\n');
123
+ // Combine imports and class definitions
124
+ const finalCode = `
125
+ ${Array.from(imports).join('\n')}
126
+
127
+ ${classesCode}
128
+ `;
129
+ fileHelper_1.FileHelper.writeFile(dataPath, finalCode);
130
+ this.basicProjectContent.sectionList.forEach(section => {
131
+ section.expressModuleList.forEach(expressModule => {
132
+ // if (expressModule.includedDataModuleList.includes(moduleData.name)) {
133
+ if (section.name == sectionData.name) {
134
+ const expressDataPath = `${this.folderPath}/module/${section.name}/express/${section.name}-api/src-gen/data/${expressModule.name}/${moduleData.name}.ts`;
135
+ fileHelper_1.FileHelper.writeFile(expressDataPath, finalCode);
136
+ }
137
+ // }
138
+ });
139
+ section.rnModuleList.forEach(rnModule => {
140
+ // if (expressModule.includedDataModuleList.includes(moduleData.name)) {
141
+ if (section.name == sectionData.name) {
142
+ const rnDataPath = `${this.folderPath}/module/${section.name}/react-native/${rnModule.name}/src-gen/data/${moduleData.name}.ts`;
143
+ fileHelper_1.FileHelper.writeFile(rnDataPath, finalCode);
144
+ }
145
+ // }
146
+ });
147
+ section.reactModuleList.forEach(reactModule => {
148
+ // if (expressModule.includedDataModuleList.includes(moduleData.name)) {
149
+ if (section.name == sectionData.name) {
150
+ const reactDataPath = `${this.folderPath}/module/${section.name}/react/${reactModule.name}/src/src-gen/data/${moduleData.name}.ts`;
151
+ fileHelper_1.FileHelper.writeFile(reactDataPath, finalCode);
152
+ }
153
+ // }
154
+ });
155
+ });
156
+ }));
157
+ }));
158
+ }
159
+ catch (e) {
160
+ }
161
+ }
162
+ resolveType(type) {
163
+ const typeParts = type.split("->");
164
+ const baseType = typeParts.length === 2 ? typeParts[1] : type;
165
+ return baseType.endsWith("[]") ? `${baseType.slice(0, -2)}[]` : baseType; // Handle array types
166
+ }
167
+ getDefaultValue(field, curItem) {
168
+ const typeParts = field.type.split("->");
169
+ const baseType = typeParts.length === 2 ? typeParts[1] : field.type;
170
+ if (baseType.endsWith("[]")) {
171
+ return "[]"; // Default value for arrays
172
+ }
173
+ if (typeParts.length === 2) {
174
+ const [, typeName] = typeParts;
175
+ const baseTypeName = typeName.endsWith("[]") ? typeName.slice(0, -2) : typeName;
176
+ return `new ${baseTypeName}()`; // Instantiate the imported class
177
+ }
178
+ if (!basicDataTypes.includes(field.type)) {
179
+ const currentFieldType = curItem.dataList.find(item => item.name == field.type);
180
+ if (!currentFieldType) {
181
+ throw new Error(`unable to find out ${currentFieldType}`);
182
+ }
183
+ else {
184
+ if (field.required) {
185
+ return `new ${currentFieldType.name}()`;
186
+ }
187
+ else {
188
+ return undefined;
189
+ }
190
+ }
191
+ }
192
+ else {
193
+ switch (field.type) {
194
+ case "string":
195
+ return field.required ? "''" : "undefined";
196
+ case "object":
197
+ return field.required ? "{}" : "undefined";
198
+ case "boolean":
199
+ return field.required ? "false" : "undefined";
200
+ case "number":
201
+ return field.required ? "0" : "undefined";
202
+ default:
203
+ return "null";
204
+ }
205
+ }
206
+ }
207
+ generateFromJSONField(field) {
208
+ const typeParts = field.type.split("->");
209
+ const baseType = typeParts.length === 2 ? typeParts[1] : field.type;
210
+ if (baseType.endsWith("[]")) {
211
+ const elementType = baseType.slice(0, -2);
212
+ if (["string", "number", "boolean"].includes(elementType)) {
213
+ return ` jsonObj.${field.name} ?? []`;
214
+ }
215
+ return ` (jsonObj.${field.name} != null) ? jsonObj.${field.name}.map((item: any) => ${elementType}.fromJSON(item)) : []`;
216
+ }
217
+ if (typeParts.length === 2) {
218
+ const [, typeName] = typeParts;
219
+ const baseTypeName = typeName.endsWith("[]") ? typeName.slice(0, -2) : typeName;
220
+ return ` (jsonObj.${field.name} != null) ? ${baseTypeName}.fromJSON(jsonObj.${field.name}) : new ${baseTypeName}()`;
221
+ }
222
+ if (!basicDataTypes.includes(baseType)) {
223
+ const baseTypeName = baseType.endsWith("[]") ? baseType.slice(0, -2) : baseType;
224
+ return ` (jsonObj.${field.name} != null) ? ${baseTypeName}.fromJSON(jsonObj.${field.name}) : new ${baseTypeName}()`;
225
+ }
226
+ return ` (jsonObj.${field.name} !== null) ? jsonObj?.${field.name} : undefined`;
227
+ }
228
+ generateToJSONField(field) {
229
+ const typeParts = field.type.split("->");
230
+ const baseType = typeParts.length === 2 ? typeParts[1] : field.type;
231
+ if (baseType.endsWith("[]")) {
232
+ const elementType = baseType.slice(0, -2);
233
+ if (["string", "number", "boolean"].includes(elementType)) {
234
+ return ` ${field.name}: this.${field.name} ?? [],`;
235
+ }
236
+ return ` ${field.name}: (this.${field.name} != null) ? this.${field.name}.map((x) => x.toJson()) : [],`;
237
+ }
238
+ return ` ${field.name}: this.${field.name} != null ? this.${field.name} : undefined,`;
239
+ }
240
+ }
241
+ exports.default = DataHelper;