Skip to content

Commit b45cf73

Browse files
committed
Dont generate store methods for source subgraph schema
1 parent b7a8358 commit b45cf73

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

packages/cli/src/codegen/schema.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,14 @@ export default class SchemaCodeGenerator {
9797
];
9898
}
9999

100-
generateTypes(): Array<tsCodegen.Class> {
100+
generateTypes(generateStoreMethods = true): Array<tsCodegen.Class> {
101101
return this.schema.ast.definitions
102102
.map(def => {
103103
if (this._isEntityTypeDefinition(def)) {
104104
schemaCodeGeneratorDebug.extend('generateTypes')(
105105
`Generating entity type for ${def.name.value}`,
106106
);
107-
return this._generateEntityType(def);
107+
return this._generateEntityType(def, generateStoreMethods);
108108
}
109109
})
110110
.filter(Boolean) as Array<tsCodegen.Class>;
@@ -157,7 +157,7 @@ export default class SchemaCodeGenerator {
157157
return def.kind === 'InterfaceTypeDefinition';
158158
}
159159

160-
_generateEntityType(def: ObjectTypeDefinitionNode) {
160+
_generateEntityType(def: ObjectTypeDefinitionNode, generateStoreMethods = true) {
161161
const name = def.name.value;
162162
const klass = tsCodegen.klass(name, { export: true, extends: 'Entity' });
163163
const fields = def.fields;
@@ -166,8 +166,10 @@ export default class SchemaCodeGenerator {
166166
// Generate and add a constructor
167167
klass.addMethod(this._generateConstructor(name, fields));
168168

169-
// Generate and add save() and getById() methods
170-
this._generateStoreMethods(name, idField).forEach(method => klass.addMethod(method));
169+
if (generateStoreMethods) {
170+
// Generate and add save() and getById() methods
171+
this._generateStoreMethods(name, idField).forEach(method => klass.addMethod(method));
172+
}
171173

172174
// Generate and add entity field getters and setters
173175
def.fields

packages/cli/src/type-generator.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export default class TypeGenerator {
102102

103103
const schema = await this.loadSchema(subgraph);
104104
typeGenDebug.extend('generateTypes')('Generating types for schema');
105-
await this.generateTypesForSchema(schema);
105+
await this.generateTypesForSchema({ schema });
106106

107107
if (this.options.subgraphSources.length > 0) {
108108
const ipfsClient = create({
@@ -123,7 +123,11 @@ export default class TypeGenerator {
123123
typeGenDebug.extend('generateTypes')(
124124
`Generating types for subgraph datasource ${manifest}`,
125125
);
126-
await this.generateTypesForSchema(subgraphSchema, `subgraph-${manifest}.ts`);
126+
await this.generateTypesForSchema({
127+
schema: subgraphSchema,
128+
fileName: `subgraph-${manifest}.ts`,
129+
generateStoreMethods: false,
130+
});
127131
}),
128132
);
129133
}
@@ -226,11 +230,17 @@ export default class TypeGenerator {
226230
);
227231
}
228232

229-
async generateTypesForSchema(
230-
schema: any,
233+
async generateTypesForSchema({
234+
schema,
231235
fileName = 'schema.ts', // Default file name
232-
outputDir: string = this.options.outputDir, // Default output directory
233-
) {
236+
outputDir = this.options.outputDir, // Default output directory
237+
generateStoreMethods = true,
238+
}: {
239+
schema: any;
240+
fileName?: string;
241+
outputDir?: string;
242+
generateStoreMethods?: boolean;
243+
}) {
234244
return await withSpinner(
235245
`Generate types for GraphQL schema`,
236246
`Failed to generate types for GraphQL schema`,
@@ -242,7 +252,7 @@ export default class TypeGenerator {
242252
[
243253
GENERATED_FILE_NOTE,
244254
...codeGenerator.generateModuleImports(),
245-
...codeGenerator.generateTypes(),
255+
...codeGenerator.generateTypes(generateStoreMethods),
246256
...codeGenerator.generateDerivedLoaders(),
247257
].join('\n'),
248258
{

0 commit comments

Comments
 (0)