@scmbwis/bpg-gen 0.1.6

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 (230) hide show
  1. package/README.md +103 -0
  2. package/dist/cli/config.d.ts +13 -0
  3. package/dist/cli/config.js +94 -0
  4. package/dist/cli/config.js.map +1 -0
  5. package/dist/cli/generate.d.ts +9 -0
  6. package/dist/cli/generate.js +97 -0
  7. package/dist/cli/generate.js.map +1 -0
  8. package/dist/cli/index.d.ts +2 -0
  9. package/dist/cli/index.js +37 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/schema-loader.d.ts +2 -0
  12. package/dist/cli/schema-loader.js +104 -0
  13. package/dist/cli/schema-loader.js.map +1 -0
  14. package/dist/commands/gendata.d.ts +1 -0
  15. package/dist/commands/gendata.js +251 -0
  16. package/dist/commands/gendata.js.map +1 -0
  17. package/dist/commands/gendb.d.ts +5 -0
  18. package/dist/commands/gendb.js +82 -0
  19. package/dist/commands/gendb.js.map +1 -0
  20. package/dist/commands/nest-express/gennestservicemodels.d.ts +5 -0
  21. package/dist/commands/nest-express/gennestservicemodels.js +505 -0
  22. package/dist/commands/nest-express/gennestservicemodels.js.map +1 -0
  23. package/dist/commands/nest-express/gentsaccessmodel.d.ts +5 -0
  24. package/dist/commands/nest-express/gentsaccessmodel.js +396 -0
  25. package/dist/commands/nest-express/gentsaccessmodel.js.map +1 -0
  26. package/dist/commands/ng/genngbaseapi.d.ts +1 -0
  27. package/dist/commands/ng/genngbaseapi.js +289 -0
  28. package/dist/commands/ng/genngbaseapi.js.map +1 -0
  29. package/dist/configs/ddi.d.ts +2 -0
  30. package/dist/configs/ddi.js +564 -0
  31. package/dist/configs/ddi.js.map +1 -0
  32. package/dist/configs/index.d.ts +2 -0
  33. package/dist/configs/index.js +24 -0
  34. package/dist/configs/index.js.map +1 -0
  35. package/dist/configs/proef-old.d.ts +2 -0
  36. package/dist/configs/proef-old.js +592 -0
  37. package/dist/configs/proef-old.js.map +1 -0
  38. package/dist/configs/proef.d.ts +2 -0
  39. package/dist/configs/proef.js +1023 -0
  40. package/dist/configs/proef.js.map +1 -0
  41. package/dist/configs/tuvens.d.ts +2 -0
  42. package/dist/configs/tuvens.js +1249 -0
  43. package/dist/configs/tuvens.js.map +1 -0
  44. package/dist/data-access/data-types/common.d.ts +40 -0
  45. package/dist/data-access/data-types/common.js +60 -0
  46. package/dist/data-access/data-types/common.js.map +1 -0
  47. package/dist/data-access/data-types/index.d.ts +3 -0
  48. package/dist/data-access/data-types/index.js +110 -0
  49. package/dist/data-access/data-types/index.js.map +1 -0
  50. package/dist/data-access/data-types/support/reg-models.d.ts +16 -0
  51. package/dist/data-access/data-types/support/reg-models.js +4 -0
  52. package/dist/data-access/data-types/support/reg-models.js.map +1 -0
  53. package/dist/data-access/data-types/template.d.ts +22 -0
  54. package/dist/data-access/data-types/template.js +17 -0
  55. package/dist/data-access/data-types/template.js.map +1 -0
  56. package/dist/data-access/data-types/types/boolean-array.d.ts +18 -0
  57. package/dist/data-access/data-types/types/boolean-array.js +32 -0
  58. package/dist/data-access/data-types/types/boolean-array.js.map +1 -0
  59. package/dist/data-access/data-types/types/boolean.d.ts +18 -0
  60. package/dist/data-access/data-types/types/boolean.js +32 -0
  61. package/dist/data-access/data-types/types/boolean.js.map +1 -0
  62. package/dist/data-access/data-types/types/child-pub-id-seq.d.ts +16 -0
  63. package/dist/data-access/data-types/types/child-pub-id-seq.js +15 -0
  64. package/dist/data-access/data-types/types/child-pub-id-seq.js.map +1 -0
  65. package/dist/data-access/data-types/types/client/client-model.d.ts +223 -0
  66. package/dist/data-access/data-types/types/client/client-model.js +26 -0
  67. package/dist/data-access/data-types/types/client/client-model.js.map +1 -0
  68. package/dist/data-access/data-types/types/client/common.d.ts +23 -0
  69. package/dist/data-access/data-types/types/client/common.js +3 -0
  70. package/dist/data-access/data-types/types/client/common.js.map +1 -0
  71. package/dist/data-access/data-types/types/client/types/boolean-array.d.ts +10 -0
  72. package/dist/data-access/data-types/types/client/types/boolean-array.js +3 -0
  73. package/dist/data-access/data-types/types/client/types/boolean-array.js.map +1 -0
  74. package/dist/data-access/data-types/types/client/types/boolean.d.ts +10 -0
  75. package/dist/data-access/data-types/types/client/types/boolean.js +3 -0
  76. package/dist/data-access/data-types/types/client/types/boolean.js.map +1 -0
  77. package/dist/data-access/data-types/types/client/types/document.d.ts +7 -0
  78. package/dist/data-access/data-types/types/client/types/document.js +4 -0
  79. package/dist/data-access/data-types/types/client/types/document.js.map +1 -0
  80. package/dist/data-access/data-types/types/client/types/fk.d.ts +13 -0
  81. package/dist/data-access/data-types/types/client/types/fk.js +3 -0
  82. package/dist/data-access/data-types/types/client/types/fk.js.map +1 -0
  83. package/dist/data-access/data-types/types/client/types/object.d.ts +10 -0
  84. package/dist/data-access/data-types/types/client/types/object.js +3 -0
  85. package/dist/data-access/data-types/types/client/types/object.js.map +1 -0
  86. package/dist/data-access/data-types/types/client/types/pk.d.ts +9 -0
  87. package/dist/data-access/data-types/types/client/types/pk.js +3 -0
  88. package/dist/data-access/data-types/types/client/types/pk.js.map +1 -0
  89. package/dist/data-access/data-types/types/client/types/pub-id.d.ts +9 -0
  90. package/dist/data-access/data-types/types/client/types/pub-id.js +3 -0
  91. package/dist/data-access/data-types/types/client/types/pub-id.js.map +1 -0
  92. package/dist/data-access/data-types/types/client/types/real-num-array.d.ts +12 -0
  93. package/dist/data-access/data-types/types/client/types/real-num-array.js +3 -0
  94. package/dist/data-access/data-types/types/client/types/real-num-array.js.map +1 -0
  95. package/dist/data-access/data-types/types/client/types/real-num.d.ts +12 -0
  96. package/dist/data-access/data-types/types/client/types/real-num.js +3 -0
  97. package/dist/data-access/data-types/types/client/types/real-num.js.map +1 -0
  98. package/dist/data-access/data-types/types/client/types/string-array.d.ts +13 -0
  99. package/dist/data-access/data-types/types/client/types/string-array.js +3 -0
  100. package/dist/data-access/data-types/types/client/types/string-array.js.map +1 -0
  101. package/dist/data-access/data-types/types/client/types/string.d.ts +15 -0
  102. package/dist/data-access/data-types/types/client/types/string.js +3 -0
  103. package/dist/data-access/data-types/types/client/types/string.js.map +1 -0
  104. package/dist/data-access/data-types/types/client/types/timestamp-array.d.ts +10 -0
  105. package/dist/data-access/data-types/types/client/types/timestamp-array.js +3 -0
  106. package/dist/data-access/data-types/types/client/types/timestamp-array.js.map +1 -0
  107. package/dist/data-access/data-types/types/client/types/timestamp.d.ts +10 -0
  108. package/dist/data-access/data-types/types/client/types/timestamp.js +3 -0
  109. package/dist/data-access/data-types/types/client/types/timestamp.js.map +1 -0
  110. package/dist/data-access/data-types/types/client/types/type-key.d.ts +19 -0
  111. package/dist/data-access/data-types/types/client/types/type-key.js +3 -0
  112. package/dist/data-access/data-types/types/client/types/type-key.js.map +1 -0
  113. package/dist/data-access/data-types/types/client/types/user-picker.d.ts +0 -0
  114. package/dist/data-access/data-types/types/client/types/user-picker.js +2 -0
  115. package/dist/data-access/data-types/types/client/types/user-picker.js.map +1 -0
  116. package/dist/data-access/data-types/types/client/types/whole-num-array.d.ts +12 -0
  117. package/dist/data-access/data-types/types/client/types/whole-num-array.js +3 -0
  118. package/dist/data-access/data-types/types/client/types/whole-num-array.js.map +1 -0
  119. package/dist/data-access/data-types/types/client/types/whole-num.d.ts +12 -0
  120. package/dist/data-access/data-types/types/client/types/whole-num.js +3 -0
  121. package/dist/data-access/data-types/types/client/types/whole-num.js.map +1 -0
  122. package/dist/data-access/data-types/types/client/union.d.ts +25 -0
  123. package/dist/data-access/data-types/types/client/union.js +24 -0
  124. package/dist/data-access/data-types/types/client/union.js.map +1 -0
  125. package/dist/data-access/data-types/types/document.d.ts +16 -0
  126. package/dist/data-access/data-types/types/document.js +28 -0
  127. package/dist/data-access/data-types/types/document.js.map +1 -0
  128. package/dist/data-access/data-types/types/fk.d.ts +46 -0
  129. package/dist/data-access/data-types/types/fk.js +66 -0
  130. package/dist/data-access/data-types/types/fk.js.map +1 -0
  131. package/dist/data-access/data-types/types/object.d.ts +18 -0
  132. package/dist/data-access/data-types/types/object.js +30 -0
  133. package/dist/data-access/data-types/types/object.js.map +1 -0
  134. package/dist/data-access/data-types/types/pk.d.ts +11 -0
  135. package/dist/data-access/data-types/types/pk.js +25 -0
  136. package/dist/data-access/data-types/types/pk.js.map +1 -0
  137. package/dist/data-access/data-types/types/pub-id.d.ts +23 -0
  138. package/dist/data-access/data-types/types/pub-id.js +31 -0
  139. package/dist/data-access/data-types/types/pub-id.js.map +1 -0
  140. package/dist/data-access/data-types/types/real-num-array.d.ts +22 -0
  141. package/dist/data-access/data-types/types/real-num-array.js +38 -0
  142. package/dist/data-access/data-types/types/real-num-array.js.map +1 -0
  143. package/dist/data-access/data-types/types/real-num.d.ts +22 -0
  144. package/dist/data-access/data-types/types/real-num.js +37 -0
  145. package/dist/data-access/data-types/types/real-num.js.map +1 -0
  146. package/dist/data-access/data-types/types/string-array.d.ts +24 -0
  147. package/dist/data-access/data-types/types/string-array.js +47 -0
  148. package/dist/data-access/data-types/types/string-array.js.map +1 -0
  149. package/dist/data-access/data-types/types/string.d.ts +37 -0
  150. package/dist/data-access/data-types/types/string.js +63 -0
  151. package/dist/data-access/data-types/types/string.js.map +1 -0
  152. package/dist/data-access/data-types/types/timestamp-array.d.ts +18 -0
  153. package/dist/data-access/data-types/types/timestamp-array.js +32 -0
  154. package/dist/data-access/data-types/types/timestamp-array.js.map +1 -0
  155. package/dist/data-access/data-types/types/timestamp.d.ts +18 -0
  156. package/dist/data-access/data-types/types/timestamp.js +32 -0
  157. package/dist/data-access/data-types/types/timestamp.js.map +1 -0
  158. package/dist/data-access/data-types/types/type-key.d.ts +87 -0
  159. package/dist/data-access/data-types/types/type-key.js +56 -0
  160. package/dist/data-access/data-types/types/type-key.js.map +1 -0
  161. package/dist/data-access/data-types/types/user-picker.d.ts +0 -0
  162. package/dist/data-access/data-types/types/user-picker.js +2 -0
  163. package/dist/data-access/data-types/types/user-picker.js.map +1 -0
  164. package/dist/data-access/data-types/types/whole-num-array.d.ts +22 -0
  165. package/dist/data-access/data-types/types/whole-num-array.js +38 -0
  166. package/dist/data-access/data-types/types/whole-num-array.js.map +1 -0
  167. package/dist/data-access/data-types/types/whole-num.d.ts +22 -0
  168. package/dist/data-access/data-types/types/whole-num.js +37 -0
  169. package/dist/data-access/data-types/types/whole-num.js.map +1 -0
  170. package/dist/data-access/data-types/union.d.ts +36 -0
  171. package/dist/data-access/data-types/union.js +44 -0
  172. package/dist/data-access/data-types/union.js.map +1 -0
  173. package/dist/datamodel/db-model/app-model.d.ts +36 -0
  174. package/dist/datamodel/db-model/app-model.js +7 -0
  175. package/dist/datamodel/db-model/app-model.js.map +1 -0
  176. package/dist/datamodel/db-model/data-model-builder.d.ts +3 -0
  177. package/dist/datamodel/db-model/data-model-builder.js +437 -0
  178. package/dist/datamodel/db-model/data-model-builder.js.map +1 -0
  179. package/dist/datamodel/db-model/data-model.d.ts +74 -0
  180. package/dist/datamodel/db-model/data-model.js +8 -0
  181. package/dist/datamodel/db-model/data-model.js.map +1 -0
  182. package/dist/datamodel/db-model/data-type.d.ts +9 -0
  183. package/dist/datamodel/db-model/data-type.js +176 -0
  184. package/dist/datamodel/db-model/data-type.js.map +1 -0
  185. package/dist/datamodel/db-model/in-app-model.d.ts +9 -0
  186. package/dist/datamodel/db-model/in-app-model.js +6 -0
  187. package/dist/datamodel/db-model/in-app-model.js.map +1 -0
  188. package/dist/datamodel/db-model/in-data-model.d.ts +36 -0
  189. package/dist/datamodel/db-model/in-data-model.js +11 -0
  190. package/dist/datamodel/db-model/in-data-model.js.map +1 -0
  191. package/dist/datamodel/pg-migrate/infoschema-models.d.ts +40 -0
  192. package/dist/datamodel/pg-migrate/infoschema-models.js +3 -0
  193. package/dist/datamodel/pg-migrate/infoschema-models.js.map +1 -0
  194. package/dist/datamodel/pg-migrate/infoschema-queries.d.ts +2 -0
  195. package/dist/datamodel/pg-migrate/infoschema-queries.js +14 -0
  196. package/dist/datamodel/pg-migrate/infoschema-queries.js.map +1 -0
  197. package/dist/datamodel/pg-migrate/migration-methods.d.ts +19 -0
  198. package/dist/datamodel/pg-migrate/migration-methods.js +75 -0
  199. package/dist/datamodel/pg-migrate/migration-methods.js.map +1 -0
  200. package/dist/datamodel/pg-migrate/migration-queries.d.ts +2 -0
  201. package/dist/datamodel/pg-migrate/migration-queries.js +127 -0
  202. package/dist/datamodel/pg-migrate/migration-queries.js.map +1 -0
  203. package/dist/datamodel/ts-gen/app/api.d.ts +2 -0
  204. package/dist/datamodel/ts-gen/app/api.js +72 -0
  205. package/dist/datamodel/ts-gen/app/api.js.map +1 -0
  206. package/dist/datamodel/ts-gen/index.d.ts +6 -0
  207. package/dist/datamodel/ts-gen/index.js +98 -0
  208. package/dist/datamodel/ts-gen/index.js.map +1 -0
  209. package/dist/env.d.ts +3 -0
  210. package/dist/env.js +87 -0
  211. package/dist/env.js.map +1 -0
  212. package/dist/index.d.ts +2 -0
  213. package/dist/index.js +7 -0
  214. package/dist/index.js.map +1 -0
  215. package/dist/utils/casing.d.ts +17 -0
  216. package/dist/utils/casing.js +66 -0
  217. package/dist/utils/casing.js.map +1 -0
  218. package/dist/utils/conventions.d.ts +2 -0
  219. package/dist/utils/conventions.js +12 -0
  220. package/dist/utils/conventions.js.map +1 -0
  221. package/dist/utils/genutils.d.ts +55 -0
  222. package/dist/utils/genutils.js +501 -0
  223. package/dist/utils/genutils.js.map +1 -0
  224. package/dist/utils/pg.utils.d.ts +1 -0
  225. package/dist/utils/pg.utils.js +302 -0
  226. package/dist/utils/pg.utils.js.map +1 -0
  227. package/dist/utils/writingutils.d.ts +12 -0
  228. package/dist/utils/writingutils.js +63 -0
  229. package/dist/utils/writingutils.js.map +1 -0
  230. package/package.json +50 -0
