@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.
Files changed (50) hide show
  1. package/dist/angular_client_codegen.d.ts +2 -0
  2. package/dist/angular_client_codegen.js +360 -0
  3. package/dist/angular_client_codegen.js.map +1 -0
  4. package/dist/config.d.ts +101 -0
  5. package/dist/config.js +55 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/db.d.ts +3 -0
  8. package/dist/db.js +19 -0
  9. package/dist/db.js.map +1 -0
  10. package/dist/dbSchema.d.ts +3 -0
  11. package/dist/dbSchema.js +143 -0
  12. package/dist/dbSchema.js.map +1 -0
  13. package/dist/entity_subclasses_codegen.d.ts +4 -0
  14. package/dist/entity_subclasses_codegen.js +84 -0
  15. package/dist/entity_subclasses_codegen.js.map +1 -0
  16. package/dist/graphql_client_codegen.d.ts +4 -0
  17. package/dist/graphql_client_codegen.js +161 -0
  18. package/dist/graphql_client_codegen.js.map +1 -0
  19. package/dist/graphql_server_codegen.d.ts +5 -0
  20. package/dist/graphql_server_codegen.js +509 -0
  21. package/dist/graphql_server_codegen.js.map +1 -0
  22. package/dist/index.d.ts +15 -0
  23. package/dist/index.js +32 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/logging.d.ts +2 -0
  26. package/dist/logging.js +36 -0
  27. package/dist/logging.js.map +1 -0
  28. package/dist/manageMetadata.d.ts +9 -0
  29. package/dist/manageMetadata.js +603 -0
  30. package/dist/manageMetadata.js.map +1 -0
  31. package/dist/react_client_codegen.d.ts +4 -0
  32. package/dist/react_client_codegen.js +147 -0
  33. package/dist/react_client_codegen.js.map +1 -0
  34. package/dist/runCodeGen.d.ts +1 -0
  35. package/dist/runCodeGen.js +213 -0
  36. package/dist/runCodeGen.js.map +1 -0
  37. package/dist/runCommand.d.ts +9 -0
  38. package/dist/runCommand.js +111 -0
  39. package/dist/runCommand.js.map +1 -0
  40. package/dist/sql.d.ts +6 -0
  41. package/dist/sql.js +78 -0
  42. package/dist/sql.js.map +1 -0
  43. package/dist/sql_codegen.d.ts +11 -0
  44. package/dist/sql_codegen.js +753 -0
  45. package/dist/sql_codegen.js.map +1 -0
  46. package/dist/util.d.ts +4 -0
  47. package/dist/util.js +36 -0
  48. package/dist/util.js.map +1 -0
  49. package/package.json +28 -0
  50. package/readme.md +3 -0
@@ -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":"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"}
@@ -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;