@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.
- package/dist/Angular/angular-codegen.d.ts +164 -6
- package/dist/Angular/angular-codegen.d.ts.map +1 -1
- package/dist/Angular/angular-codegen.js +179 -25
- package/dist/Angular/angular-codegen.js.map +1 -1
- package/dist/Angular/join-grid-related-entity-component.d.ts +52 -3
- package/dist/Angular/join-grid-related-entity-component.d.ts.map +1 -1
- package/dist/Angular/join-grid-related-entity-component.js +58 -3
- package/dist/Angular/join-grid-related-entity-component.js.map +1 -1
- package/dist/Angular/related-entity-components.d.ts +99 -42
- package/dist/Angular/related-entity-components.d.ts.map +1 -1
- package/dist/Angular/related-entity-components.js +116 -26
- package/dist/Angular/related-entity-components.js.map +1 -1
- package/dist/Angular/timeline-related-entity-component.d.ts +46 -7
- package/dist/Angular/timeline-related-entity-component.d.ts.map +1 -1
- package/dist/Angular/timeline-related-entity-component.js +64 -7
- package/dist/Angular/timeline-related-entity-component.js.map +1 -1
- package/dist/Angular/user-view-grid-related-entity-component.d.ts +33 -1
- package/dist/Angular/user-view-grid-related-entity-component.d.ts.map +1 -1
- package/dist/Angular/user-view-grid-related-entity-component.js +33 -1
- package/dist/Angular/user-view-grid-related-entity-component.js.map +1 -1
- package/dist/Config/config.d.ts +369 -45
- package/dist/Config/config.d.ts.map +1 -1
- package/dist/Config/config.js +136 -2
- package/dist/Config/config.js.map +1 -1
- package/dist/Config/db-connection.d.ts +17 -3
- package/dist/Config/db-connection.d.ts.map +1 -1
- package/dist/Config/db-connection.js +31 -19
- package/dist/Config/db-connection.js.map +1 -1
- package/dist/Database/dbSchema.d.ts +44 -1
- package/dist/Database/dbSchema.d.ts.map +1 -1
- package/dist/Database/dbSchema.js +46 -13
- package/dist/Database/dbSchema.js.map +1 -1
- package/dist/Database/manage-metadata.d.ts +52 -46
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +235 -191
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/reorder-columns.d.ts +2 -2
- package/dist/Database/reorder-columns.d.ts.map +1 -1
- package/dist/Database/reorder-columns.js +23 -17
- package/dist/Database/reorder-columns.js.map +1 -1
- package/dist/Database/sql.d.ts +4 -4
- package/dist/Database/sql.d.ts.map +1 -1
- package/dist/Database/sql.js +5 -16
- package/dist/Database/sql.js.map +1 -1
- package/dist/Database/sql_codegen.d.ts +15 -15
- package/dist/Database/sql_codegen.d.ts.map +1 -1
- package/dist/Database/sql_codegen.js +186 -123
- package/dist/Database/sql_codegen.js.map +1 -1
- package/dist/Misc/action_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/action_subclasses_codegen.js +2 -12
- package/dist/Misc/action_subclasses_codegen.js.map +1 -1
- package/dist/Misc/advanced_generation.d.ts.map +1 -1
- package/dist/Misc/advanced_generation.js +82 -92
- package/dist/Misc/advanced_generation.js.map +1 -1
- package/dist/Misc/createNewUser.d.ts.map +1 -1
- package/dist/Misc/createNewUser.js +2 -12
- package/dist/Misc/createNewUser.js.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.d.ts +5 -5
- package/dist/Misc/entity_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.js +12 -20
- package/dist/Misc/entity_subclasses_codegen.js.map +1 -1
- package/dist/Misc/graphql_server_codegen.d.ts.map +1 -1
- package/dist/Misc/graphql_server_codegen.js +35 -40
- package/dist/Misc/graphql_server_codegen.js.map +1 -1
- package/dist/Misc/runCommand.d.ts.map +1 -1
- package/dist/Misc/runCommand.js +2 -12
- package/dist/Misc/runCommand.js.map +1 -1
- package/dist/Misc/sql_logging.d.ts +2 -2
- package/dist/Misc/sql_logging.d.ts.map +1 -1
- package/dist/Misc/sql_logging.js +4 -3
- package/dist/Misc/sql_logging.js.map +1 -1
- package/dist/Misc/status_logging.d.ts +37 -0
- package/dist/Misc/status_logging.d.ts.map +1 -1
- package/dist/Misc/status_logging.js +147 -14
- package/dist/Misc/status_logging.js.map +1 -1
- package/dist/Misc/system_integrity.d.ts +9 -9
- package/dist/Misc/system_integrity.d.ts.map +1 -1
- package/dist/Misc/system_integrity.js +23 -21
- package/dist/Misc/system_integrity.js.map +1 -1
- package/dist/index.d.ts +45 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -7
- package/dist/index.js.map +1 -1
- package/dist/runCodeGen.d.ts +84 -6
- package/dist/runCodeGen.d.ts.map +1 -1
- package/dist/runCodeGen.js +244 -93
- package/dist/runCodeGen.js.map +1 -1
- package/package.json +14 -14
package/dist/runCodeGen.js
CHANGED
|
@@ -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 =
|
|
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
|
-
*
|
|
55
|
-
*
|
|
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
|
-
|
|
82
|
+
class RunCodeGenBase {
|
|
58
83
|
/**
|
|
59
|
-
*
|
|
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.
|
|
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(
|
|
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
|
|
80
|
-
*
|
|
81
|
-
*
|
|
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.
|
|
133
|
+
(0, status_logging_1.startSpinner)(`Starting MemberJunction CodeGen @ ${startTime.toLocaleString()}`);
|
|
87
134
|
const provider = await this.setupDataSource();
|
|
88
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
141
|
-
const metadataSuccess = await manageMD.manageMetadata(
|
|
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.
|
|
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.
|
|
155
|
-
const sqlSuccess = await sqlCodeGenObject.manageSQLScriptsAndExecution(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
170
|
-
const metadataSuccess = await manageMD.loadGeneratedCode(
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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(
|
|
208
|
-
(0, status_logging_1.
|
|
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
|
-
|
|
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(
|
|
220
|
-
(0, status_logging_1.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
299
|
-
|
|
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
|
-
|
|
302
|
-
(
|
|
303
|
-
|
|
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
|
-
|
|
317
|
-
|
|
318
|
-
|
|
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);
|
package/dist/runCodeGen.js.map
CHANGED
|
@@ -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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"}
|