@@ -0,0 +1,72 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.writeAppApis = writeAppApis;
13
+ function writeAppApis(model, outpath) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ for (let app of model.apps) {
16
+ const api = getAppApi(app);
17
+ }
18
+ });
19
+ }
20
+ function getAppApi(app) {
21
+ const routes = [];
22
+ // if it is an ID bach,
23
+ // it should have a switch route - get<RootClass> get(`root-class`)
24
+ // it should have a base and all routes start with this - get<RootClass> get(`root-class/rootId`)
25
+ // it uses idRoot on all roots except the switch root to set rootId from the params
26
+ // all sub-items have an fk to the root <rootJsonId> which has a link to the root and item
27
+ return `
28
+ function get${app.className}Router(): Router {
29
+ const router = Router()
30
+ }
31
+ `;
32
+ }
33
+ function getIdBachRoutes(app) {
34
+ const switchCode = ``;
35
+ const routerCode = `
36
+ router.use(beIdentified)
37
+ `;
38
+ return { routerCode };
39
+ }
40
+ function getSwitchCode(app) {
41
+ const code = `
42
+ // put:${app.routeName}
43
+ router.put("/${app.className}", )
44
+ `;
45
+ return code;
46
+ }
47
+ function getGetManyRoute(methTemplate) {
48
+ const methodName = `${methTemplate.app.jsonName}${methTemplate.className}`;
49
+ const readCols = `"*"`;
50
+ const where = ``;
51
+ const method = {
52
+ methodName: methodName,
53
+ imports: { item: `${methTemplate.app.className}${methTemplate.className}Body`, file: `../client/${methTemplate.app.className}` },
54
+ methodContent: `
55
+ export async function ${methodName}(req: Request, res: Response, next: NextFunction) {
56
+ const identity: Identity = res.locals.identity
57
+ const body: ${methTemplate.app.className}${methTemplate.className}Body = req.body
58
+ const tab = db.${methTemplate.table.jsonName}
59
+ const result = await dbRead({
60
+ table: tab,
61
+ readCols: ${readCols},
62
+ where: [
63
+ ${where}
64
+ ]
65
+ })
66
+ const ret : ${methTemplate.app.className}${methTemplate.className}Return = result
67
+ res.json(ret)
68
+ }
69
+ `
70
+ };
71
+ }
72
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../lib/datamodel/ts-gen/app/api.ts"],"names":[],"mappings":";;;;;;;;;;;AAMA,oCAIC;AAJD,SAAsB,YAAY,CAAC,KAAe,EAAE,OAAe;;QAClE,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACF,CAAC;CAAA;AACD,SAAS,SAAS,CAAC,GAAa;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,uBAAuB;IACvB,mEAAmE;IACnE,iGAAiG;IACjG,mFAAmF;IACnF,2FAA2F;IAC3F,OAAO;cACM,GAAG,CAAC,SAAS;;;EAGzB,CAAA;AACF,CAAC;AAID,SAAS,eAAe,CAAC,GAAc;IACtC,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,MAAM,UAAU,GAAG;;EAElB,CAAA;IACD,OAAO,EAAE,UAAU,EAAE,CAAA;AACtB,CAAC;AACD,SAAS,aAAa,CAAC,GAAc;IACpC,MAAM,IAAI,GAAG;UACJ,GAAG,CAAC,SAAS;gBACP,GAAG,CAAC,SAAS;EAC3B,CAAA;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAOD,SAAS,eAAe,CAAC,YAA4B;IACpD,MAAM,UAAU,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,CAAA;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAA;IACtB,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,MAAM,MAAM,GAAG;QACd,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,EAAC,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,aAAa,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,EAAC;QAC9H,aAAa,EAAE;yBACQ,UAAU;;gBAEnB,YAAY,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS;mBAChD,YAAY,CAAC,KAAK,CAAC,QAAQ;;;eAG/B,QAAQ;;MAEjB,KAAK;;;gBAGK,YAAY,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS;;;GAGhE;KACD,CAAA;AACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DataModel } from "../db-model/data-model";
2
+ export interface TsModel {
3
+ fileText: string;
4
+ fileName: string;
5
+ }
6
+ export declare function writeDataModelTsClasses(model: DataModel, outpath: string): Promise<void>;
@@ -0,0 +1,98 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.writeDataModelTsClasses = writeDataModelTsClasses;
13
+ const promises_1 = require("fs/promises");
14
+ function writeDataModelTsClasses(model, outpath) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const tsModels = getClassModelTs(model);
17
+ for (let classModel of tsModels) {
18
+ yield (0, promises_1.writeFile)(`${outpath}/${classModel.fileName}`, classModel.fileText);
19
+ }
20
+ });
21
+ }
22
+ function getClassModelTs(model) {
23
+ const models = [];
24
+ for (let table of model.tables) {
25
+ models.push({
26
+ fileName: `${table.routeName}-model.ts`,
27
+ fileText: createTsCrudFile(table)
28
+ });
29
+ }
30
+ return models;
31
+ }
32
+ function createTsCrudFile(table) {
33
+ const unions = [];
34
+ const models = [];
35
+ const model = table.model;
36
+ /*
37
+ const types = table.cols.filter(isType)
38
+ if (types.length > 0) {
39
+ unions.push({
40
+ aboveComment: `UNION MODEL FOR OUTPUT`,
41
+ typeName: `${table.className}Model`,
42
+ unions: types.flatMap(t => Array.from(t.typeKeys.values())).map(k => `${k.className}${table.className}Model`)
43
+ })
44
+ }
45
+ models.push({
46
+ aboveComment: `BASE OUTPUT MODEL`,
47
+ typeName: `${table.className}${types.length == 0 ? "Model" : "Common"}`,
48
+ properties:
49
+ table.cols.filter(col => col.onType == undefined && col.dataType != "type").map(col => {
50
+ return {
51
+ name: col.jsonName,
52
+ typeUnion: `${col.jsType}${col.canBeNull ? " | null" : ""}`,
53
+ canBeUndefined: false
54
+ }
55
+ }).concat(table.inFks.filter(x => x.parent).map(ifk => {
56
+ return {
57
+ name: ifk.targetTableVirtProp.jsonName,
58
+ typeUnion: `${ifk.table.className}Model[]`,
59
+ canBeUndefined: true
60
+ }
61
+ })),
62
+ extends: []
63
+ })
64
+ for (let typeProp of types) {
65
+ for (let key of typeProp.typeKeys.values()) {
66
+ models.push({
67
+ typeName: `${key.className}${table.className}Model`,
68
+ aboveComment: `OUT MODEL FOR TYPE ${typeProp.name} KEY ${key.name}`,
69
+ properties: [{
70
+ name: `${typeProp.jsonName}`,
71
+ typeUnion: `"${key.routeName}"`,
72
+ canBeUndefined: false
73
+ }].concat(key.cols.map(colOnKey => {
74
+ return {
75
+ name: colOnKey.col.jsonName,
76
+ typeUnion: `${colOnKey.col.jsType}${!colOnKey.required ? " | null" : ""}`,
77
+ canBeUndefined: false
78
+ }
79
+ })),
80
+ extends: [`${table.className}Common`]
81
+ })
82
+
83
+ }
84
+ }*/
85
+ let fileText = `// gen file for table ${model.schemaName}.${table.pgName}${unions.map(model => `
86
+ // ${model.aboveComment}
87
+ export type ${model.typeName} = ${model.unions.map(x => `${x}`).join(" | ")}
88
+ `).join("")}${models.map(model => `
89
+ // ${model.aboveComment}
90
+ export type ${model.typeName} = {${model.properties.map(p => `
91
+ ${p.name}${p.canBeUndefined ? "?" : ""}: ${p.typeUnion}`).join("")}
92
+ }${model.extends.map(x => ` & ${x}`).join("")}
93
+ `).join("")}
94
+
95
+ `;
96
+ return fileText;
97
+ }
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/datamodel/ts-gen/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAqBA,0DAKC;AAzBD,0CAAuC;AAoBvC,SAAsB,uBAAuB,CAAC,KAAgB,EAAE,OAAe;;QAC9E,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QACvC,KAAK,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAA,oBAAS,EAAC,GAAG,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC1E,CAAC;IACF,CAAC;CAAA;AACD,SAAS,eAAe,CAAC,KAAgB;IACxC,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,GAAG,KAAK,CAAC,SAAS,WAAW;YACvC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;SACjC,CAAC,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAc;IACvC,MAAM,MAAM,GAAqB,EAAE,CAAA;IACnC,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAgDI;IAEH,IAAI,QAAQ,GAAG,yBAAyB,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;KAC3F,KAAK,CAAC,YAAY;cACT,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;CAC1E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;KAC7B,KAAK,CAAC,YAAY;cACT,KAAK,CAAC,QAAQ,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;GAC1D,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;GAChE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;CAC5C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;EAET,CAAA;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export interface EnvConfig {
2
+ }
3
+ export declare const Env: EnvConfig;
package/dist/env.js ADDED
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Env = void 0;
4
+ require("dotenv").config();
5
+ const env = process.env;
6
+ const coStrings = (env['CORS_ORIGINS'] || '*').split('');
7
+ exports.Env = {};
8
+ /*
9
+ export const initialiseEnv = (config?: EnvConfig): void => {
10
+ const cwdPath = process.cwd()
11
+ Env.corsOrigins = coStrings
12
+ Env.host = env['HOST'] ?? "localhost"
13
+ Env.port = env['PORT'] ? parseInt(env['PORT']) : 3000
14
+ Env.fileStore = path.resolve(cwdPath, env['FILE_STORE'] || './auto_data/store'),
15
+ Env.tempFileStore = path.resolve(cwdPath, env['TEMP_FILE_STORE'] || './auto_data/temp')
16
+ Env.multerFileStore = path.resolve(Env.tempFileStore, "./multer")
17
+ Env.logFileStore = path.resolve(cwdPath, env['LOG_FILE_STORE'] || './auto_data/log')
18
+ Env.classFileDump = env['CLASS_FILE_DUMP'] || ''
19
+ initialisePG(Env)
20
+ //initialiseStripe(Env)
21
+
22
+ if (config) {
23
+ //If a configuration object has been supplied, overwrite the apporpriate values
24
+ const keys = Object.keys(Env) as (keyof EnvConfig)[]
25
+ for (let key of keys) {
26
+ //Skip if the config object doesn't have a value for the key
27
+ if (!(key in config)) continue
28
+
29
+ //Override the environment value with the config object's value
30
+ (Env[key] as (EnvConfig[keyof EnvConfig])) = config[key]
31
+ }
32
+ }
33
+ }
34
+
35
+ function initialisePG(config: EnvConfig) {
36
+ if (!env['PG_HOST']) {
37
+ throw (new Error(`No PG_HOST provided`))
38
+ }
39
+
40
+ if (!env['PG_USER']) {
41
+ throw (new Error(`No PG_USER provided`))
42
+ }
43
+
44
+ if (!env['PG_PASSWORD']) {
45
+ throw (new Error(`No PG_PASSWORD provided`))
46
+ }
47
+
48
+ if (!env['PG_DATABASE']) {
49
+ throw (new Error(`No PG_DATABASE provided`))
50
+ }
51
+
52
+ if (!env['PG_PORT']) {
53
+ console.warn(`No PG_PORT provided, defaulting to 5432`)
54
+ }
55
+
56
+ config.pg = {
57
+ host: env['PG_HOST'],
58
+ user: env['PG_USER'],
59
+ password: env['PG_PASSWORD'],
60
+ database: env['PG_DATABASE'],
61
+ port: parseInt(env['PG_PORT'] ?? '5432')
62
+ }
63
+ }
64
+
65
+ function initialiseStripe(config: EnvConfig) {
66
+ if (!env['STRIPE_SECRET_KEY']) {
67
+ throw (new Error('No STRIPE_SECRET_KEY provided'))
68
+ }
69
+
70
+ config.stripe = {
71
+ secretKey: env['STRIPE_SECRET_KEY'],
72
+ publishableKey: ''
73
+ }
74
+ }
75
+ export async function initialiseFileStores() : Promise<void> {
76
+ try{
77
+ await mkDirIfNotExists(Env.fileStore)
78
+ await mkDirIfNotExists(Env.logFileStore)
79
+ await mkDirIfNotExists(Env.tempFileStore)
80
+ await mkDirIfNotExists(Env.multerFileStore)
81
+ }
82
+ catch(err) {
83
+ throw new Error("could not initialise filestores")
84
+ }
85
+ }
86
+ */
87
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../lib/env.ts"],"names":[],"mappings":";;;AAEA,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;AA4B1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAEvB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAE3C,QAAA,GAAG,GAAc,EAAe,CAAA;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EE"}
@@ -0,0 +1,2 @@
1
+ export type { InDataModel } from './datamodel/db-model/in-data-model';
2
+ export declare function defineSchema<T>(schema: T): T;
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineSchema = defineSchema;
4
+ function defineSchema(schema) {
5
+ return schema;
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAFD,SAAgB,YAAY,CAAI,MAAS;IACvC,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const toLowerCaseArray: (inText: string) => string[];
2
+ export declare const toPgFormat: (inText: string) => string;
3
+ export declare const toHyphenFormat: (inText: string) => string;
4
+ export declare const toLabelFormat: (inText: string, startsLow?: boolean) => string;
5
+ export declare const toCamelFormat: (inText: string, startsLow?: boolean) => string;
6
+ export declare const toJsonFormat: (inText: string) => string;
7
+ export type VariantNamed = {
8
+ name: string;
9
+ pgName: string;
10
+ routeName: string;
11
+ className: string;
12
+ jsonName: string;
13
+ upperLabel: string;
14
+ lowerLabel: string;
15
+ };
16
+ export declare function getVariantNames(name: string, label?: string): VariantNamed;
17
+ export declare const caseFirst: (text: string, makeUpper: boolean) => string;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.caseFirst = exports.toJsonFormat = exports.toCamelFormat = exports.toLabelFormat = exports.toHyphenFormat = exports.toPgFormat = exports.toLowerCaseArray = void 0;
4
+ exports.getVariantNames = getVariantNames;
5
+ const toLowerCaseArray = (inText) => {
6
+ let text = inText.trim().replace(/([a-z](?=[A-Z]))/g, '$1 ');
7
+ text = text.toLowerCase();
8
+ const nameParts = [];
9
+ const matches = [...text.matchAll(/[a-zA-Z]+/gm)];
10
+ for (let match of matches) {
11
+ nameParts.push(match[0]);
12
+ }
13
+ return nameParts;
14
+ };
15
+ exports.toLowerCaseArray = toLowerCaseArray;
16
+ const toPgFormat = (inText) => {
17
+ const lca = (0, exports.toLowerCaseArray)(inText);
18
+ return lca.join("_");
19
+ };
20
+ exports.toPgFormat = toPgFormat;
21
+ const toHyphenFormat = (inText) => {
22
+ const lca = (0, exports.toLowerCaseArray)(inText);
23
+ return lca.join("-");
24
+ };
25
+ exports.toHyphenFormat = toHyphenFormat;
26
+ const toLabelFormat = (inText, startsLow = true) => {
27
+ let returnMe = (0, exports.toLowerCaseArray)(inText);
28
+ if (!startsLow) {
29
+ returnMe = returnMe.map(x => x[0].toUpperCase() + x.slice(1));
30
+ }
31
+ return returnMe.join(" ");
32
+ };
33
+ exports.toLabelFormat = toLabelFormat;
34
+ const toCamelFormat = (inText, startsLow = true) => {
35
+ const array = (0, exports.toLowerCaseArray)(inText).map((x, i) => {
36
+ return i == 0 && startsLow ? x : x[0].toUpperCase() + x.slice(1);
37
+ });
38
+ return array.join("");
39
+ };
40
+ exports.toCamelFormat = toCamelFormat;
41
+ const toJsonFormat = (inText) => {
42
+ return (0, exports.toCamelFormat)(inText, true);
43
+ };
44
+ exports.toJsonFormat = toJsonFormat;
45
+ function getVariantNames(name, label) {
46
+ const pgName = (0, exports.toPgFormat)(name);
47
+ const vn = {
48
+ name: name, // myTitle
49
+ pgName: pgName, // my_title
50
+ routeName: (0, exports.toHyphenFormat)(name), // my-title
51
+ className: (0, exports.toCamelFormat)(name, false), //MyTitle
52
+ jsonName: (0, exports.toCamelFormat)(name, true), //myTitle
53
+ upperLabel: (0, exports.toLabelFormat)(name, false), // My Title
54
+ lowerLabel: (0, exports.toLabelFormat)(name, true) // my title
55
+ };
56
+ if (label) {
57
+ vn.upperLabel = (0, exports.toLabelFormat)(label, false);
58
+ vn.lowerLabel = (0, exports.toLabelFormat)(label, true);
59
+ }
60
+ return vn;
61
+ }
62
+ const caseFirst = (text, makeUpper) => {
63
+ return (makeUpper ? text[0].toUpperCase() : text[0].toLowerCase()) + text.slice(1);
64
+ };
65
+ exports.caseFirst = caseFirst;
66
+ //# sourceMappingURL=casing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.js","sourceRoot":"","sources":["../../lib/utils/casing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function spaceSchemaName(id: number): string;
2
+ export declare function genPubId(prefix: string, id: number): string;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.spaceSchemaName = spaceSchemaName;
4
+ exports.genPubId = genPubId;
5
+ const genutils_1 = require("./genutils");
6
+ function spaceSchemaName(id) {
7
+ return `space_${id}`;
8
+ }
9
+ function genPubId(prefix, id) {
10
+ return `${prefix}-${(0, genutils_1.bulkNumber)(id, 3)}`;
11
+ }
12
+ //# sourceMappingURL=conventions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../lib/utils/conventions.ts"],"names":[],"mappings":";;AAEA,0CAEC;AACD,4BAEC;AAPD,yCAAuC;AAEvC,SAAgB,eAAe,CAAC,EAAU;IACzC,OAAO,SAAS,EAAE,EAAE,CAAA;AACrB,CAAC;AACD,SAAgB,QAAQ,CAAC,MAAc,EAAE,EAAU;IAClD,OAAO,GAAG,MAAM,IAAI,IAAA,qBAAU,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;AACxC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { ExecOptions, SpawnOptions } from 'child_process';
2
+ import { Readable } from 'node:stream';
3
+ export declare function randBetween(min: number, max: number, dps?: number): number;
4
+ export declare function round(num: number, dps?: number): number;
5
+ export declare function bulkNumber(num: number, length: number): string;
6
+ export declare function indexedToArray<T>(indexedSignature: {
7
+ [key: string]: T;
8
+ }): {
9
+ key: string;
10
+ value: T;
11
+ }[];
12
+ /***
13
+ * @description splits an array and returns both true and false as seperate arrays
14
+ * @splitMe the array to split
15
+ * @splitter the function to use to split
16
+ * @returns an array of arrays [[true results],[false results]]
17
+ * */
18
+ export declare const splitFilter: <T>(splitMe: T[], splitter: (item: T) => boolean) => T[][];
19
+ export declare function sleep(ms: number): Promise<void>;
20
+ export declare function retry<T>(f: (attempt: number) => Promise<T>, waitMs?: number, maxAttempts?: number): Promise<T | undefined>;
21
+ export declare function fromFile<T>(filePath: string): Promise<T>;
22
+ export declare function toFile<T>(filePath: string, item: T): Promise<void>;
23
+ export declare function cleanDir(filePath: string, rmSubDirs: boolean, pathExclusions?: RegExp[]): Promise<boolean>;
24
+ export declare function rmDir(filePath: string, pathExclusions?: RegExp[]): Promise<boolean>;
25
+ export interface CopyIgnoreOptions {
26
+ ignoreFiles?: string[];
27
+ ignoreDirs?: string[];
28
+ }
29
+ export declare function copyDir(from: string, to: string, ignore?: CopyIgnoreOptions): Promise<void>;
30
+ export interface IFileHandle {
31
+ path: string;
32
+ name: string;
33
+ }
34
+ export interface IDir extends IFileHandle {
35
+ files: IFileHandle[];
36
+ subDirs: IDir[];
37
+ }
38
+ export declare function readDirStruct(dirPath: string, pathExclusions?: RegExp[]): Promise<IDir>;
39
+ export declare function exists(filePath: string): Promise<boolean>;
40
+ export declare function mkDirIfNotExists(filePath: string): Promise<void>;
41
+ export declare function mkDir(filePath: string): Promise<void>;
42
+ export declare function moveFile(fromPath: string, toPath: string): Promise<void>;
43
+ export declare function changeUnits(num: number, units: string, desiredUnits: string): number;
44
+ export declare const numberToRoman: (number: number) => string;
45
+ export declare const numberToAlpha: (number: number) => string;
46
+ /**
47
+ * Executes a shell command and return it as a Promise.
48
+ * @param cmd {string}
49
+ * @return {Promise<string>}
50
+ */
51
+ export declare function execShellCommand(cmd: string, options?: ExecOptions): Promise<string>;
52
+ export declare function spawnShellCommand(cmd: string, args?: string[], options?: SpawnOptions, messenger?: (data: any, warn: boolean) => void): Promise<void>;
53
+ export declare function consoleOverwrite(text: string): void;
54
+ export declare function readToBuffer(stream: Readable): Promise<Buffer>;
55
+ export declare const hasValue: <T>(item: T | undefined | null) => item is T;