@memberjunction/codegen-lib 2.47.0 → 2.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/Angular/angular-codegen.d.ts +164 -6
  2. package/dist/Angular/angular-codegen.d.ts.map +1 -1
  3. package/dist/Angular/angular-codegen.js +179 -25
  4. package/dist/Angular/angular-codegen.js.map +1 -1
  5. package/dist/Angular/join-grid-related-entity-component.d.ts +52 -3
  6. package/dist/Angular/join-grid-related-entity-component.d.ts.map +1 -1
  7. package/dist/Angular/join-grid-related-entity-component.js +58 -3
  8. package/dist/Angular/join-grid-related-entity-component.js.map +1 -1
  9. package/dist/Angular/related-entity-components.d.ts +99 -42
  10. package/dist/Angular/related-entity-components.d.ts.map +1 -1
  11. package/dist/Angular/related-entity-components.js +116 -26
  12. package/dist/Angular/related-entity-components.js.map +1 -1
  13. package/dist/Angular/timeline-related-entity-component.d.ts +46 -7
  14. package/dist/Angular/timeline-related-entity-component.d.ts.map +1 -1
  15. package/dist/Angular/timeline-related-entity-component.js +64 -7
  16. package/dist/Angular/timeline-related-entity-component.js.map +1 -1
  17. package/dist/Angular/user-view-grid-related-entity-component.d.ts +33 -1
  18. package/dist/Angular/user-view-grid-related-entity-component.d.ts.map +1 -1
  19. package/dist/Angular/user-view-grid-related-entity-component.js +33 -1
  20. package/dist/Angular/user-view-grid-related-entity-component.js.map +1 -1
  21. package/dist/Config/config.d.ts +369 -45
  22. package/dist/Config/config.d.ts.map +1 -1
  23. package/dist/Config/config.js +136 -2
  24. package/dist/Config/config.js.map +1 -1
  25. package/dist/Config/db-connection.d.ts +17 -3
  26. package/dist/Config/db-connection.d.ts.map +1 -1
  27. package/dist/Config/db-connection.js +31 -19
  28. package/dist/Config/db-connection.js.map +1 -1
  29. package/dist/Database/dbSchema.d.ts +44 -1
  30. package/dist/Database/dbSchema.d.ts.map +1 -1
  31. package/dist/Database/dbSchema.js +46 -13
  32. package/dist/Database/dbSchema.js.map +1 -1
  33. package/dist/Database/manage-metadata.d.ts +52 -46
  34. package/dist/Database/manage-metadata.d.ts.map +1 -1
  35. package/dist/Database/manage-metadata.js +235 -191
  36. package/dist/Database/manage-metadata.js.map +1 -1
  37. package/dist/Database/reorder-columns.d.ts +2 -2
  38. package/dist/Database/reorder-columns.d.ts.map +1 -1
  39. package/dist/Database/reorder-columns.js +23 -17
  40. package/dist/Database/reorder-columns.js.map +1 -1
  41. package/dist/Database/sql.d.ts +4 -4
  42. package/dist/Database/sql.d.ts.map +1 -1
  43. package/dist/Database/sql.js +5 -16
  44. package/dist/Database/sql.js.map +1 -1
  45. package/dist/Database/sql_codegen.d.ts +15 -15
  46. package/dist/Database/sql_codegen.d.ts.map +1 -1
  47. package/dist/Database/sql_codegen.js +186 -123
  48. package/dist/Database/sql_codegen.js.map +1 -1
  49. package/dist/Misc/action_subclasses_codegen.d.ts.map +1 -1
  50. package/dist/Misc/action_subclasses_codegen.js +2 -12
  51. package/dist/Misc/action_subclasses_codegen.js.map +1 -1
  52. package/dist/Misc/advanced_generation.d.ts.map +1 -1
  53. package/dist/Misc/advanced_generation.js +82 -92
  54. package/dist/Misc/advanced_generation.js.map +1 -1
  55. package/dist/Misc/createNewUser.d.ts.map +1 -1
  56. package/dist/Misc/createNewUser.js +2 -12
  57. package/dist/Misc/createNewUser.js.map +1 -1
  58. package/dist/Misc/entity_subclasses_codegen.d.ts +5 -5
  59. package/dist/Misc/entity_subclasses_codegen.d.ts.map +1 -1
  60. package/dist/Misc/entity_subclasses_codegen.js +12 -20
  61. package/dist/Misc/entity_subclasses_codegen.js.map +1 -1
  62. package/dist/Misc/graphql_server_codegen.d.ts.map +1 -1
  63. package/dist/Misc/graphql_server_codegen.js +35 -40
  64. package/dist/Misc/graphql_server_codegen.js.map +1 -1
  65. package/dist/Misc/runCommand.d.ts.map +1 -1
  66. package/dist/Misc/runCommand.js +2 -12
  67. package/dist/Misc/runCommand.js.map +1 -1
  68. package/dist/Misc/sql_logging.d.ts +2 -2
  69. package/dist/Misc/sql_logging.d.ts.map +1 -1
  70. package/dist/Misc/sql_logging.js +4 -3
  71. package/dist/Misc/sql_logging.js.map +1 -1
  72. package/dist/Misc/status_logging.d.ts +37 -0
  73. package/dist/Misc/status_logging.d.ts.map +1 -1
  74. package/dist/Misc/status_logging.js +147 -14
  75. package/dist/Misc/status_logging.js.map +1 -1
  76. package/dist/Misc/system_integrity.d.ts +9 -9
  77. package/dist/Misc/system_integrity.d.ts.map +1 -1
  78. package/dist/Misc/system_integrity.js +23 -21
  79. package/dist/Misc/system_integrity.js.map +1 -1
  80. package/dist/index.d.ts +45 -7
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +51 -7
  83. package/dist/index.js.map +1 -1
  84. package/dist/runCodeGen.d.ts +84 -6
  85. package/dist/runCodeGen.d.ts.map +1 -1
  86. package/dist/runCodeGen.js +244 -93
  87. package/dist/runCodeGen.js.map +1 -1
  88. package/package.json +14 -14
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ /**
3
+ * Main orchestrator for the MemberJunction code generation process.
4
+ * Coordinates all aspects of code generation including database schema analysis,
5
+ * metadata management, SQL generation, TypeScript entities, Angular components,
6
+ * GraphQL resolvers, and more.
7
+ */
2
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
9
  if (k2 === undefined) k2 = k;
