From 99d2858f24b0e37f075e25f6cd9970c293c82e46 Mon Sep 17 00:00:00 2001 From: Saihajpreet Singh Date: Tue, 29 Aug 2023 12:33:01 -0400 Subject: [PATCH] use shared debug logger and extend it --- packages/cli/src/codegen/schema.ts | 4 ++-- packages/cli/src/commands/add.ts | 10 ++++++++++ packages/cli/src/commands/build.ts | 2 +- packages/cli/src/commands/codegen.ts | 2 +- packages/cli/src/compiler/index.ts | 2 +- packages/cli/src/debug.ts | 2 +- packages/cli/src/protocols/index.ts | 2 +- packages/cli/src/subgraph.ts | 10 +++++++--- 8 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/cli/src/codegen/schema.ts b/packages/cli/src/codegen/schema.ts index 11a00a028..e6028a3d5 100644 --- a/packages/cli/src/codegen/schema.ts +++ b/packages/cli/src/codegen/schema.ts @@ -1,5 +1,5 @@ /* eslint-disable unicorn/no-array-for-each */ -import debug from 'debug'; +import debug from '../debug'; import Schema from '../schema'; import * as typesCodegen from './types'; import * as tsCodegen from './typescript'; @@ -287,7 +287,7 @@ export default class SchemaCodeGenerator { _generateEntityFieldGetter(_entityDef: ObjectTypeDefinitionNode, fieldDef: FieldDefinitionNode) { const isDerivedField = this._isDerivedField(fieldDef); - const codegenDebug = debug('codegen'); + const codegenDebug = debug.extend('codegen'); if (isDerivedField) { codegenDebug(`Generating derived field getter for ${fieldDef.name.value}`); return this._generateDerivedFieldGetter(_entityDef, fieldDef); diff --git a/packages/cli/src/commands/add.ts b/packages/cli/src/commands/add.ts index 6e55fbd12..27b4674ab 100644 --- a/packages/cli/src/commands/add.ts +++ b/packages/cli/src/commands/add.ts @@ -20,6 +20,9 @@ import { withSpinner } from '../command-helpers/spinner'; import Protocol from '../protocols'; import EthereumABI from '../protocols/ethereum/abi'; import Subgraph from '../subgraph'; +import debug from '../debug'; + +const debugLog = debug.extend('add'); export default class AddCommand extends Command { static description = 'Adds a new datasource to a subgraph.'; @@ -82,6 +85,7 @@ export default class AddCommand extends Command { const entities = getEntities(manifest); const contractNames = getContractNames(manifest); if (contractNames.includes(contractName)) { + debugLog(`contractNames: %L`, contractNames, 'contractName: ', contractName); this.error( `Datasource or template with name ${contractName} already exists, please choose a different name.`, { exit: 1 }, @@ -102,6 +106,7 @@ export default class AddCommand extends Command { } catch (error) { // we cannot ask user to do prompt in test environment if (process.env.NODE_ENV !== 'test') { + debugLog(`error: %O`, error); // If we can't get the start block, we'll just leave it out of the manifest const { startBlock: userInputStartBlock } = await prompt.ask<{ startBlock: string }>([ { @@ -119,6 +124,7 @@ export default class AddCommand extends Command { } } + debugLog('writing abi to file'); await writeABI(ethabi, contractName); const { collisionEntities, onlyCollisions, abiData } = updateEventNamesOnCollision( @@ -130,6 +136,7 @@ export default class AddCommand extends Command { ethabi.data = abiData; + debugLog('writing schema to file'); await writeSchema( ethabi, protocol, @@ -137,10 +144,13 @@ export default class AddCommand extends Command { collisionEntities, contractName, ); + debugLog('writing mapping to file'); await writeMapping(ethabi, protocol, contractName, collisionEntities); + debugLog('writing tests to file'); await writeTestsFiles(ethabi, protocol, contractName); const dataSources = result.get('dataSources'); + debugLog('dataSources: %L', dataSources); const dataSource = await generateDataSource( protocol, contractName, diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands/build.ts index 3345495df..87ac64066 100644 --- a/packages/cli/src/commands/build.ts +++ b/packages/cli/src/commands/build.ts @@ -6,7 +6,7 @@ import { updateSubgraphNetwork } from '../command-helpers/network'; import debug from '../debug'; import Protocol from '../protocols'; -const buildDebug = debug('graph-cli:build'); +const buildDebug = debug.extend('build'); export default class BuildCommand extends Command { static description = 'Builds a subgraph and (optionally) uploads it to IPFS.'; diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts index 13789465e..22117895f 100644 --- a/packages/cli/src/commands/codegen.ts +++ b/packages/cli/src/commands/codegen.ts @@ -6,7 +6,7 @@ import debug from '../debug'; import Protocol from '../protocols'; import TypeGenerator from '../type-generator'; -const codegenDebug = debug('graph-cli:codegen'); +const codegenDebug = debug.extend('codegen'); export default class CodegenCommand extends Command { static description = 'Generates AssemblyScript types for a subgraph.'; diff --git a/packages/cli/src/compiler/index.ts b/packages/cli/src/compiler/index.ts index 95ed0d8b0..08f813339 100644 --- a/packages/cli/src/compiler/index.ts +++ b/packages/cli/src/compiler/index.ts @@ -14,7 +14,7 @@ import Subgraph from '../subgraph'; import Watcher from '../watcher'; import * as asc from './asc'; -const compilerDebug = debug('graph-cli:compiler'); +const compilerDebug = debug.extend('compiler'); interface CompilerOptions { ipfs: any; diff --git a/packages/cli/src/debug.ts b/packages/cli/src/debug.ts index a7c57e942..32dc908fd 100644 --- a/packages/cli/src/debug.ts +++ b/packages/cli/src/debug.ts @@ -12,4 +12,4 @@ debugFactory.formatters.M = immutableMap => { return immutableMap; }; -export default debugFactory; +export default debugFactory('graph-cli'); diff --git a/packages/cli/src/protocols/index.ts b/packages/cli/src/protocols/index.ts index 61c831508..be96fa69a 100644 --- a/packages/cli/src/protocols/index.ts +++ b/packages/cli/src/protocols/index.ts @@ -23,7 +23,7 @@ import { SubgraphOptions } from './subgraph'; import * as SubstreamsManifestScaffold from './substreams/scaffold/manifest'; import SubstreamsSubgraph from './substreams/subgraph'; -const protocolDebug = debug('graph-cli:protocol'); +const protocolDebug = debug.extend('protocol'); export default class Protocol { static fromDataSources(dataSourcesAndTemplates: any) { diff --git a/packages/cli/src/subgraph.ts b/packages/cli/src/subgraph.ts index b258e593e..ded490c8e 100644 --- a/packages/cli/src/subgraph.ts +++ b/packages/cli/src/subgraph.ts @@ -8,7 +8,7 @@ import debug from './debug'; import { Subgraph as ISubgraph } from './protocols/subgraph'; import * as validation from './validation'; -const subgraphDebug = debug('graph-cli:subgraph'); +const subgraphDebug = debug.extend('subgraph'); const throwCombinedError = (filename: string, errors: immutable.List) => { throw new Error( @@ -64,7 +64,9 @@ export default class Subgraph { }); // Validate the subgraph manifest using this schema - return validation.validateManifest(data, rootType, schema, protocol, { resolveFile }); + return validation.validateManifest(data, rootType, schema, protocol, { + resolveFile, + }); } static validateSchema(manifest: any, { resolveFile }: { resolveFile: ResolveFile }) { @@ -253,7 +255,9 @@ More than one template named '${name}', template names must be unique.`, // TODO: Validation for file data sources if (!has_file_data_sources) { - const manifestErrors = await Subgraph.validate(data, protocol, { resolveFile }); + const manifestErrors = await Subgraph.validate(data, protocol, { + resolveFile, + }); if (manifestErrors.size > 0) { throwCombinedError(filename, manifestErrors); }