UNPKG

@graphprotocol/graph-cli

Version:

CLI for building for and deploying to The Graph

43 lines (35 loc) 1.21 kB
const IpfsFileTemplateCodeGen = require('../protocols/ipfs/codegen/file_template') const tsCodegen = require('./typescript') module.exports = class DataSourceTemplateCodeGenerator { constructor(template, protocol) { this.template = template let kind = template.get('kind') if (kind.split('/')[0] == protocol.name) { this.protocolTemplateCodeGen = protocol.getTemplateCodeGen(template) } else if (kind == "file/ipfs") { this.protocolTemplateCodeGen = new IpfsFileTemplateCodeGen(template) } } generateModuleImports() { return [ tsCodegen.moduleImports( [ ...this.protocolTemplateCodeGen.generateModuleImports(), 'DataSourceTemplate', 'DataSourceContext', ], '@graphprotocol/graph-ts', ), ] } generateTypes() { return [this._generateTemplateType()] } _generateTemplateType() { let name = this.template.get('name') let klass = tsCodegen.klass(name, { export: true, extends: 'DataSourceTemplate' }) klass.addMethod(this.protocolTemplateCodeGen.generateCreateMethod()) klass.addMethod(this.protocolTemplateCodeGen.generateCreateWithContextMethod()) return klass } }