4
10
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -15,12 +21,6 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
21
  }) : function(o, v) {
16
22
  o["default"] = v;
17
23
  });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
24
  var __importStar = (this && this.__importStar) || function (mod) {
25
25
  if (mod && mod.__esModule) return mod;
26
26
  var result = {};
@@ -34,7 +34,7 @@ const graphql_server_codegen_1 = require("./Misc/graphql_server_codegen");
34
34
  const sql_codegen_1 = require("./Database/sql_codegen");
35
35
  const entity_subclasses_codegen_1 = require("./Misc/entity_subclasses_codegen");
36
36
  const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
37
- const db_connection_1 = __importStar(require("./Config/db-connection"));
37
+ const db_connection_1 = require("./Config/db-connection");
38
38
  const manage_metadata_1 = require("./Database/manage-metadata");
39
39
  const config_1 = require("./Config/config");
40
40
  const status_logging_1 = require("./Misc/status_logging");
@@ -49,64 +49,114 @@ const action_subclasses_codegen_1 = require("./Misc/action_subclasses_codegen");
49
49
  const sql_logging_1 = require("./Misc/sql_logging");
50
50
  const system_integrity_1 = require("./Misc/system_integrity");
51
51
  const actions_base_1 = require("@memberjunction/actions-base");
52
+ /** Extract core schema name from configuration */
52
53
  const { mjCoreSchema } = config_1.configInfo;
53
54
  /**
54
- * This class is the main entry point for running the code generation process. It will handle all the steps required to generate the code for the MemberJunction system. You can sub-class this class
55
- * and override specific methods as desired to customize the code generation process.
55
+ * Main orchestrator class for the MemberJunction code generation process.
56
+ *
57
+ * This class coordinates a comprehensive code generation pipeline that transforms
58
+ * database schemas into a complete, type-safe, full-stack application. The process includes:
59
+ *
60
+ * **Pipeline Steps:**
61
+ * 1. **Database Setup** - Initialize connections and metadata
62
+ * 2. **Metadata Management** - Analyze schema changes and update metadata
63
+ * 3. **SQL Generation** - Create views, procedures, and indexes
64
+ * 4. **TypeScript Entities** - Generate entity classes with validation
65
+ * 5. **Angular Components** - Create forms and UI components
66
+ * 6. **GraphQL Resolvers** - Generate API endpoints
67
+ * 7. **Action Classes** - Create business logic containers
68
+ * 8. **Documentation** - Generate schema JSON for AI/documentation
69
+ * 9. **Post-processing** - Run commands and integrity checks
70
+ *
71
+ * **Customization:**
72
+ * You can sub-class this class and override specific methods to customize
73
+ * the code generation process for your specific needs.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const codeGen = new RunCodeGenBase();
78
+ * await codeGen.Run(); // Full generation
79
+ * await codeGen.Run(true); // Skip database operations
80
+ * ```
56
81
  */
57
- let RunCodeGenBase = class RunCodeGenBase {
82
+ class RunCodeGenBase {
58
83
  /**
59
- * This method is called to setup the data source for the code generation process. You can override this method to customize the data source setup process.
84
+ * Sets up the SQL Server data source and initializes the MemberJunction core metadata.
85
+ * This method establishes the database connection pool and configures the data provider
86
+ * that will be used throughout the code generation process.
87
+ *
88
+ * Override this method to customize the data source setup process for different
89
+ * database providers or connection configurations.
90
+ *
91
+ * @returns Promise resolving to the configured SQLServerDataProvider instance
92
+ * @throws Error if connection setup fails
60
93
  */
61
94
  async setupDataSource() {
62
95
  /****************************************************************************************
63
96
  // First, setup the data source and make sure the metadata and related stuff for MJCore is initialized
64
97
  ****************************************************************************************/
65
- (0, status_logging_1.logStatus)('Initializing Data Source...');
66
- await db_connection_1.default.initialize()
67
- .then(() => {
68
- (0, status_logging_1.logStatus)('Data Source has been initialized!');
69
- })
70
- .catch((err) => {
71
- (0, status_logging_1.logError)('Error during Data Source initialization', err);
72
- });
98
+ (0, status_logging_1.startSpinner)('Initializing database connection...');
73
99
  const pool = await (0, db_connection_1.MSSQLConnection)(); // get the MSSQL connection pool
74
- const config = new sqlserver_dataprovider_2.SQLServerProviderConfigData(db_connection_1.default, '', (0, config_1.mj_core_schema)(), 0);
100
+ const config = new sqlserver_dataprovider_2.SQLServerProviderConfigData(pool, '', (0, config_1.mj_core_schema)(), 0);
75
101
  const sqlServerProvider = await (0, sqlserver_dataprovider_1.setupSQLServerClient)(config);
102
+ (0, status_logging_1.succeedSpinner)('Database connection initialized');
76
103
  return sqlServerProvider;
77
104
  }
78
105
  /**
79
- * Main entry point to run the code generation process. This method will handle all the steps required to generate the code for the MemberJunction system. You can sub-class this class and
80
- * override this method to customize the code generation process.
81
- * @param skipDatabaseGeneration
106
+ * Main entry point for the complete code generation process.
107
+ *
108
+ * Orchestrates the entire pipeline from database schema analysis to final code output.
109
+ * The process is highly configurable through the configuration file and can be
110
+ * partially skipped for faster iteration during development.
111
+ *
112
+ * **Process Flow:**
113
+ * 1. Initialize data sources and user context
114
+ * 2. Execute pre-generation commands and scripts
115
+ * 3. Manage metadata and schema changes
116
+ * 4. Generate SQL objects (views, procedures, indexes)
117
+ * 5. Generate TypeScript entity classes
118
+ * 6. Generate Angular UI components
119
+ * 7. Generate GraphQL API resolvers
120
+ * 8. Generate Action business logic classes
121
+ * 9. Create documentation JSON
122
+ * 10. Run integrity checks
123
+ * 11. Execute post-generation commands
124
+ *
125
+ * @param skipDatabaseGeneration If true, skips all database-related operations
126
+ * (metadata management, SQL generation). Useful for faster UI-only regeneration.
127
+ * @throws Error if any critical step fails
128
+ * @returns Promise that resolves when generation is complete
82
129
  */
83
130
  async Run(skipDatabaseGeneration = false) {
84
131
  try {
85
132
  const startTime = new Date();
86
- (0, status_logging_1.logStatus)('\n\nSTARTING MJ CodeGen Run... @ ' + startTime.toLocaleString());
133
+ (0, status_logging_1.startSpinner)(`Starting MemberJunction CodeGen @ ${startTime.toLocaleString()}`);
87
134
  const provider = await this.setupDataSource();
88
- await sqlserver_dataprovider_1.UserCache.Instance.Refresh(db_connection_1.default);
135
+ (0, status_logging_1.updateSpinner)('Loading user cache and metadata...');
136
+ const pool = await (0, db_connection_1.MSSQLConnection)();
137
+ await sqlserver_dataprovider_1.UserCache.Instance.Refresh(pool);
89
138
  const userMatch = sqlserver_dataprovider_1.UserCache.Users.find((u) => u?.Type?.trim().toLowerCase() === 'owner');
90
139
  const currentUser = userMatch ? userMatch : sqlserver_dataprovider_1.UserCache.Users[0]; // if we don't find an Owner, use the first user in the cache
91
140
  // get the entity metadata
92
141
  const md = new MJ.Metadata();
93
142
  if (md.Entities.length === 0) {
94
- (0, status_logging_1.logError)('No entities found in metadata, exiting...'); // TODO: add a way to generate the metadata if it doesn't exist
143
+ (0, status_logging_1.failSpinner)('No entities found in metadata');
95
144
  process.exit(1);
96
145
  }
146
+ (0, status_logging_1.succeedSpinner)(`Loaded ${md.Entities.length} entities from metadata`);
97
147
  const runCommandsObject = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(runCommand_1.RunCommandsBase);
98
148
  const sqlCodeGenObject = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(sql_codegen_1.SQLCodeGenBase);
99
149
  // check to see if the user wants to skip database generation via the config settings
100
150
  const skipDB = skipDatabaseGeneration || (0, config_1.getSettingValue)('skip_database_generation', false);
101
151
  if (!skipDB) {
102
- (0, status_logging_1.logStatus)('Handling SQL Script Execution, Metadata Maintenance, and SQL Object Generation... (to skip this, set skip_database_generation to true in the config file under settings)');
152
+ (0, status_logging_1.startSpinner)('Handling SQL Script Execution, Metadata Maintenance, and SQL Object Generation...');
103
153
  sql_logging_1.SQLLogging.initSQLLogging(); // initialize the SQL Logging functionality
104
154
  /****************************************************************************************
105
155
  // STEP 0 --- Precursor Step execute any commands specified in the config file
106
156
  ****************************************************************************************/
107
157
  const beforeCommands = (0, config_1.commands)('BEFORE');
108
158
  if (beforeCommands && beforeCommands.length > 0) {
109
- (0, status_logging_1.logStatus)('Executing BEFORE commands...');
159
+ (0, status_logging_1.updateSpinner)('Executing BEFORE commands...');
110
160
  const results = await runCommandsObject.runCommands(beforeCommands);
111
161
  if (results.some((r) => !r.success))
112
162
  (0, status_logging_1.logError)('ERROR running one or more BEFORE commands');
@@ -114,13 +164,15 @@ let RunCodeGenBase = class RunCodeGenBase {
114
164
  /****************************************************************************************
115
165
  // STEP 0.1 --- Execute any before SQL Scripts specified in the config file
116
166
  ****************************************************************************************/
117
- if (!(await sqlCodeGenObject.runCustomSQLScripts(db_connection_1.default, 'before-all')))
167
+ (0, status_logging_1.updateSpinner)('Executing before-all SQL Scripts...');
168
+ if (!(await sqlCodeGenObject.runCustomSQLScripts(pool, 'before-all')))
118
169
  (0, status_logging_1.logError)('ERROR running before-all SQL Scripts');
119
170
  /****************************************************************************************
120
171
  // STEP 0.2 --- Create a new user if there is newUserSetup info in the config file
121
172
  ****************************************************************************************/
122
173
  const newUserSetup = config_1.configInfo.newUserSetup;
123
174
  if (newUserSetup) {
175
+ (0, status_logging_1.updateSpinner)('Setting up new user...');
124
176
  const newUserObject = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(createNewUser_1.CreateNewUserBase);
125
177
  const result = await newUserObject.createNewUser(newUserSetup);
126
178
  if (!result.Success) {
@@ -137,75 +189,106 @@ let RunCodeGenBase = class RunCodeGenBase {
137
189
  // STEP 1 - Manage Metadata - including generating new metadata as required
138
190
  ****************************************************************************************/
139
191
  const manageMD = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(manage_metadata_1.ManageMetadataBase);
140
- (0, status_logging_1.logStatus)('Managing Metadata...');
141
- const metadataSuccess = await manageMD.manageMetadata(db_connection_1.default, currentUser);
192
+ (0, status_logging_1.updateSpinner)('Managing Metadata...');
193
+ const metadataSuccess = await manageMD.manageMetadata(pool, currentUser);
142
194
  if (!metadataSuccess) {
143
- (0, status_logging_1.logError)('ERROR managing metadata');
195
+ (0, status_logging_1.failSpinner)('ERROR managing metadata');
144
196
  }
145
197
  else {
146
198
  // now - we need to tell our metadata object to refresh itself
147
199
  await provider.Refresh();
200
+ (0, status_logging_1.succeedSpinner)('Metadata management completed');
148
201
  }
149
202
  /****************************************************************************************
150
203
  // STEP 2 - SQL Script Generation
151
204
  ****************************************************************************************/
152
205
  const sqlOutputDir = (0, config_1.outputDir)('SQL', true);
153
206
  if (sqlOutputDir) {
154
- (0, status_logging_1.logStatus)('Managing SQL Scripts and Execution...');
155
- const sqlSuccess = await sqlCodeGenObject.manageSQLScriptsAndExecution(db_connection_1.default, md.Entities, sqlOutputDir, currentUser);
207
+ (0, status_logging_1.startSpinner)('Managing SQL Scripts and Execution...');
208
+ const sqlSuccess = await sqlCodeGenObject.manageSQLScriptsAndExecution(pool, md.Entities, sqlOutputDir, currentUser);
156
209
  if (!sqlSuccess) {
157
- (0, status_logging_1.logError)('Error managing SQL scripts and execution');
210
+ (0, status_logging_1.failSpinner)('Error managing SQL scripts and execution');
211
+ }
212
+ else {
213
+ (0, status_logging_1.succeedSpinner)('SQL scripts and execution completed');
158
214
  }
159
215
  }
160
216
  else {
161
- (0, status_logging_1.logStatus)('SQL output directory NOT found in config file, skipping...');
217
+ (0, status_logging_1.warnSpinner)('SQL output directory NOT found in config file, skipping...');
162
218
  }
163
219
  }
164
220
  else {
165
- (0, status_logging_1.logMessage)('Skipping all database related CodeGen work because skip_database_generation was set to true in the config file under settings', MJ.SeverityType.Warning, false);
221
+ (0, status_logging_1.warnSpinner)('Skipping database generation (skip_database_generation = true)');
166
222
  // we skipped the database generation but we need to load generated code for validators from the database to ensure that we have them
167
223
  // ready for later use.
168
224
  const manageMD = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(manage_metadata_1.ManageMetadataBase);
169
- (0, status_logging_1.logStatus)('Checking/Loading AI Generated Code from Metadata...');
170
- const metadataSuccess = await manageMD.loadGeneratedCode(db_connection_1.default, currentUser);
225
+ (0, status_logging_1.startSpinner)('Checking/Loading AI Generated Code from Metadata...');
226
+ const metadataSuccess = await manageMD.loadGeneratedCode(pool, currentUser);
171
227
  if (!metadataSuccess) {
172
- (0, status_logging_1.logError)('ERROR checking/loading AI Generated Code from Metadata');
228
+ (0, status_logging_1.failSpinner)('ERROR checking/loading AI Generated Code from Metadata');
173
229
  return; // FATAL ERROR - we can't continue
174
230
  }
231
+ else {
232
+ (0, status_logging_1.succeedSpinner)('AI Generated Code loaded from Metadata');
233
+ }
175
234
  }
176
235
  const coreEntities = md.Entities.filter((e) => e.IncludeInAPI).filter((e) => e.SchemaName.trim().toLowerCase() === mjCoreSchema.trim().toLowerCase());
177
236
  const nonCoreEntities = md.Entities.filter((e) => e.IncludeInAPI).filter((e) => e.SchemaName.trim().toLowerCase() !== mjCoreSchema.trim().toLowerCase());
237
+ // Check if we're in verbose mode to determine spinner behavior
238
+ const isVerbose = config_1.configInfo?.verboseOutput ?? false;
239
+ if (!isVerbose) {
240
+ // In non-verbose mode, start a single spinner for all TypeScript generation
241
+ (0, status_logging_1.startSpinner)('Generating TypeScript code...');
242
+ }
178
243
  /****************************************************************************************
179
244
  // STEP 3(a) - GraphQL Server Code Gen
180
245
  ****************************************************************************************/
181
246
  const graphQLCoreResolversOutputDir = (0, config_1.outputDir)('GraphQLCoreEntityResolvers', false);
182
247
  if (graphQLCoreResolversOutputDir) {
183
248
  // generate the GraphQL server code
184
- (0, status_logging_1.logStatus)('Generating CORE Entity GraphQL Resolver Code...');
249
+ if (isVerbose)
250
+ (0, status_logging_1.startSpinner)('Generating CORE Entity GraphQL Resolver Code...');
185
251
  const graphQLGenerator = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(graphql_server_codegen_1.GraphQLServerGeneratorBase);
186
- if (!graphQLGenerator.generateGraphQLServerCode(coreEntities, graphQLCoreResolversOutputDir, '@memberjunction/core-entities', true))
187
- (0, status_logging_1.logError)('Error generating GraphQL server code');
252
+ if (!graphQLGenerator.generateGraphQLServerCode(coreEntities, graphQLCoreResolversOutputDir, '@memberjunction/core-entities', true)) {
253
+ (0, status_logging_1.failSpinner)('Error generating GraphQL server code');
254
+ return;
255
+ }
256
+ else if (isVerbose) {
257
+ (0, status_logging_1.succeedSpinner)('CORE Entity GraphQL Resolver Code generated');
258
+ }
188
259
  }
189
260
  const graphqlOutputDir = (0, config_1.outputDir)('GraphQLServer', true);
190
261
  if (graphqlOutputDir) {
191
262
  // generate the GraphQL server code
192
- (0, status_logging_1.logStatus)('Generating GraphQL Resolver Code...');
263
+ if (isVerbose)
264
+ (0, status_logging_1.startSpinner)('Generating GraphQL Resolver Code...');
193
265
  const graphQLGenerator = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(graphql_server_codegen_1.GraphQLServerGeneratorBase);
194
- if (!graphQLGenerator.generateGraphQLServerCode(nonCoreEntities, graphqlOutputDir, 'mj_generatedentities', false))
195
- (0, status_logging_1.logError)('Error generating GraphQL Resolver code');
266
+ if (!graphQLGenerator.generateGraphQLServerCode(nonCoreEntities, graphqlOutputDir, 'mj_generatedentities', false)) {
267
+ (0, status_logging_1.failSpinner)('Error generating GraphQL Resolver code');
268
+ return;
269
+ }
270
+ else if (isVerbose) {
271
+ (0, status_logging_1.succeedSpinner)('GraphQL Resolver Code generated');
272
+ }
273
+ }
274
+ else if (isVerbose) {
275
+ (0, status_logging_1.warnSpinner)('GraphQL server output directory NOT found in config file, skipping...');
196
276
  }
197
- else
198
- (0, status_logging_1.logStatus)('GraphQL server output directory NOT found in config file, skipping...');
199
277
  /****************************************************************************************
200
278
  // STEP 4 - Core Entity Subclass Code Gen
201
279
  ****************************************************************************************/
202
280
  const coreEntitySubClassOutputDir = (0, config_1.outputDir)('CoreEntitySubClasses', false);
203
281
  if (coreEntitySubClassOutputDir && coreEntitySubClassOutputDir.length > 0) {
204
282
  // generate the entity subclass code
205
- (0, status_logging_1.logStatus)('Generating CORE Entity Subclass Code...');
283
+ if (isVerbose)
284
+ (0, status_logging_1.startSpinner)('Generating CORE Entity Subclass Code...');
206
285
  const entitySubClassGeneratorObject = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(entity_subclasses_codegen_1.EntitySubClassGeneratorBase);
207
- if (!await entitySubClassGeneratorObject.generateAllEntitySubClasses(db_connection_1.default, coreEntities, coreEntitySubClassOutputDir, skipDB)) {
208
- (0, status_logging_1.logError)('Error generating entity subclass code');
286
+ if (!await entitySubClassGeneratorObject.generateAllEntitySubClasses(pool, coreEntities, coreEntitySubClassOutputDir, skipDB)) {
287
+ (0, status_logging_1.failSpinner)('Error generating entity subclass code');
288
+ return;
289
+ }
290
+ else if (isVerbose) {
291
+ (0, status_logging_1.succeedSpinner)('CORE Entity Subclass Code generated');
209
292
  }
210
293
  }
211
294
  /****************************************************************************************
@@ -214,14 +297,19 @@ let RunCodeGenBase = class RunCodeGenBase {
214
297
  const entitySubClassOutputDir = (0, config_1.outputDir)('EntitySubClasses', true);
215
298
  if (entitySubClassOutputDir) {
216
299
  // generate the entity subclass code
217
- (0, status_logging_1.logStatus)('Generating Entity Subclass Code...');
300
+ if (isVerbose)
301
+ (0, status_logging_1.startSpinner)('Generating Entity Subclass Code...');
218
302
  const entitySubClassGeneratorObject = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(entity_subclasses_codegen_1.EntitySubClassGeneratorBase);
219
- if (!await entitySubClassGeneratorObject.generateAllEntitySubClasses(db_connection_1.default, nonCoreEntities, entitySubClassOutputDir, skipDB)) {
220
- (0, status_logging_1.logError)('Error generating entity subclass code');
303
+ if (!await entitySubClassGeneratorObject.generateAllEntitySubClasses(pool, nonCoreEntities, entitySubClassOutputDir, skipDB)) {
304
+ (0, status_logging_1.failSpinner)('Error generating entity subclass code');
305
+ return;
306
+ }
307
+ else if (isVerbose) {
308
+ (0, status_logging_1.succeedSpinner)('Entity Subclass Code generated');
221
309
  }
222
310
  }
223
- else {
224
- (0, status_logging_1.logStatus)('Entity subclass output directory NOT found in config file, skipping...');
311
+ else if (isVerbose) {
312
+ (0, status_logging_1.warnSpinner)('Entity subclass output directory NOT found in config file, skipping...');
225
313
  }
226
314
  /****************************************************************************************
227
315
  // STEP 5 - Angular Code Gen
@@ -229,93 +317,156 @@ let RunCodeGenBase = class RunCodeGenBase {
229
317
  const angularCoreEntitiesOutputDir = (0, config_1.outputDir)('AngularCoreEntities', false);
230
318
  if (angularCoreEntitiesOutputDir) {
231
319
  // generate the Angular client code
232
- (0, status_logging_1.logStatus)('Generating Angular CORE Entities Code...');
320
+ if (isVerbose)
321
+ (0, status_logging_1.startSpinner)('Generating Angular CORE Entities Code...');
233
322
  const angularGenerator = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(angular_codegen_1.AngularClientGeneratorBase);
234
- if (!(await angularGenerator.generateAngularCode(coreEntities, angularCoreEntitiesOutputDir, 'Core', currentUser)))
235
- (0, status_logging_1.logError)('Error generating Angular CORE Entities code');
323
+ if (!(await angularGenerator.generateAngularCode(coreEntities, angularCoreEntitiesOutputDir, 'Core', currentUser))) {
324
+ (0, status_logging_1.failSpinner)('Error generating Angular CORE Entities code');
325
+ return;
326
+ }
327
+ else if (isVerbose) {
328
+ (0, status_logging_1.succeedSpinner)('Angular CORE Entities Code generated');
329
+ }
236
330
  }
237
331
  const angularOutputDir = (0, config_1.outputDir)('Angular', false);
238
332
  if (angularOutputDir) {
239
333
  // generate the Angular client code
240
- (0, status_logging_1.logStatus)('Generating Angular Code...');
334
+ if (isVerbose)
335
+ (0, status_logging_1.startSpinner)('Generating Angular Code...');
241
336
  const angularGenerator = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(angular_codegen_1.AngularClientGeneratorBase);
242
- if (!(await angularGenerator.generateAngularCode(nonCoreEntities, angularOutputDir, '', currentUser)))
243
- (0, status_logging_1.logError)('Error generating Angular code');
337
+ if (!(await angularGenerator.generateAngularCode(nonCoreEntities, angularOutputDir, '', currentUser))) {
338
+ (0, status_logging_1.failSpinner)('Error generating Angular code');
339
+ return;
340
+ }
341
+ else if (isVerbose) {
342
+ (0, status_logging_1.succeedSpinner)('Angular Code generated');
343
+ }
344
+ }
345
+ else if (isVerbose) {
346
+ (0, status_logging_1.warnSpinner)('Angular output directory NOT found in config file, skipping...');
244
347
  }
245
- else
246
- (0, status_logging_1.logStatus)('Angular output directory NOT found in config file, skipping...');
247
348
  /****************************************************************************************
248
349
  // STEP 6 - Database Schema Output in JSON - for documentation and can be used by AI/etc.
249
350
  ****************************************************************************************/
250
351
  const dbSchemaOutputDir = (0, config_1.outputDir)('DBSchemaJSON', false);
251
352
  if (dbSchemaOutputDir) {
252
353
  // generate the GraphQL client code
253
- (0, status_logging_1.logStatus)('Generating Database Schema JSON Output...');
354
+ if (isVerbose)
355
+ (0, status_logging_1.startSpinner)('Generating Database Schema JSON Output...');
254
356
  const schemaGeneratorObject = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(dbSchema_1.DBSchemaGeneratorBase);
255
- if (!schemaGeneratorObject.generateDBSchemaJSONOutput(md.Entities, dbSchemaOutputDir))
256
- (0, status_logging_1.logError)('Error generating Database Schema JSON Output');
357
+ if (!schemaGeneratorObject.generateDBSchemaJSONOutput(md.Entities, dbSchemaOutputDir)) {
358
+ (0, status_logging_1.failSpinner)('Error generating Database Schema JSON Output');
359
+ return;
360
+ }
361
+ else if (isVerbose) {
362
+ (0, status_logging_1.succeedSpinner)('Database Schema JSON Output generated');
363
+ }
364
+ }
365
+ else if (isVerbose) {
366
+ (0, status_logging_1.warnSpinner)('DB Schema output directory NOT found in config file, skipping...');
257
367
  }
258
- else
259
- (0, status_logging_1.logStatus)('DB Schema output directory NOT found in config file, skipping...');
260
368
  /****************************************************************************************
261
369
  // STEP 7 - Actions Code Gen
262
370
  ****************************************************************************************/
263
371
  const coreActionsOutputDir = (0, config_1.outputDir)('CoreActionSubclasses', false);
264
372
  await actions_base_1.ActionEngineBase.Instance.Config(false, currentUser); // this is inefficient as we have the server
265
373
  if (coreActionsOutputDir) {
266
- (0, status_logging_1.logStatus)('Generating CORE Actions Code...');
374
+ if (isVerbose)
375
+ (0, status_logging_1.startSpinner)('Generating CORE Actions Code...');
267
376
  const actionsGenerator = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(action_subclasses_codegen_1.ActionSubClassGeneratorBase);
268
- if (!(await actionsGenerator.generateActions(actions_base_1.ActionEngineBase.Instance.CoreActions, coreActionsOutputDir)))
269
- (0, status_logging_1.logError)('Error generating CORE Actions code');
377
+ if (!(await actionsGenerator.generateActions(actions_base_1.ActionEngineBase.Instance.CoreActions, coreActionsOutputDir))) {
378
+ (0, status_logging_1.failSpinner)('Error generating CORE Actions code');
379
+ return;
380
+ }
381
+ else if (isVerbose) {
382
+ (0, status_logging_1.succeedSpinner)('CORE Actions Code generated');
383
+ }
270
384
  }
271
385
  const actionsOutputDir = (0, config_1.outputDir)('ActionSubclasses', false);
272
386
  if (actionsOutputDir) {
273
- (0, status_logging_1.logStatus)('Generating Actions Code...');
387
+ if (isVerbose)
388
+ (0, status_logging_1.startSpinner)('Generating Actions Code...');
274
389
  const actionsGenerator = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(action_subclasses_codegen_1.ActionSubClassGeneratorBase);
275
- if (!(await actionsGenerator.generateActions(actions_base_1.ActionEngineBase.Instance.NonCoreActions, actionsOutputDir)))
276
- (0, status_logging_1.logError)('Error generating Actions code');
390
+ if (!(await actionsGenerator.generateActions(actions_base_1.ActionEngineBase.Instance.NonCoreActions, actionsOutputDir))) {
391
+ (0, status_logging_1.failSpinner)('Error generating Actions code');
392
+ return;
393
+ }
394
+ else if (isVerbose) {
395
+ (0, status_logging_1.succeedSpinner)('Actions Code generated');
396
+ }
397
+ }
398
+ else if (isVerbose) {
399
+ (0, status_logging_1.warnSpinner)('Actions output directory NOT found in config file, skipping...');
277
400
  }
278
- else
279
- (0, status_logging_1.logStatus)('Actions output directory NOT found in config file, skipping...');
280
401
  // WRAP UP SQL LOGGING HERE
281
402
  sql_logging_1.SQLLogging.finishSQLLogging(); // finish up the SQL Logging
403
+ // Complete the TypeScript generation spinner in non-verbose mode
404
+ if (!isVerbose) {
405
+ (0, status_logging_1.succeedSpinner)('TypeScript code generation completed');
406
+ }
282
407
  // now run integrity checks
283
- await system_integrity_1.SystemIntegrityBase.RunIntegrityChecks(db_connection_1.default, true);
408
+ (0, status_logging_1.startSpinner)('Running system integrity checks...');
409
+ await system_integrity_1.SystemIntegrityBase.RunIntegrityChecks(pool, true);
410
+ (0, status_logging_1.succeedSpinner)('System integrity checks completed');
284
411
  /****************************************************************************************
285
412
  // STEP 8 --- Finalization Step - execute any AFTER commands specified in the config file
286
413
  ****************************************************************************************/
287
414
  const afterCommands = (0, config_1.commands)('AFTER');
288
415
  if (afterCommands && afterCommands.length > 0) {
289
- (0, status_logging_1.logStatus)('Executing AFTER commands...');
416
+ (0, status_logging_1.startSpinner)('Executing AFTER commands...');
290
417
  const results = await runCommandsObject.runCommands(afterCommands);
291
- if (results.some((r) => !r.success))
292
- (0, status_logging_1.logError)('ERROR running one or more AFTER commands');
418
+ if (results.some((r) => !r.success)) {
419
+ (0, status_logging_1.failSpinner)('ERROR running one or more AFTER commands');
420
+ }
421
+ else {
422
+ (0, status_logging_1.succeedSpinner)('AFTER commands completed');
423
+ }
293
424
  }
294
425
  /****************************************************************************************
295
426
  // STEP 9 --- Execute any AFTER SQL Scripts specified in the config file
296
427
  ****************************************************************************************/
297
428
  if (!skipDB) {
298
- if (!(await sqlCodeGenObject.runCustomSQLScripts(db_connection_1.default, 'after-all')))
299
- (0, status_logging_1.logError)('ERROR running after-all SQL Scripts');
429
+ (0, status_logging_1.startSpinner)('Executing after-all SQL Scripts...');
430
+ if (!(await sqlCodeGenObject.runCustomSQLScripts(pool, 'after-all'))) {
431
+ (0, status_logging_1.failSpinner)('ERROR running after-all SQL Scripts');
432
+ }
433
+ else {
434
+ (0, status_logging_1.succeedSpinner)('After-all SQL Scripts completed');
435
+ }
300
436
  }
301
- (0, status_logging_1.logStatus)(md.Entities.length + ' entities processed and outputed to configured directories');
302
- (0, status_logging_1.logStatus)('MJ CodeGen Run Complete! @ ' +
303
- new Date().toLocaleString() +
304
- ' (' +
305
- (new Date().getTime() - startTime.getTime()) / 1000 +
306
- ' seconds)');
437
+ const endTime = new Date();
438
+ const totalSeconds = (endTime.getTime() - startTime.getTime()) / 1000;
439
+ (0, status_logging_1.succeedSpinner)(`MJ CodeGen Complete! ${md.Entities.length} entities processed in ${totalSeconds}s @ ${endTime.toLocaleString()}`);
307
440
  process.exit(0); // wrap it up, 0 means success
308
441
  }
309
442
  catch (e) {
443
+ (0, status_logging_1.failSpinner)(`CodeGen failed: ${e}`);
310
444
  (0, status_logging_1.logError)(e);
311
445
  process.exit(1); // error code
312
446
  }
313
447
  }
314
- };
448
+ }
315
449
  exports.RunCodeGenBase = RunCodeGenBase;
316
- exports.RunCodeGenBase = RunCodeGenBase = __decorate([
317
- (0, global_1.RegisterClass)(RunCodeGenBase)
318
- ], RunCodeGenBase);
450
+ /**
451
+ * Convenience function to run the MemberJunction code generation process.
452
+ * Creates a new instance of RunCodeGenBase and executes the full generation pipeline.
453
+ *
454
+ * This is the recommended way to trigger code generation from external scripts
455
+ * or applications.
456
+ *
457
+ * @param skipDatabaseGeneration Whether to skip database-related operations
458
+ * @returns Promise that resolves when generation is complete
459
+ * @throws Error if generation fails
460
+ *
461
+ * @example
462
+ * ```typescript
463
+ * // Full generation
464
+ * await runMemberJunctionCodeGeneration();
465
+ *
466
+ * // Skip database operations for faster UI generation
467
+ * await runMemberJunctionCodeGeneration(true);
468
+ * ```
469
+ */
319
470
  async function runMemberJunctionCodeGeneration(skipDatabaseGeneration = false) {
320
471
  const runObject = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(RunCodeGenBase);
321
472
  return await runObject.Run(skipDatabaseGeneration);
@@ -1 +1 @@
1
- {"version":3,"file":"runCodeGen.js","sourceRoot":"","sources":["../src/runCodeGen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runCodeGen.js","sourceRoot":"","sources":["../src/runCodeGen.ts"],"names":[],"mappings":"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"}