@memberjunction/codegen-lib 2.13.0 → 2.13.2
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/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +110 -106
- package/dist/Database/manage-metadata.js.map +1 -1
- package/package.json +7 -7
- package/dist/Misc/logging.d.ts +0 -43
- package/dist/Misc/logging.d.ts.map +0 -1
- package/dist/Misc/logging.js +0 -115
- package/dist/Misc/logging.js.map +0 -1
- package/dist/action_subclasses_codegen.d.ts +0 -23
- package/dist/action_subclasses_codegen.d.ts.map +0 -1
- package/dist/action_subclasses_codegen.js +0 -135
- package/dist/action_subclasses_codegen.js.map +0 -1
- package/dist/entity_subclasses_codegen.d.ts +0 -17
- package/dist/entity_subclasses_codegen.d.ts.map +0 -1
- package/dist/entity_subclasses_codegen.js +0 -227
- package/dist/entity_subclasses_codegen.js.map +0 -1
- package/dist/entity_types_codegen.d.ts +0 -15
- package/dist/entity_types_codegen.d.ts.map +0 -1
- package/dist/entity_types_codegen.js +0 -106
- package/dist/entity_types_codegen.js.map +0 -1
- package/dist/graphql_server_codegen.d.ts +0 -29
- package/dist/graphql_server_codegen.d.ts.map +0 -1
- package/dist/graphql_server_codegen.js +0 -546
- package/dist/graphql_server_codegen.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity_subclasses_codegen.d.ts","sourceRoot":"","sources":["../src/entity_subclasses_codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,UAAU,EAA6B,MAAM,sBAAsB,CAAC;AAOxH;;GAEG;AACH,qBACa,2BAA2B;IAC/B,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAkB/E,gCAAgC,IAAI,MAAM;IAYjD;;;;OAIG;IACI,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAE,OAAe,GAAG,MAAM;IAwHtF,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAiDjD,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM;CAepE"}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.EntitySubClassGeneratorBase = void 0;
|
|
13
|
-
const core_1 = require("@memberjunction/core");
|
|
14
|
-
const fs_1 = __importDefault(require("fs"));
|
|
15
|
-
const path_1 = __importDefault(require("path"));
|
|
16
|
-
const util_1 = require("./Misc/util");
|
|
17
|
-
const global_1 = require("@memberjunction/global");
|
|
18
|
-
const logging_1 = require("./Misc/logging");
|
|
19
|
-
/**
|
|
20
|
-
* Base class for generating entity sub-classes, you can sub-class this class to modify/extend your own entity sub-class generator logic
|
|
21
|
-
*/
|
|
22
|
-
let EntitySubClassGeneratorBase = class EntitySubClassGeneratorBase {
|
|
23
|
-
generateAllEntitySubClasses(entities, directory) {
|
|
24
|
-
try {
|
|
25
|
-
const sortedEntities = entities.sort((a, b) => a.Name.localeCompare(b.Name));
|
|
26
|
-
const zodContent = sortedEntities.map((entity) => this.GenerateSchemaAndType(entity)).join('');
|
|
27
|
-
const sContent = sortedEntities.map((e) => this.generateEntitySubClass(e, false)).join('');
|
|
28
|
-
const allContent = `${this.generateEntitySubClassFileHeader()} \n ${zodContent} \n ${sContent}`;
|
|
29
|
-
(0, util_1.makeDir)(directory);
|
|
30
|
-
fs_1.default.writeFileSync(path_1.default.join(directory, 'entity_subclasses.ts'), allContent);
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
catch (err) {
|
|
34
|
-
console.error(err);
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
generateEntitySubClassFileHeader() {
|
|
39
|
-
return `import { BaseEntity, EntitySaveOptions, CompositeKey } from "@memberjunction/core";
|
|
40
|
-
import { RegisterClass } from "@memberjunction/global";
|
|
41
|
-
import { z } from "zod";
|
|
42
|
-
|
|
43
|
-
export const loadModule = () => {
|
|
44
|
-
// no-op, only used to ensure this file is a valid module and to allow easy loading
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
`;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* @param entity
|
|
52
|
-
* @param includeFileHeader
|
|
53
|
-
*/
|
|
54
|
-
generateEntitySubClass(entity, includeFileHeader = false) {
|
|
55
|
-
if (entity.PrimaryKeys.length === 0) {
|
|
56
|
-
console.warn(`Entity ${entity.Name} has no primary keys. Skipping.`);
|
|
57
|
-
return '';
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
const fields = entity.Fields.map((e) => {
|
|
61
|
-
let values = '';
|
|
62
|
-
let valueList = '';
|
|
63
|
-
if (e.ValueListType && e.ValueListType.length > 0 && e.ValueListType.trim().toLowerCase() !== 'none') {
|
|
64
|
-
values = e.EntityFieldValues.map((v) => `\n * * ${v.Value}${v.Description && v.Description.length > 0 ? ' - ' + v.Description : ''}`).join('');
|
|
65
|
-
valueList = `\n * * Value List Type: ${e.ValueListType}\n * * Possible Values ` + values;
|
|
66
|
-
}
|
|
67
|
-
let typeString = (0, core_1.TypeScriptTypeFromSQLType)(e.Type) + (e.AllowsNull ? ' | null' : '');
|
|
68
|
-
if (e.ValueListTypeEnum !== core_1.EntityFieldValueListType.None && e.EntityFieldValues && e.EntityFieldValues.length > 0) {
|
|
69
|
-
// construct a typeString that is a union of the possible values
|
|
70
|
-
const quotes = e.NeedsQuotes ? "'" : '';
|
|
71
|
-
typeString = e.EntityFieldValues.map((v) => `${quotes}${v.Value}${quotes}`).join(' | ');
|
|
72
|
-
if (e.ValueListTypeEnum === core_1.EntityFieldValueListType.ListOrUserEntry) {
|
|
73
|
-
// special case becuase a user can enter whatever they want
|
|
74
|
-
typeString += ' | ' + (0, core_1.TypeScriptTypeFromSQLType)(e.Type);
|
|
75
|
-
}
|
|
76
|
-
// finally, add the null type if it allows null
|
|
77
|
-
if (e.AllowsNull) {
|
|
78
|
-
typeString += ' | null';
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
let sRet = ` /**
|
|
82
|
-
* * Field Name: ${e.Name}${e.DisplayName && e.DisplayName.length > 0 ? '\n * * Display Name: ' + e.DisplayName : ''}
|
|
83
|
-
* * SQL Data Type: ${e.SQLFullType}${e.RelatedEntity ? '\n * * Related Entity/Foreign Key: ' + e.RelatedEntity + ' (' + e.RelatedEntityBaseView + '.' + e.RelatedEntityFieldName + ')' : ''}${e.DefaultValue && e.DefaultValue.length > 0 ? '\n * * Default Value: ' + e.DefaultValue : ''}${valueList}${e.Description && e.Description.length > 0 ? '\n * * Description: ' + e.Description : ''}
|
|
84
|
-
*/
|
|
85
|
-
get ${e.CodeName}(): ${typeString} {
|
|
86
|
-
return this.Get('${e.Name}');
|
|
87
|
-
}`;
|
|
88
|
-
if (!e.ReadOnly) {
|
|
89
|
-
sRet += `
|
|
90
|
-
set ${e.CodeName}(value: ${typeString}) {
|
|
91
|
-
this.Set('${e.Name}', value);
|
|
92
|
-
}`;
|
|
93
|
-
}
|
|
94
|
-
return sRet;
|
|
95
|
-
}).join('\n\n');
|
|
96
|
-
const sClassName = `${entity.ClassName}Entity`;
|
|
97
|
-
const subClass = entity.EntityObjectSubclassName ? entity.EntityObjectSubclassName : '';
|
|
98
|
-
const subClassImport = entity.EntityObjectSubclassImport ? entity.EntityObjectSubclassImport : '';
|
|
99
|
-
const sBaseClass = subClass.length > 0 && subClassImport.length > 0 ? `${subClass}` : 'BaseEntity';
|
|
100
|
-
const subClassImportStatement = subClass.length > 0 && subClassImport.length > 0 ? `import { ${subClass} } from '${subClassImport}';\n` : '';
|
|
101
|
-
const loadFieldString = entity.PrimaryKeys.map((f) => `${f.CodeName}: ${f.TSType}`).join(', ');
|
|
102
|
-
const loadFunction = ` /**
|
|
103
|
-
* Loads the ${entity.Name} record from the database
|
|
104
|
-
${entity.PrimaryKeys.map((f) => `* @param ${f.CodeName}: ${f.TSType} - primary key value to load the ${entity.Name} record.`).join('\n ')}
|
|
105
|
-
* @param EntityRelationshipsToLoad - (optional) the relationships to load
|
|
106
|
-
* @returns {Promise<boolean>} - true if successful, false otherwise
|
|
107
|
-
* @public
|
|
108
|
-
* @async
|
|
109
|
-
* @memberof ${sClassName}
|
|
110
|
-
* @method
|
|
111
|
-
* @override
|
|
112
|
-
*/
|
|
113
|
-
public async Load(${loadFieldString}, EntityRelationshipsToLoad?: string[]) : Promise<boolean> {
|
|
114
|
-
const compositeKey: CompositeKey = new CompositeKey();
|
|
115
|
-
${entity.PrimaryKeys.map((f) => `compositeKey.KeyValuePairs.push({ FieldName: '${f.Name}', Value: ${f.CodeName} });`).join('\n ')}
|
|
116
|
-
return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
|
|
117
|
-
}`;
|
|
118
|
-
const deleteFunction = entity.AllowDeleteAPI
|
|
119
|
-
? ''
|
|
120
|
-
: ` /**
|
|
121
|
-
* ${entity.Name} - AllowDeleteAPI is set to 0 in the database. Delete is not allowed, so this method is generated to override the base class method and throw an error. To enable delete for this entity, set AllowDeleteAPI to 1 in the database.
|
|
122
|
-
* @public
|
|
123
|
-
* @method
|
|
124
|
-
* @override
|
|
125
|
-
* @memberof ${sClassName}
|
|
126
|
-
* @throws {Error} - Delete is not allowed for ${entity.Name}, to enable it set AllowDeleteAPI to 1 in the database.
|
|
127
|
-
*/
|
|
128
|
-
public async Delete(): Promise<boolean> {
|
|
129
|
-
throw new Error('Delete is not allowed for ${entity.Name}, to enable it set AllowDeleteAPI to 1 in the database.');
|
|
130
|
-
}`;
|
|
131
|
-
const saveFunction = entity.AllowCreateAPI || entity.AllowUpdateAPI
|
|
132
|
-
? ''
|
|
133
|
-
: ` /**
|
|
134
|
-
* ${entity.Name} - AllowCreateAPI and AllowUpdateAPI are both set to 0 in the database. Save is not allowed, so this method is generated to override the base class method and throw an error. To enable save for this entity, set AllowCreateAPI and/or AllowUpdateAPI to 1 in the database.
|
|
135
|
-
* @public
|
|
136
|
-
* @method
|
|
137
|
-
* @override
|
|
138
|
-
* @memberof ${sClassName}
|
|
139
|
-
* @throws {Error} - Save is not allowed for ${entity.Name}, to enable it set AllowCreateAPI and/or AllowUpdateAPI to 1 in the database.
|
|
140
|
-
*/
|
|
141
|
-
public async Save(options?: EntitySaveOptions) : Promise<boolean> {
|
|
142
|
-
throw new Error('Save is not allowed for ${entity.Name}, to enable it set AllowCreateAPI and/or AllowUpdateAPI to 1 in the database.');
|
|
143
|
-
}`;
|
|
144
|
-
let sRet = `
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* ${entity.Name} - strongly typed entity sub-class
|
|
148
|
-
* * Schema: ${entity.SchemaName}
|
|
149
|
-
* * Base Table: ${entity.BaseTable}
|
|
150
|
-
* * Base View: ${entity.BaseView}${entity.Description && entity.Description.length > 0 ? '\n * * @description ' + entity.Description : ''}
|
|
151
|
-
* * Primary Key${entity.PrimaryKeys.length > 1 ? 's' : ''}: ${entity.PrimaryKeys.map((f) => f.Name).join(', ')}
|
|
152
|
-
* @extends {BaseEntity}
|
|
153
|
-
* @class
|
|
154
|
-
* @public
|
|
155
|
-
*/
|
|
156
|
-
${subClassImportStatement}@RegisterClass(BaseEntity, '${entity.Name}')
|
|
157
|
-
export class ${sClassName} extends ${sBaseClass}<${sClassName}Type> {${loadFunction ? '\n' + loadFunction : ''}${saveFunction ? '\n\n' + saveFunction : ''}${deleteFunction ? '\n\n' + deleteFunction : ''}
|
|
158
|
-
|
|
159
|
-
${fields}
|
|
160
|
-
}
|
|
161
|
-
`;
|
|
162
|
-
if (includeFileHeader)
|
|
163
|
-
sRet = this.generateEntitySubClassFileHeader() + sRet;
|
|
164
|
-
return sRet;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
GenerateSchemaAndType(entity) {
|
|
168
|
-
let content = '';
|
|
169
|
-
if (entity.PrimaryKeys.length === 0) {
|
|
170
|
-
(0, logging_1.logStatus)(`Entity ${entity.Name} has no primary keys. Skipping.`);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
const fields = entity.Fields.map((e) => {
|
|
174
|
-
let values = '';
|
|
175
|
-
let valueList = '';
|
|
176
|
-
if (e.ValueListType && e.ValueListType.length > 0 && e.ValueListType.trim().toLowerCase() !== 'none') {
|
|
177
|
-
values = e.EntityFieldValues.map((v) => `\n * * ${v.Value}${v.Description && v.Description.length > 0 ? ' - ' + v.Description : ''}`).join('');
|
|
178
|
-
valueList = `\n * * Value List Type: ${e.ValueListType}\n * * Possible Values ` + values;
|
|
179
|
-
}
|
|
180
|
-
let typeString = `${(0, core_1.TypeScriptTypeFromSQLType)(e.Type).toLowerCase()}()` + (e.AllowsNull ? '.nullish()' : '');
|
|
181
|
-
if (e.ValueListTypeEnum !== core_1.EntityFieldValueListType.None && e.EntityFieldValues && e.EntityFieldValues.length > 0) {
|
|
182
|
-
// construct a typeString that is a union of the possible values
|
|
183
|
-
const quotes = e.NeedsQuotes ? "'" : '';
|
|
184
|
-
typeString = `union([${e.EntityFieldValues.map((v) => `z.literal(${quotes}${v.Value}${quotes})`).join(', ')}])`;
|
|
185
|
-
if (e.ValueListTypeEnum === core_1.EntityFieldValueListType.ListOrUserEntry) {
|
|
186
|
-
// special case becuase a user can enter whatever they want
|
|
187
|
-
typeString += `.or(z.${(0, core_1.TypeScriptTypeFromSQLType)(e.Type)}()) `;
|
|
188
|
-
}
|
|
189
|
-
// finally, add the null type if it allows null
|
|
190
|
-
if (e.AllowsNull) {
|
|
191
|
-
typeString += '.nullish()';
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
let sRet = ` ${e.CodeName}: z.${typeString}.describe(\`\n${this.GenetateZodDescription(e)}\`),`;
|
|
195
|
-
return sRet;
|
|
196
|
-
}).join('\n');
|
|
197
|
-
const schemaName = `${entity.ClassName}Schema`;
|
|
198
|
-
content = `
|
|
199
|
-
/**
|
|
200
|
-
* zod schema definition for the entity ${entity.Name}
|
|
201
|
-
*/
|
|
202
|
-
export const ${schemaName} = z.object({
|
|
203
|
-
${fields}
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
export type ${entity.ClassName}EntityType = z.infer<typeof ${schemaName}>;
|
|
207
|
-
`;
|
|
208
|
-
}
|
|
209
|
-
return content;
|
|
210
|
-
}
|
|
211
|
-
GenetateZodDescription(entityField) {
|
|
212
|
-
let result = '';
|
|
213
|
-
let valueList = '';
|
|
214
|
-
if (entityField.ValueListType && entityField.ValueListType.length > 0 && entityField.ValueListType.trim().toLowerCase() !== 'none') {
|
|
215
|
-
let values = entityField.EntityFieldValues.map((v) => `\n * * ${v.Value}${v.Description && v.Description.length > 0 ? ' - ' + v.Description : ''}`).join('');
|
|
216
|
-
valueList = `\n * * Value List Type: ${entityField.ValueListType}\n * * Possible Values ` + values;
|
|
217
|
-
}
|
|
218
|
-
result += ` * * Field Name: ${entityField.Name}${entityField.DisplayName && entityField.DisplayName.length > 0 ? '\n * * Display Name: ' + entityField.DisplayName : ''}\n`;
|
|
219
|
-
result += ` * * SQL Data Type: ${entityField.SQLFullType}${entityField.RelatedEntity ? '\n * * Related Entity/Foreign Key: ' + entityField.RelatedEntity + ' (' + entityField.RelatedEntityBaseView + '.' + entityField.RelatedEntityFieldName + ')' : ''}${entityField.DefaultValue && entityField.DefaultValue.length > 0 ? '\n * * Default Value: ' + entityField.DefaultValue : ''}${valueList}${entityField.Description && entityField.Description.length > 0 ? '\n * * Description: ' + entityField.Description : ''}`;
|
|
220
|
-
return result;
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
exports.EntitySubClassGeneratorBase = EntitySubClassGeneratorBase;
|
|
224
|
-
exports.EntitySubClassGeneratorBase = EntitySubClassGeneratorBase = __decorate([
|
|
225
|
-
(0, global_1.RegisterClass)(EntitySubClassGeneratorBase)
|
|
226
|
-
], EntitySubClassGeneratorBase);
|
|
227
|
-
//# sourceMappingURL=entity_subclasses_codegen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity_subclasses_codegen.js","sourceRoot":"","sources":["../src/entity_subclasses_codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { EntityInfo } from '@memberjunction/core';
|
|
2
|
-
/**
|
|
3
|
-
* Base class for generating type definitions for entity sub-classes, you can sub-class this class to modify/extend your own entity sub-class generator logic
|
|
4
|
-
*/
|
|
5
|
-
export declare class EntityTypeGeneratorBase {
|
|
6
|
-
generateAllEntityTypeDefinitions(entities: EntityInfo[], directory: string): boolean;
|
|
7
|
-
generateTypeDefinitionHeader(): string;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param entity
|
|
11
|
-
* @param includeFileHeader
|
|
12
|
-
*/
|
|
13
|
-
generateEntitySubClass(entity: EntityInfo): string;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=entity_types_codegen.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity_types_codegen.d.ts","sourceRoot":"","sources":["../src/entity_types_codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAA6B,MAAM,sBAAsB,CAAC;AAOvG;;GAEG;AACH,qBACa,uBAAuB;IACzB,gCAAgC,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAepF,4BAA4B,IAAI,MAAM;IAO7C;;;;OAIG;IACI,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAI,MAAM;CAuD7D"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.EntityTypeGeneratorBase = void 0;
|
|
13
|
-
const core_1 = require("@memberjunction/core");
|
|
14
|
-
const fs_1 = __importDefault(require("fs"));
|
|
15
|
-
const path_1 = __importDefault(require("path"));
|
|
16
|
-
const util_1 = require("./Misc/util");
|
|
17
|
-
const global_1 = require("@memberjunction/global");
|
|
18
|
-
const logging_1 = require("./Misc/logging");
|
|
19
|
-
/**
|
|
20
|
-
* Base class for generating type definitions for entity sub-classes, you can sub-class this class to modify/extend your own entity sub-class generator logic
|
|
21
|
-
*/
|
|
22
|
-
let EntityTypeGeneratorBase = class EntityTypeGeneratorBase {
|
|
23
|
-
generateAllEntityTypeDefinitions(entities, directory) {
|
|
24
|
-
try {
|
|
25
|
-
const sortedEntities = entities.sort((a, b) => a.Name.localeCompare(b.Name));
|
|
26
|
-
const sContent = this.generateTypeDefinitionHeader() + sortedEntities.map((entity) => this.generateEntitySubClass(entity)).join('');
|
|
27
|
-
(0, logging_1.logStatus)(`Generating entity sub-class types file in ${directory}`);
|
|
28
|
-
(0, util_1.makeDir)(directory);
|
|
29
|
-
fs_1.default.writeFileSync(path_1.default.join(directory, 'entity_type_definitions.ts'), sContent);
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
catch (err) {
|
|
33
|
-
console.error(err);
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
generateTypeDefinitionHeader() {
|
|
38
|
-
return `/*************************************************
|
|
39
|
-
* GENERATED CODE - DO NOT MODIFY
|
|
40
|
-
* Generated by MemberJunction CodeGen at ${new Date().toLocaleString()}
|
|
41
|
-
**************************************************/`;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* @param entity
|
|
46
|
-
* @param includeFileHeader
|
|
47
|
-
*/
|
|
48
|
-
generateEntitySubClass(entity) {
|
|
49
|
-
if (entity.PrimaryKeys.length === 0) {
|
|
50
|
-
(0, logging_1.logStatus)(`Entity ${entity.Name} has no primary keys. Skipping.`);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const fields = entity.Fields.map(e => {
|
|
54
|
-
let values = '';
|
|
55
|
-
let valueList = '';
|
|
56
|
-
if (e.ValueListType &&
|
|
57
|
-
e.ValueListType.length > 0 &&
|
|
58
|
-
e.ValueListType.trim().toLowerCase() !== 'none') {
|
|
59
|
-
values = e.EntityFieldValues.map(v => `\n * * ${v.Value}${v.Description && v.Description.length > 0 ? ' - ' + v.Description : ''}`).join('');
|
|
60
|
-
valueList = `\n * * Value List Type: ${e.ValueListType}\n * * Possible Values ` + values;
|
|
61
|
-
}
|
|
62
|
-
let typeString = (0, core_1.TypeScriptTypeFromSQLType)(e.Type) + (e.AllowsNull ? ' | null' : '');
|
|
63
|
-
if (e.ValueListTypeEnum !== core_1.EntityFieldValueListType.None && e.EntityFieldValues && e.EntityFieldValues.length > 0) {
|
|
64
|
-
// construct a typeString that is a union of the possible values
|
|
65
|
-
const quotes = e.NeedsQuotes ? "'" : '';
|
|
66
|
-
typeString = e.EntityFieldValues.map(v => `${quotes}${v.Value}${quotes}`).join(' | ');
|
|
67
|
-
if (e.ValueListTypeEnum === core_1.EntityFieldValueListType.ListOrUserEntry) {
|
|
68
|
-
// special case becuase a user can enter whatever they want
|
|
69
|
-
typeString += ' | ' + (0, core_1.TypeScriptTypeFromSQLType)(e.Type);
|
|
70
|
-
}
|
|
71
|
-
// finally, add the null type if it allows null
|
|
72
|
-
if (e.AllowsNull) {
|
|
73
|
-
typeString += ' | null';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
let sRet = ` /**
|
|
77
|
-
* * Field Name: ${e.Name}${e.DisplayName && e.DisplayName.length > 0 ? '\n * * Display Name: ' + e.DisplayName : ''}
|
|
78
|
-
* * SQL Data Type: ${e.SQLFullType}${e.RelatedEntity ? '\n * * Related Entity/Foreign Key: ' + e.RelatedEntity + ' (' + e.RelatedEntityBaseView + '.' + e.RelatedEntityFieldName + ')' : ''}${e.DefaultValue && e.DefaultValue.length > 0 ? '\n * * Default Value: ' + e.DefaultValue : ''}${valueList}${e.Description && e.Description.length > 0 ? '\n * * Description: ' + e.Description : ''}
|
|
79
|
-
*/
|
|
80
|
-
${e.CodeName}: ${typeString}`;
|
|
81
|
-
return sRet;
|
|
82
|
-
}).join('\n\n');
|
|
83
|
-
const sClassName = `${entity.ClassName}Object`;
|
|
84
|
-
let sRet = `
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Type definition for the entity ${entity.Name}
|
|
88
|
-
* * Schema: ${entity.SchemaName}
|
|
89
|
-
* * Base Table: ${entity.BaseTable}
|
|
90
|
-
* * Base View: ${entity.BaseView}${entity.Description && entity.Description.length > 0 ? '\n * * @description ' + entity.Description : ''}
|
|
91
|
-
* * Primary Key${entity.PrimaryKeys.length > 1 ? 's' : ''}: ${entity.PrimaryKeys.map(f => f.Name).join(', ')}
|
|
92
|
-
*/
|
|
93
|
-
export type ${sClassName} = {
|
|
94
|
-
|
|
95
|
-
${fields}
|
|
96
|
-
}
|
|
97
|
-
`;
|
|
98
|
-
return sRet;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
exports.EntityTypeGeneratorBase = EntityTypeGeneratorBase;
|
|
103
|
-
exports.EntityTypeGeneratorBase = EntityTypeGeneratorBase = __decorate([
|
|
104
|
-
(0, global_1.RegisterClass)(EntityTypeGeneratorBase)
|
|
105
|
-
], EntityTypeGeneratorBase);
|
|
106
|
-
//# sourceMappingURL=entity_types_codegen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity_types_codegen.js","sourceRoot":"","sources":["../src/entity_types_codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { EntityInfo, EntityFieldInfo, EntityRelationshipInfo, Metadata } from '@memberjunction/core';
|
|
2
|
-
/**
|
|
3
|
-
* This class is responsible for generating the GraphQL Server resolvers and types for the entities, you can sub-class this class to extend/modify the logic, make sure to use @memberjunction/global RegisterClass decorator
|
|
4
|
-
* so that your class is used.
|
|
5
|
-
*/
|
|
6
|
-
export declare class GraphQLServerGeneratorBase {
|
|
7
|
-
generateGraphQLServerCode(entities: EntityInfo[], outputDirectory: string, generatedEntitiesImportLibrary: string, excludeRelatedEntitiesExternalToSchema: boolean): boolean;
|
|
8
|
-
protected _graphQLTypeSuffix: string;
|
|
9
|
-
/**
|
|
10
|
-
* The suffix to append to the GraphQL Type name, default is an underscore, override this property in your sub-class to change the suffix
|
|
11
|
-
*/
|
|
12
|
-
get GraphQLTypeSuffix(): string;
|
|
13
|
-
generateServerEntityString(entity: EntityInfo, includeFileHeader: boolean, generatedEntitiesImportLibrary: string, excludeRelatedEntitiesExternalToSchema: boolean): string;
|
|
14
|
-
generateAllEntitiesServerFileHeader(entities: EntityInfo[], importLibrary: string, isInternal: boolean): string;
|
|
15
|
-
generateEntitySpecificServerFileHeader(entity: EntityInfo, importLibrary: string, excludeRelatedEntitiesExternalToSchema: boolean): string;
|
|
16
|
-
protected generateServerEntityHeader(entity: EntityInfo, serverGraphQLTypeName: string): string;
|
|
17
|
-
protected generateServerEntityFooter(entity: EntityInfo): string;
|
|
18
|
-
protected generateServerField(fieldInfo: EntityFieldInfo): string;
|
|
19
|
-
protected getTypeGraphQLFieldString(fieldInfo: EntityFieldInfo): string;
|
|
20
|
-
protected generateServerRelationship(md: Metadata, r: EntityRelationshipInfo, isInternal: boolean): string;
|
|
21
|
-
protected generateServerGraphQLResolver(entity: EntityInfo, serverGraphQLTypeName: string, excludeRelatedEntitiesExternalToSchema: boolean, isInternal: boolean): string;
|
|
22
|
-
protected schemaName(entity: EntityInfo): string;
|
|
23
|
-
protected generateServerGraphQLInputType(entity: EntityInfo): string;
|
|
24
|
-
protected generateServerGraphQLInputTypeInner(entity: EntityInfo, isUpdate: boolean, classPrefix: string): string;
|
|
25
|
-
protected generateServerGraphQLMutations(entity: EntityInfo, serverGraphQLTypeName: string): string;
|
|
26
|
-
protected generateOneToManyFieldResolver(entity: EntityInfo, r: EntityRelationshipInfo, isInternal: boolean): string;
|
|
27
|
-
protected generateManyToManyFieldResolver(entity: EntityInfo, r: EntityRelationshipInfo): string;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=graphql_server_codegen.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql_server_codegen.d.ts","sourceRoot":"","sources":["../src/graphql_server_codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAA6B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQhI;;;GAGG;AACH,qBACa,0BAA0B;IAC9B,yBAAyB,CAC9B,QAAQ,EAAE,UAAU,EAAE,EACtB,eAAe,EAAE,MAAM,EACvB,8BAA8B,EAAE,MAAM,EACtC,sCAAsC,EAAE,OAAO,GAC9C,OAAO;IAmBV,SAAS,CAAC,kBAAkB,SAAO;IACnC;;OAEG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAEM,0BAA0B,CAC/B,MAAM,EAAE,UAAU,EAClB,iBAAiB,EAAE,OAAO,EAC1B,8BAA8B,EAAE,MAAM,EACtC,sCAAsC,EAAE,OAAO,GAC9C,MAAM;IAqDF,mCAAmC,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM;IA+B/G,sCAAsC,CAC3C,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,MAAM,EACrB,sCAAsC,EAAE,OAAO,GAC9C,MAAM;IA6BT,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,MAAM;IAa/F,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAMhE,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM;IAejE,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM;IAiCvE,SAAS,CAAC,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM;IAuB1G,SAAS,CAAC,6BAA6B,CACrC,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,MAAM,EAC7B,sCAAsC,EAAE,OAAO,EAC/C,UAAU,EAAE,OAAO,GAClB,MAAM;IA2HT,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAMhD,SAAS,CAAC,8BAA8B,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAOpE,SAAS,CAAC,mCAAmC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAuCjH,SAAS,CAAC,8BAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,MAAM;IAqEnG,SAAS,CAAC,8BAA8B,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM;IA+CpH,SAAS,CAAC,+BAA+B,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,sBAAsB,GAAG,MAAM;CA6CjG"}
|