@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
package/README.md ADDED
@@ -0,0 +1,103 @@
1
+ # bpg-gen
2
+
3
+ Development-time database code generator.
4
+
5
+ `bpg-gen` runs inside a consumer repository, reads `bgen.json`, loads a TypeScript schema, and generates database migration SQL plus TypeScript database model/types. CRUD service/controller generation is optional.
6
+
7
+ ## Install
8
+
9
+ Public npm package:
10
+
11
+ ```bash
12
+ npm install -D @scmbwis/bpg-gen
13
+ ```
14
+
15
+ If your npm organization scope is not `@scmbwis`, change the package scope in `package.json` before publishing.
16
+
17
+ ## Consumer Script
18
+
19
+ ```json
20
+ {
21
+ "scripts": {
22
+ "codegen": "bpg-gen generate"
23
+ }
24
+ }
25
+ ```
26
+
27
+ The legacy `bgen` binary is still exposed as an alias.
28
+
29
+ ## bgen.json
30
+
31
+ Create `bgen.json` at the consumer project root:
32
+
33
+ ```json
34
+ {
35
+ "schema": "./src/schema/schema.ts",
36
+ "output": {
37
+ "types": "./src/generated/types",
38
+ "db": "./src/generated/db"
39
+ },
40
+ "options": {
41
+ "clean": true
42
+ }
43
+ }
44
+ ```
45
+
46
+ CRUD service/controller generation is off by default. Enable it explicitly:
47
+
48
+ ```json
49
+ {
50
+ "schema": "./src/schema/schema.ts",
51
+ "output": {
52
+ "types": "./src/generated/types",
53
+ "db": "./src/generated/db",
54
+ "crud": "./src/generated/crud"
55
+ },
56
+ "options": {
57
+ "clean": true,
58
+ "generateCrud": true
59
+ }
60
+ }
61
+ ```
62
+
63
+ ## Schema
64
+
65
+ ```ts
66
+ import { defineSchema } from '@scmbwis/bpg-gen'
67
+ import type { InDataModel } from '@scmbwis/bpg-gen'
68
+
69
+ export default defineSchema<InDataModel>({
70
+ schemaName: 'public',
71
+ tables: [
72
+ {
73
+ name: 'user',
74
+ cols: [
75
+ { name: 'identity_key', dataType: 'string', required: true, immutable: true },
76
+ { name: 'display_name', dataType: 'string', stringFormat: 'title', required: true }
77
+ ]
78
+ }
79
+ ]
80
+ })
81
+ ```
82
+
83
+ Run:
84
+
85
+ ```bash
86
+ npm run codegen
87
+ ```
88
+
89
+ ## Build And Test
90
+
91
+ ```bash
92
+ npm run build
93
+ npm run test:hardening
94
+ ```
95
+
96
+ ## Publish
97
+
98
+ ```bash
99
+ npm login
100
+ npm publish
101
+ ```
102
+
103
+ `publishConfig.access=public` is already set for public scoped npm publishing.
@@ -0,0 +1,13 @@
1
+ export interface BgenConfig {
2
+ schema: string;
3
+ output: {
4
+ types: string;
5
+ crud?: string;
6
+ db: string;
7
+ };
8
+ options?: {
9
+ clean?: boolean;
10
+ generateCrud?: boolean;
11
+ };
12
+ }
13
+ export declare function readBgenConfig(projectRoot: string): Promise<BgenConfig>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.readBgenConfig = readBgenConfig;
46
+ const fs = __importStar(require("node:fs/promises"));
47
+ const path = __importStar(require("node:path"));
48
+ function readBgenConfig(projectRoot) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const configPath = path.resolve(projectRoot, 'bgen.json');
51
+ let parsed;
52
+ try {
53
+ const file = yield fs.readFile(configPath, 'utf8');
54
+ parsed = JSON.parse(file);
55
+ }
56
+ catch (err) {
57
+ throw new Error(`Unable to read bgen config at ${configPath}. Ensure bgen.json exists and contains valid JSON.`);
58
+ }
59
+ validateConfig(parsed);
60
+ return parsed;
61
+ });
62
+ }
63
+ function validateConfig(value) {
64
+ if (!value || typeof value !== 'object')
65
+ throw new Error('bgen.json must be a JSON object.');
66
+ const v = value;
67
+ if (typeof v.schema !== 'string' || v.schema.trim().length === 0) {
68
+ throw new Error('bgen.json requires a non-empty string: schema');
69
+ }
70
+ if (!v.output || typeof v.output !== 'object') {
71
+ throw new Error('bgen.json requires output object with keys: types, db');
72
+ }
73
+ const out = v.output;
74
+ for (const key of ['types', 'db']) {
75
+ const raw = out[key];
76
+ if (typeof raw !== 'string' || raw.trim().length === 0) {
77
+ throw new Error(`bgen.json output.${key} must be a non-empty string path`);
78
+ }
79
+ }
80
+ if (v.options !== undefined && typeof v.options !== 'object') {
81
+ throw new Error('bgen.json options must be an object when provided');
82
+ }
83
+ const options = v.options;
84
+ if ((options === null || options === void 0 ? void 0 : options.generateCrud) !== undefined && typeof options.generateCrud !== 'boolean') {
85
+ throw new Error('bgen.json options.generateCrud must be a boolean when provided');
86
+ }
87
+ if ((options === null || options === void 0 ? void 0 : options.generateCrud) === true) {
88
+ const crud = out.crud;
89
+ if (typeof crud !== 'string' || crud.trim().length === 0) {
90
+ throw new Error('bgen.json output.crud must be a non-empty string path when options.generateCrud=true');
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/cli/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,wCAYC;AA5BD,qDAAsC;AACtC,gDAAiC;AAejC,SAAsB,cAAc,CAAC,WAAmB;;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACzD,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAClD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,oDAAoD,CAAC,CAAA;QAClH,CAAC;QAED,cAAc,CAAC,MAAM,CAAC,CAAA;QACtB,OAAO,MAAM,CAAA;IACf,CAAC;CAAA;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IAC5F,MAAM,CAAC,GAAG,KAAgC,CAAA;IAC1C,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAiC,CAAA;IAC/C,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAU,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,kCAAkC,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,CAAC,OAA8C,CAAA;IAChE,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,MAAK,SAAS,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,MAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACrB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAA;QACzG,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { InDataModel } from '../datamodel/db-model/in-data-model';
2
+ import { BgenConfig } from './config';
3
+ export interface ResolvedBgenOutput {
4
+ types: string;
5
+ crud?: string;
6
+ db: string;
7
+ }
8
+ export declare function generateFromConfig(projectRoot: string, config: BgenConfig, schema: InDataModel): Promise<ResolvedBgenOutput>;
9
+ export declare function resolveOutputPaths(projectRoot: string, config: BgenConfig): ResolvedBgenOutput;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.generateFromConfig = generateFromConfig;
46
+ exports.resolveOutputPaths = resolveOutputPaths;
47
+ const fs = __importStar(require("node:fs/promises"));
48
+ const path = __importStar(require("node:path"));
49
+ const gendb_1 = require("../commands/gendb");
50
+ const gentsaccessmodel_1 = require("../commands/nest-express/gentsaccessmodel");
51
+ const gennestservicemodels_1 = require("../commands/nest-express/gennestservicemodels");
52
+ const data_model_builder_1 = require("../datamodel/db-model/data-model-builder");
53
+ function generateFromConfig(projectRoot, config, schema) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ var _a, _b;
56
+ const output = resolveOutputPaths(projectRoot, config);
57
+ if ((_a = config.options) === null || _a === void 0 ? void 0 : _a.clean) {
58
+ const cleanTargets = [
59
+ cleanOutputDir(output.types),
60
+ cleanOutputDir(output.db),
61
+ ];
62
+ if (config.options.generateCrud && output.crud) {
63
+ cleanTargets.push(cleanOutputDir(output.crud));
64
+ }
65
+ yield Promise.all(cleanTargets);
66
+ }
67
+ const dataModel = (0, data_model_builder_1.getDataModel)(schema);
68
+ yield (0, gendb_1.genDbScriptFromDataModel)(dataModel, output.db);
69
+ yield (0, gentsaccessmodel_1.createTsAccessFromDataModel)(dataModel, [output.types]);
70
+ if (((_b = config.options) === null || _b === void 0 ? void 0 : _b.generateCrud) && output.crud) {
71
+ yield (0, gennestservicemodels_1.genNestServicesFromDataModel)(dataModel, output.crud);
72
+ }
73
+ return output;
74
+ });
75
+ }
76
+ function resolveOutputPaths(projectRoot, config) {
77
+ return {
78
+ types: resolveProjectPath(projectRoot, config.output.types, 'output.types'),
79
+ crud: config.output.crud ? resolveProjectPath(projectRoot, config.output.crud, 'output.crud') : undefined,
80
+ db: resolveProjectPath(projectRoot, config.output.db, 'output.db'),
81
+ };
82
+ }
83
+ function resolveProjectPath(projectRoot, rawPath, label) {
84
+ const root = path.resolve(projectRoot);
85
+ const resolved = path.resolve(root, rawPath);
86
+ const relative = path.relative(root, resolved);
87
+ if (relative === '' || relative.startsWith('..') || path.isAbsolute(relative)) {
88
+ throw new Error(`Refusing to write outside project root: ${label} resolves to ${resolved}`);
89
+ }
90
+ return resolved;
91
+ }
92
+ function cleanOutputDir(dirPath) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ yield fs.rm(dirPath, { recursive: true, force: true });
95
+ });
96
+ }
97
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../lib/cli/generate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,gDAsBC;AAED,gDAMC;AA7CD,qDAAsC;AACtC,gDAAiC;AACjC,6CAA4D;AAC5D,gFAAuF;AACvF,wFAA4F;AAC5F,iFAAuE;AAUvE,SAAsB,kBAAkB,CAAC,WAAmB,EAAE,MAAkB,EAAE,MAAmB;;;QACpG,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAEtD,IAAI,MAAA,MAAM,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG;gBACpB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;aACzB,CAAA;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/C,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,iCAAY,EAAC,MAAM,CAAC,CAAA;QACtC,MAAM,IAAA,gCAAwB,EAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QACpD,MAAM,IAAA,8CAA2B,EAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,YAAY,KAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,IAAA,mDAA4B,EAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;CAAA;AAED,SAAgB,kBAAkB,CAAC,WAAmB,EAAE,MAAkB;IACzE,OAAO;QACN,KAAK,EAAE,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;QAC3E,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACzG,EAAE,EAAE,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC;KAClE,CAAA;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB,EAAE,OAAe,EAAE,KAAa;IAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAE9C,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,gBAAgB,QAAQ,EAAE,CAAC,CAAA;IAC5F,CAAC;IAED,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,SAAe,cAAc,CAAC,OAAe;;QAC5C,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvD,CAAC;CAAA"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ const config_1 = require("./config");
14
+ const generate_1 = require("./generate");
15
+ const schema_loader_1 = require("./schema-loader");
16
+ function run() {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ var _a;
19
+ const command = process.argv[2];
20
+ if (command !== 'generate') {
21
+ console.error('Unknown command. Usage: bgen generate');
22
+ process.exitCode = 1;
23
+ return;
24
+ }
25
+ const projectRoot = process.cwd();
26
+ const config = yield (0, config_1.readBgenConfig)(projectRoot);
27
+ const schema = yield (0, schema_loader_1.loadSchema)(projectRoot, config.schema);
28
+ const output = yield (0, generate_1.generateFromConfig)(projectRoot, config, schema);
29
+ const crudMessage = ((_a = config.options) === null || _a === void 0 ? void 0 : _a.generateCrud) && output.crud ? `, and crud output to ${output.crud}` : '';
30
+ console.log(`bgen generate: wrote db output to ${output.db}, types output to ${output.types}${crudMessage}`);
31
+ });
32
+ }
33
+ run().catch((err) => {
34
+ console.error(err instanceof Error ? err.message : err);
35
+ process.exitCode = 1;
36
+ });
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAyC;AACzC,yCAA+C;AAC/C,mDAA4C;AAE5C,SAAe,GAAG;;;QAChB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;YACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAc,EAAC,WAAW,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAU,EAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAkB,EAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAEpE,MAAM,WAAW,GAAG,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,YAAY,KAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5G,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,CAAC,EAAE,qBAAqB,MAAM,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC,CAAA;IAC9G,CAAC;CAAA;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAClB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACvD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { InDataModel } from '../datamodel/db-model/in-data-model';
2
+ export declare function loadSchema(projectRoot: string, schemaPath: string): Promise<InDataModel>;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.loadSchema = loadSchema;
46
+ const path = __importStar(require("node:path"));
47
+ const node_url_1 = require("node:url");
48
+ const dynamicImport = new Function('specifier', 'return import(specifier)');
49
+ const { require: tsxRequire } = require('tsx/cjs/api');
50
+ const moduleBuiltin = require('node:module');
51
+ const schemaHelperPackages = new Set(['@scmbwis/bpg-gen', 'bpg-gen', 'bgen']);
52
+ function loadSchema(projectRoot, schemaPath) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ const resolved = path.resolve(projectRoot, schemaPath);
55
+ const moduleUrl = (0, node_url_1.pathToFileURL)(resolved).href;
56
+ const loaded = yield loadSchemaModule(resolved, moduleUrl, projectRoot);
57
+ const schema = getSchemaExport(loaded);
58
+ if (!schema) {
59
+ throw new Error(`Schema module loaded from ${resolved}, but no schema export was found. Use \`export default schema\` or \`export const schema = ...\`.`);
60
+ }
61
+ return schema;
62
+ });
63
+ }
64
+ function loadSchemaModule(resolved, moduleUrl, projectRoot) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ if (/\.[cm]?tsx?$/.test(resolved)) {
67
+ return loadTypeScriptSchema(resolved, projectRoot);
68
+ }
69
+ return yield dynamicImport(moduleUrl);
70
+ });
71
+ }
72
+ function loadTypeScriptSchema(resolved, projectRoot) {
73
+ const originalLoad = moduleBuiltin._load;
74
+ moduleBuiltin._load = function patchedLoad(request, parent, isMain) {
75
+ if (schemaHelperPackages.has(request) && isProjectSchemaParent(parent, projectRoot)) {
76
+ return {
77
+ defineSchema: (schema) => schema,
78
+ };
79
+ }
80
+ return originalLoad(request, parent, isMain);
81
+ };
82
+ try {
83
+ return tsxRequire(resolved, path.join(projectRoot, 'bgen.json'));
84
+ }
85
+ finally {
86
+ moduleBuiltin._load = originalLoad;
87
+ }
88
+ }
89
+ function isProjectSchemaParent(parent, projectRoot) {
90
+ const filename = typeof parent === 'object' && parent !== null && 'filename' in parent
91
+ ? String(parent.filename)
92
+ : '';
93
+ return filename.length > 0 && path.resolve(filename).startsWith(path.resolve(projectRoot));
94
+ }
95
+ function getSchemaExport(value, depth = 0) {
96
+ var _a;
97
+ if (!value || typeof value !== 'object' || depth > 4)
98
+ return undefined;
99
+ const record = value;
100
+ if (Array.isArray(record.tables))
101
+ return value;
102
+ return (_a = getSchemaExport(record.schema, depth + 1)) !== null && _a !== void 0 ? _a : getSchemaExport(record.default, depth + 1);
103
+ }
104
+ //# sourceMappingURL=schema-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../lib/cli/schema-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function genMockDataScript(modelKey: string): Promise<void>;