UNPKG

@patchworkdev/pdk

Version:

Patchwork Development Kit

40 lines (39 loc) 1.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateSchema = generateSchema; const promises_1 = __importDefault(require("fs/promises")); const path_1 = __importDefault(require("path")); const config_1 = require("../../../common/helpers/config"); const error_1 = require("../../../common/helpers/error"); const logger_1 = require("../../../common/helpers/logger"); const schema_1 = require("./schema"); async function generateSchema(configPath) { const configDir = path_1.default.dirname(configPath); const abiDir = path_1.default.join(configDir, 'ponder', 'abis'); const ponderSchema = path_1.default.join(configDir, 'ponder', 'ponder.schema.ts'); logger_1.logger.debug('Config directory:', configDir); logger_1.logger.debug('ABI directory:', abiDir); logger_1.logger.debug('Schema output path:', ponderSchema); // Check if ABI directory exists try { await promises_1.default.access(abiDir); logger_1.logger.debug('ABI directory accessible'); } catch (error) { logger_1.logger.error(`Unable to access ABI directory at ${abiDir}`); throw new error_1.PDKError(error_1.ErrorCode.DIR_NOT_FOUND, `Unable to access ABI directory at ${abiDir}`); } try { const projectConfig = await (0, config_1.importPatchworkConfig)(configPath); logger_1.logger.debug('Project config loaded successfully'); await (0, schema_1.generateSchemaFile)(projectConfig, ponderSchema); logger_1.logger.info(`Ponder schema generated successfully at ${ponderSchema}`); } catch (error) { logger_1.logger.error(`Failed to generate schema: ${error}`); throw error instanceof error_1.PDKError ? error : new error_1.PDKError(error_1.ErrorCode.UNKNOWN_ERROR, 'Failed to generate schema'); } }