@patchworkdev/pdk
Version:
Patchwork Development Kit
40 lines (39 loc) • 1.97 kB
JavaScript
;
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');
}
}