@memberjunction/codegen-lib 0.9.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/angular_client_codegen.d.ts +2 -0
- package/dist/angular_client_codegen.js +360 -0
- package/dist/angular_client_codegen.js.map +1 -0
- package/dist/config.d.ts +101 -0
- package/dist/config.js +55 -0
- package/dist/config.js.map +1 -0
- package/dist/db.d.ts +3 -0
- package/dist/db.js +19 -0
- package/dist/db.js.map +1 -0
- package/dist/dbSchema.d.ts +3 -0
- package/dist/dbSchema.js +143 -0
- package/dist/dbSchema.js.map +1 -0
- package/dist/entity_subclasses_codegen.d.ts +4 -0
- package/dist/entity_subclasses_codegen.js +84 -0
- package/dist/entity_subclasses_codegen.js.map +1 -0
- package/dist/graphql_client_codegen.d.ts +4 -0
- package/dist/graphql_client_codegen.js +161 -0
- package/dist/graphql_client_codegen.js.map +1 -0
- package/dist/graphql_server_codegen.d.ts +5 -0
- package/dist/graphql_server_codegen.js +509 -0
- package/dist/graphql_server_codegen.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/logging.d.ts +2 -0
- package/dist/logging.js +36 -0
- package/dist/logging.js.map +1 -0
- package/dist/manageMetadata.d.ts +9 -0
- package/dist/manageMetadata.js +603 -0
- package/dist/manageMetadata.js.map +1 -0
- package/dist/react_client_codegen.d.ts +4 -0
- package/dist/react_client_codegen.js +147 -0
- package/dist/react_client_codegen.js.map +1 -0
- package/dist/runCodeGen.d.ts +1 -0
- package/dist/runCodeGen.js +213 -0
- package/dist/runCodeGen.js.map +1 -0
- package/dist/runCommand.d.ts +9 -0
- package/dist/runCommand.js +111 -0
- package/dist/runCommand.js.map +1 -0
- package/dist/sql.d.ts +6 -0
- package/dist/sql.js +78 -0
- package/dist/sql.js.map +1 -0
- package/dist/sql_codegen.d.ts +11 -0
- package/dist/sql_codegen.js +753 -0
- package/dist/sql_codegen.js.map +1 -0
- package/dist/util.d.ts +4 -0
- package/dist/util.js +36 -0
- package/dist/util.js.map +1 -0
- package/package.json +28 -0
- package/readme.md +3 -0
package/dist/dbSchema.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateDBSchemaJSON = exports.generateDBSchemaJSONOutput = void 0;
|
|
7
|
+
const logging_1 = require("./logging");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const config_1 = require("./config");
|
|
11
|
+
function generateDBSchemaJSONOutput(entities, outputDir) {
|
|
12
|
+
if (!fs_1.default.existsSync(outputDir))
|
|
13
|
+
fs_1.default.mkdirSync(outputDir, { recursive: true }); // create the directory if it doesn't exist
|
|
14
|
+
const excludeSchemas = config_1.configInfo.dbSchemaJSONOutput.excludeSchemas;
|
|
15
|
+
const excludeEntities = config_1.configInfo.dbSchemaJSONOutput.excludeEntities;
|
|
16
|
+
// first, get a list of all of the distinct schemas within the entities array
|
|
17
|
+
const schemas = [];
|
|
18
|
+
entities.forEach(e => {
|
|
19
|
+
if (!schemas.includes(e.SchemaName) && (excludeSchemas === null || !excludeSchemas.includes(e.SchemaName)))
|
|
20
|
+
schemas.push(e.SchemaName);
|
|
21
|
+
});
|
|
22
|
+
// now, generate a separate JSON file for each schema
|
|
23
|
+
const allSchemas = {
|
|
24
|
+
fullJSON: '[',
|
|
25
|
+
simpleJSON: '[',
|
|
26
|
+
count: 0
|
|
27
|
+
};
|
|
28
|
+
const outputCache = [];
|
|
29
|
+
schemas.forEach(s => {
|
|
30
|
+
const schemaEntities = entities.filter(e => e.SchemaName === s);
|
|
31
|
+
const schemaJSON = generateDBSchemaJSON(schemaEntities, excludeEntities, s, false);
|
|
32
|
+
allSchemas.fullJSON += (allSchemas.count === 0 ? '' : ',') + schemaJSON;
|
|
33
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${s}.full.json`), schemaJSON);
|
|
34
|
+
const schemaJSONMin = JSON.stringify(JSON.parse(schemaJSON));
|
|
35
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${s}.full.min.json`), schemaJSONMin);
|
|
36
|
+
const simpleSchemaJSON = generateDBSchemaJSON(schemaEntities, excludeEntities, s, true);
|
|
37
|
+
allSchemas.simpleJSON += (allSchemas.count === 0 ? '' : ',') + simpleSchemaJSON;
|
|
38
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${s}.simple.json`), simpleSchemaJSON);
|
|
39
|
+
const simpleSchemaJSONMin = JSON.stringify(JSON.parse(simpleSchemaJSON));
|
|
40
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${s}.simple.min.json`), simpleSchemaJSONMin);
|
|
41
|
+
(0, logging_1.logStatus)(` Generated schema JSON file for schema ${s}`);
|
|
42
|
+
outputCache.push({ schemaName: s, schemaJSON: schemaJSON, simpleSchemaJSON: simpleSchemaJSON });
|
|
43
|
+
allSchemas.count++;
|
|
44
|
+
});
|
|
45
|
+
// output the full JSON for all schemas
|
|
46
|
+
allSchemas.fullJSON += ']';
|
|
47
|
+
allSchemas.simpleJSON += ']';
|
|
48
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `__ALL.full.json`), allSchemas.fullJSON);
|
|
49
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `__ALL.simple.json`), allSchemas.simpleJSON);
|
|
50
|
+
// now output the minified versions
|
|
51
|
+
const allSchemasFullMin = JSON.stringify(JSON.parse(allSchemas.fullJSON));
|
|
52
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `__ALL.full.min.json`), allSchemasFullMin);
|
|
53
|
+
const allSchemasSimpleMin = JSON.stringify(JSON.parse(allSchemas.simpleJSON));
|
|
54
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `__ALL.simple.min.json`), allSchemasSimpleMin);
|
|
55
|
+
// finally, process bundles
|
|
56
|
+
config_1.configInfo.dbSchemaJSONOutput.bundles.forEach(b => {
|
|
57
|
+
if (!b.schemas || b.schemas.length === 0) {
|
|
58
|
+
// use the EXCLUDE list and create the schema list
|
|
59
|
+
b.schemas = schemas.filter(s => !b.excludeSchemas.includes(s));
|
|
60
|
+
}
|
|
61
|
+
// now we have the schemas we want to process in the b.schemas property
|
|
62
|
+
let json = '[';
|
|
63
|
+
let simpleJson = '[';
|
|
64
|
+
for (let x = 0; x < b.schemas.length; ++x) {
|
|
65
|
+
// grab the JSON for the schema in question and incorporate it into an output string
|
|
66
|
+
const schemaName = b.schemas[x];
|
|
67
|
+
const schemaEntities = entities.filter(e => e.SchemaName === schemaName);
|
|
68
|
+
json += (x > 0 ? ',' : '') + generateDBSchemaJSON(schemaEntities, b.excludeEntities, schemaName, false);
|
|
69
|
+
simpleJson += (x > 0 ? ',' : '') + generateDBSchemaJSON(schemaEntities, b.excludeEntities, schemaName, true);
|
|
70
|
+
}
|
|
71
|
+
json += ']';
|
|
72
|
+
simpleJson += ']';
|
|
73
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${b.name}.full.json`), json);
|
|
74
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${b.name}.simple.json`), simpleJson);
|
|
75
|
+
const jsonMin = JSON.stringify(JSON.parse(json));
|
|
76
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${b.name}.full.min.json`), jsonMin);
|
|
77
|
+
const simpleJsonMin = JSON.stringify(JSON.parse(simpleJson));
|
|
78
|
+
fs_1.default.writeFileSync(path_1.default.join(outputDir, `${b.name}.simple.min.json`), simpleJsonMin);
|
|
79
|
+
});
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
exports.generateDBSchemaJSONOutput = generateDBSchemaJSONOutput;
|
|
83
|
+
function generateDBSchemaJSON(entities, excludeEntities, schemaName, simpleVersion) {
|
|
84
|
+
let sOutput = `{
|
|
85
|
+
"schemaName": "${schemaName}",
|
|
86
|
+
"entities": [`;
|
|
87
|
+
// first create a copy of the entities array and sort it by name
|
|
88
|
+
let outputCount = 0;
|
|
89
|
+
const sortedEntities = [...entities];
|
|
90
|
+
sortedEntities.sort((a, b) => a.Name.localeCompare(b.Name));
|
|
91
|
+
for (let i = 0; i < sortedEntities.length; ++i) {
|
|
92
|
+
const entity = sortedEntities[i];
|
|
93
|
+
if (!excludeEntities || !excludeEntities.includes(entity.Name)) {
|
|
94
|
+
if (outputCount > 0)
|
|
95
|
+
sOutput += ',';
|
|
96
|
+
outputCount++;
|
|
97
|
+
sOutput += generateEntityJSON(entity, simpleVersion);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
sOutput += `
|
|
101
|
+
]
|
|
102
|
+
}`;
|
|
103
|
+
return sOutput;
|
|
104
|
+
}
|
|
105
|
+
exports.generateDBSchemaJSON = generateDBSchemaJSON;
|
|
106
|
+
function generateEntityJSON(entity, simpleVersion) {
|
|
107
|
+
let sOutput = `
|
|
108
|
+
{
|
|
109
|
+
"Name": "${entity.Name}",
|
|
110
|
+
"Description": "${entity.Description ? entity.Description : ''}",
|
|
111
|
+
"BaseView": "${entity.BaseView}",
|
|
112
|
+
"Fields": [`;
|
|
113
|
+
if (simpleVersion) {
|
|
114
|
+
// just create a comma delim string of the field names
|
|
115
|
+
sOutput += `"${entity.Fields.map(f => f.Name).join('","')}"]`;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
for (let i = 0; i < entity.Fields.length; ++i) {
|
|
119
|
+
const field = entity.Fields[i];
|
|
120
|
+
if (i > 0)
|
|
121
|
+
sOutput += ',';
|
|
122
|
+
sOutput += generateFieldJSON(field, simpleVersion);
|
|
123
|
+
}
|
|
124
|
+
sOutput += `
|
|
125
|
+
]`;
|
|
126
|
+
}
|
|
127
|
+
sOutput += `
|
|
128
|
+
}`;
|
|
129
|
+
return sOutput;
|
|
130
|
+
}
|
|
131
|
+
function generateFieldJSON(field, simpleVersion) {
|
|
132
|
+
const relEntity = field.RelatedEntity && field.RelatedEntity.length > 0 ? `\n "RelatedEntity": "${field.RelatedEntity}",` : '';
|
|
133
|
+
const relField = relEntity && field.RelatedEntityFieldName && field.RelatedEntityFieldName.length > 0 ? `\n "RelatedEntityFieldName": "${field.RelatedEntityFieldName}",` : '';
|
|
134
|
+
let sOutput = `
|
|
135
|
+
{
|
|
136
|
+
"Name": "${field.Name}",
|
|
137
|
+
"Description": "${field.Description ? field.Description : ''}",
|
|
138
|
+
"Type": "${field.Type}",${relEntity}${relField}
|
|
139
|
+
"AllowsNull": ${field.AllowsNull}
|
|
140
|
+
}`;
|
|
141
|
+
return sOutput;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=dbSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbSchema.js","sourceRoot":"","sources":["../src/dbSchema.ts"],"names":[],"mappings":";;;;;;AACA,uCAAsC;AACtC,4CAAoB;AACpB,gDAAwB;AACxB,qCAAsC;AAGtC,SAAgB,0BAA0B,CAAC,QAAsB,EAAE,SAAiB;IAChF,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,2CAA2C;IAE7F,MAAM,cAAc,GAAa,mBAAU,CAAC,kBAAkB,CAAC,cAAc,CAAC;IAC9E,MAAM,eAAe,GAAa,mBAAU,CAAC,kBAAkB,CAAC,eAAe,CAAC;IAEhF,6EAA6E;IAC7E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,UAAU,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,CAAC;KACX,CAAA;IAED,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAChB,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,oBAAoB,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACnF,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;QACxE,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7D,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC;QAE5E,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACxF,UAAU,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAChF,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC7E,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzE,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAEpF,IAAA,mBAAS,EAAC,8CAA8C,CAAC,EAAE,CAAC,CAAC;QAE7D,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAChG,UAAU,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,uCAAuC;IACvC,UAAU,CAAC,QAAQ,IAAI,GAAG,CAAC;IAC3B,UAAU,CAAC,UAAU,IAAI,GAAG,CAAC;IAE7B,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/E,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAEnF,mCAAmC;IACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACjF,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9E,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAErF,2BAA2B;IAC3B,mBAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC9C,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,kDAAkD;YAClD,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAClE;QACD,uEAAuE;QACvE,IAAI,IAAI,GAAW,GAAG,CAAC;QACvB,IAAI,UAAU,GAAW,GAAG,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC9C,oFAAoF;YACpF,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;YACvG,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;SAChH;QACD,IAAI,IAAI,GAAG,CAAC;QACZ,UAAU,IAAI,GAAG,CAAC;QAClB,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7D,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC;AAlFD,gEAkFC;AAED,SAAgB,oBAAoB,CAAC,QAAsB,EAAE,eAAyB,EAAE,UAAkB,EAAE,aAAsB;IAC9H,IAAI,OAAO,GAAW;qBACL,UAAU;kBACb,CAAC;IAEf,gEAAgE;IAChE,IAAI,WAAW,GAAW,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IACrC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,KAAK,IAAI,CAAC,GAAU,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC5D,IAAI,WAAW,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,CAAC;YAChC,WAAW,EAAE,CAAC;YAClB,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;SACxD;KACJ;IACD,OAAO,IAAI;;EAEb,CAAC;IACC,OAAO,OAAO,CAAC;AACnB,CAAC;AArBD,oDAqBC;AAED,SAAS,kBAAkB,CAAC,MAAkB,EAAE,aAAsB;IAClE,IAAI,OAAO,GAAW;;mBAEP,MAAM,CAAC,IAAI;0BACJ,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;uBAC/C,MAAM,CAAC,QAAQ;oBAClB,CAAC;IAEjB,IAAI,aAAa,EAAE;QACf,sDAAsD;QACtD,OAAO,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;KACjE;SACI;QACD,KAAK,IAAI,CAAC,GAAU,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,CAAC;YAC1B,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;SACtD;QACD,OAAO,IAAI;UACT,CAAA;KACL;IACD,OAAO,IAAI;MACT,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC;AAGD,SAAS,iBAAiB,CAAC,KAAsB,EAAE,aAAsB;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uCAAuC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7I,MAAM,QAAQ,GAAG,SAAS,IAAI,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gDAAgD,KAAK,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7L,IAAI,OAAO,GAAW;;2BAEC,KAAK,CAAC,IAAI;kCACH,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;2BACjD,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,QAAQ;gCAC9B,KAAK,CAAC,UAAU;cAClC,CAAA;IACV,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { EntityInfo } from '@memberjunction/core';
|
|
2
|
+
export declare function generateAllEntitySubClasses(entities: EntityInfo[], directory: string): boolean;
|
|
3
|
+
export declare function generateEntitySubClassFileHeader(): string;
|
|
4
|
+
export declare function generateEntitySubClass(entity: EntityInfo, includeFileHeader?: boolean): string;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateEntitySubClass = exports.generateEntitySubClassFileHeader = exports.generateAllEntitySubClasses = void 0;
|
|
7
|
+
const core_1 = require("@memberjunction/core");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const util_1 = require("./util");
|
|
11
|
+
function generateAllEntitySubClasses(entities, directory) {
|
|
12
|
+
try {
|
|
13
|
+
const sContent = generateEntitySubClassFileHeader() + entities.map(e => generateEntitySubClass(e, false)).join('');
|
|
14
|
+
(0, util_1.makeDir)(directory);
|
|
15
|
+
fs_1.default.writeFileSync(path_1.default.join(directory, 'entity_subclasses.ts'), sContent);
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
console.error(err);
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.generateAllEntitySubClasses = generateAllEntitySubClasses;
|
|
24
|
+
function generateEntitySubClassFileHeader() {
|
|
25
|
+
return `import { BaseEntity } from "@memberjunction/core";
|
|
26
|
+
import { RegisterClass } from "@memberjunction/global";
|
|
27
|
+
`;
|
|
28
|
+
}
|
|
29
|
+
exports.generateEntitySubClassFileHeader = generateEntitySubClassFileHeader;
|
|
30
|
+
function generateEntitySubClass(entity, includeFileHeader = false) {
|
|
31
|
+
const fields = entity.Fields.map(e => {
|
|
32
|
+
if (e.Name.toLowerCase() === 'id')
|
|
33
|
+
return '';
|
|
34
|
+
else {
|
|
35
|
+
let values = '';
|
|
36
|
+
let valueList = '';
|
|
37
|
+
if (e.ValueListType &&
|
|
38
|
+
e.ValueListType.length > 0 &&
|
|
39
|
+
e.ValueListType.trim().toLowerCase() !== 'none') {
|
|
40
|
+
values = e.EntityFieldValues.map(v => `\n * ${v.Value}${v.Description && v.Description.length > 0 ? ' - ' + v.Description : ''}`).join('');
|
|
41
|
+
valueList = `\n * Value List Type: ${e.ValueListType}\n * Possible Values ` + values;
|
|
42
|
+
}
|
|
43
|
+
let sRet = ` /**
|
|
44
|
+
* Field Name: ${e.Name}${e.DisplayName && e.DisplayName.length > 0 ? '\n * Display Name: ' + e.DisplayName : ''}
|
|
45
|
+
* SQL Data Type: ${e.SQLFullType}${e.RelatedEntity ? '\n * Related Entity: ' + e.RelatedEntity : ''}${e.DefaultValue && e.DefaultValue.length > 0 ? '\n * Default Value: ' + e.DefaultValue : ''}${valueList}${e.Description && e.Description.length > 0 ? '\n * Description: ' + e.Description : ''}
|
|
46
|
+
*/
|
|
47
|
+
get ${e.Name}(): ${(0, core_1.TypeScriptTypeFromSQLType)(e.Type)} {
|
|
48
|
+
return this.Get('${e.Name}');
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
if (!e.ReadOnly) {
|
|
52
|
+
sRet += ` set ${e.Name}(value: ${(0, core_1.TypeScriptTypeFromSQLType)(e.Type)}) {
|
|
53
|
+
this.Set('${e.Name}', value);
|
|
54
|
+
}`;
|
|
55
|
+
}
|
|
56
|
+
return sRet + '\n';
|
|
57
|
+
}
|
|
58
|
+
}).join('');
|
|
59
|
+
const sClassName = `${entity.ClassName}Entity`;
|
|
60
|
+
const subClass = entity.EntityObjectSubclassName ? entity.EntityObjectSubclassName : '';
|
|
61
|
+
const subClassImport = entity.EntityObjectSubclassImport ? entity.EntityObjectSubclassImport : '';
|
|
62
|
+
const sBaseClass = subClass.length > 0 && subClassImport.length > 0 ? `${subClass}` : 'BaseEntity';
|
|
63
|
+
const subClassImportStatement = subClass.length > 0 && subClassImport.length > 0 ? `import { ${subClass} } from '${subClassImport}';\n` : '';
|
|
64
|
+
let sRet = `
|
|
65
|
+
/**
|
|
66
|
+
* ${entity.Name} - strongly typed entity sub-class
|
|
67
|
+
* Schema: ${entity.SchemaName}
|
|
68
|
+
* Base Table: ${entity.BaseTable}
|
|
69
|
+
* Base View: ${entity.BaseView}${entity.Description && entity.Description.length > 0 ? '\n * @description ' + entity.Description : ''}
|
|
70
|
+
* @extends {BaseEntity}
|
|
71
|
+
* @class
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
${subClassImportStatement}@RegisterClass(BaseEntity, '${entity.Name}')
|
|
75
|
+
export class ${sClassName} extends ${sBaseClass} {
|
|
76
|
+
${fields}
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
if (includeFileHeader)
|
|
80
|
+
sRet = generateEntitySubClassFileHeader() + sRet;
|
|
81
|
+
return sRet;
|
|
82
|
+
}
|
|
83
|
+
exports.generateEntitySubClass = generateEntitySubClass;
|
|
84
|
+
//# sourceMappingURL=entity_subclasses_codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity_subclasses_codegen.js","sourceRoot":"","sources":["../src/entity_subclasses_codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { EntityInfo } from '@memberjunction/core';
|
|
2
|
+
export declare function generateGraphQLClientCode(entities: EntityInfo[], directory: string): boolean;
|
|
3
|
+
export declare function generateClientGraphQLFragmentString(entity: EntityInfo): string;
|
|
4
|
+
export declare function generateClientGraphQLDocumentString(entity: EntityInfo): string;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateClientGraphQLDocumentString = exports.generateClientGraphQLFragmentString = exports.generateGraphQLClientCode = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
function generateGraphQLClientCode(entities, directory) {
|
|
10
|
+
let graphQLOutput = '';
|
|
11
|
+
try {
|
|
12
|
+
for (let i = 0; i < entities.length; ++i) {
|
|
13
|
+
const entity = entities[i];
|
|
14
|
+
if (entity._hasIdField && entity.IncludeInAPI) {
|
|
15
|
+
graphQLOutput += generateClientGraphQLFragmentString(entity) + '\n\n';
|
|
16
|
+
graphQLOutput += generateClientGraphQLDocumentString(entity) + '\n\n';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
fs_1.default.writeFileSync(path_1.default.join(directory, 'generated.graphql'), graphQLOutput);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
console.error(err);
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.generateGraphQLClientCode = generateGraphQLClientCode;
|
|
28
|
+
function generateClientGraphQLFragmentString(entity) {
|
|
29
|
+
let sOutput = '';
|
|
30
|
+
try {
|
|
31
|
+
sOutput = internalGenerateFragment(entity, '', true);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
console.error(err);
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
return sOutput;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.generateClientGraphQLFragmentString = generateClientGraphQLFragmentString;
|
|
41
|
+
function internalGenerateFragment(entity, prefix, includeIdField) {
|
|
42
|
+
let sOutput = '';
|
|
43
|
+
try {
|
|
44
|
+
const fields = entity.Fields;
|
|
45
|
+
sOutput = generateFragmentHeader(prefix, entity);
|
|
46
|
+
// now generate the fields by looping through the fields collection from the database
|
|
47
|
+
for (let j = 0; j < fields.length; ++j) {
|
|
48
|
+
const f = fields[j];
|
|
49
|
+
if (f.Name.trim().toUpperCase() !== 'ID' || (f.Name.trim().toUpperCase() === 'ID' && includeIdField)) {
|
|
50
|
+
sOutput += generateFragmentField(f.Name);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// This doesn't do anything yet, but keeping it in case we need to add relationship info to the fragments in the future
|
|
54
|
+
// for (let j:number = 0; j < entity.RelatedEntities.length; ++j) {
|
|
55
|
+
// const r: EntityRelationship = entity.RelatedEntities[j];
|
|
56
|
+
// // only include SCALARS in fragments so commenting this out.... sOutput += generateFragmentRelatedEntity(r.RelatedEntity)
|
|
57
|
+
// }
|
|
58
|
+
// finally, close it up with the footer
|
|
59
|
+
sOutput += generateFragmentFooter();
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.error(err);
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
return sOutput;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function generateFragmentHeader(prefix, entity) {
|
|
69
|
+
return `fragment ${prefix}${entity.ClassName}Scalars on ${entity.ClassName} {`;
|
|
70
|
+
}
|
|
71
|
+
function generateFragmentField(fieldName) {
|
|
72
|
+
return `\n ${fieldName}`;
|
|
73
|
+
}
|
|
74
|
+
// not needed now as we're only generating scalars for the GraphQL fragments
|
|
75
|
+
// function generateFragmentRelatedEntity(entityName: string): string {
|
|
76
|
+
// return `\n ${entityName}`;
|
|
77
|
+
// }
|
|
78
|
+
function generateFragmentFooter() {
|
|
79
|
+
return `
|
|
80
|
+
}`;
|
|
81
|
+
}
|
|
82
|
+
function generateClientGraphQLDocumentString(entity) {
|
|
83
|
+
let sOutput = '';
|
|
84
|
+
let relatedEntities = '';
|
|
85
|
+
let relatedEntitiesToPackWithAll = '';
|
|
86
|
+
try {
|
|
87
|
+
//////////////// BUILD UP RELATED ENTITIES STRING ///////////////////////
|
|
88
|
+
for (let j = 0; j < entity.RelatedEntities.length; ++j) {
|
|
89
|
+
const r = entity.RelatedEntities[j];
|
|
90
|
+
relatedEntities += `
|
|
91
|
+
${r.RelatedEntityCodeName} {
|
|
92
|
+
...${r.RelatedEntityBaseTableCodeName}Scalars
|
|
93
|
+
}`;
|
|
94
|
+
if (r.IncludeInParentAllQuery) {
|
|
95
|
+
relatedEntitiesToPackWithAll += `
|
|
96
|
+
${r.RelatedEntityCodeName} {
|
|
97
|
+
...${r.RelatedEntityBaseTableCodeName}Scalars
|
|
98
|
+
}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
///////////// All Entities have a Single Query //////////////////////////
|
|
102
|
+
sOutput += `
|
|
103
|
+
query Single${entity.BaseTableCodeName}($ID: Int!) {
|
|
104
|
+
${entity.BaseTableCodeName}(ID: $ID) {
|
|
105
|
+
...${entity.BaseTableCodeName}Scalars
|
|
106
|
+
}
|
|
107
|
+
}`;
|
|
108
|
+
///////////// All Entities have a Single FULL Query that includes Related Entities //////////////////////////
|
|
109
|
+
sOutput += `
|
|
110
|
+
query Single${entity.BaseTableCodeName}Full($ID: Int!) {
|
|
111
|
+
${entity.BaseTableCodeName}(ID: $ID) {
|
|
112
|
+
...${entity.BaseTableCodeName}Scalars${relatedEntities}
|
|
113
|
+
}
|
|
114
|
+
}`;
|
|
115
|
+
///////////// Some Entities have an AllRows query ///////////////////////
|
|
116
|
+
if (entity.AllowAllRowsAPI) {
|
|
117
|
+
sOutput += `
|
|
118
|
+
query All${entity.CodeName} {
|
|
119
|
+
All${entity.CodeName} {
|
|
120
|
+
...${entity.BaseTableCodeName}Scalars${relatedEntitiesToPackWithAll}
|
|
121
|
+
}
|
|
122
|
+
}`;
|
|
123
|
+
}
|
|
124
|
+
///////////// Some Entities have a Create Mutation //////////////////////////
|
|
125
|
+
if (entity.AllowCreateAPI) {
|
|
126
|
+
sOutput += `
|
|
127
|
+
mutation Create${entity.ClassName}($input: Create${entity.ClassName}Input!) {
|
|
128
|
+
Create${entity.ClassName}(input: $input) {
|
|
129
|
+
...${entity.ClassName}Scalars
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
`;
|
|
133
|
+
}
|
|
134
|
+
///////////// Some Entities have an Update Mutation //////////////////////////
|
|
135
|
+
if (entity.AllowUpdateAPI) {
|
|
136
|
+
sOutput += `
|
|
137
|
+
mutation Update${entity.ClassName}($input: Update${entity.ClassName}Input!) {
|
|
138
|
+
Update${entity.ClassName}(input: $input) {
|
|
139
|
+
...${entity.ClassName}Scalars
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
///////////// Some Entities have a Delete Mutation //////////////////////////
|
|
145
|
+
if (entity.AllowDeleteAPI) {
|
|
146
|
+
sOutput += `
|
|
147
|
+
mutation Delete${entity.ClassName}($ID: Int!) {
|
|
148
|
+
Delete${entity.ClassName}(ID: $ID)
|
|
149
|
+
}
|
|
150
|
+
`;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
console.error(err);
|
|
155
|
+
}
|
|
156
|
+
finally {
|
|
157
|
+
return sOutput;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.generateClientGraphQLDocumentString = generateClientGraphQLDocumentString;
|
|
161
|
+
//# sourceMappingURL=graphql_client_codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql_client_codegen.js","sourceRoot":"","sources":["../src/graphql_client_codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { EntityInfo } from '@memberjunction/core';
|
|
2
|
+
export declare function generateGraphQLServerCode(entities: EntityInfo[], outputDirectory: string): boolean;
|
|
3
|
+
export declare function generateServerEntityString(entity: EntityInfo, includeFileHeader: boolean): string;
|
|
4
|
+
export declare function generateAllEntitiesServerFileHeader(): string;
|
|
5
|
+
export declare function generateEntitySpecificServerFileHeader(entity: EntityInfo): string;
|