@patchworkdev/pdk
Version:
Patchwork Development Kit
59 lines (58 loc) • 2.72 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateServices = generateServices;
const promises_1 = __importDefault(require("fs/promises"));
const path_1 = __importDefault(require("path"));
const logger_1 = require("../common/helpers/logger");
const _1 = require("./");
const typescriptSchemas_1 = require("./typescriptSchemas");
async function generateServices(configPath) {
logger_1.logger.info('Generating all components...');
logger_1.logger.info('Using config file:', configPath);
// Generate TypeScript ABIs
logger_1.logger.info('Generating TypeScript ABIs...');
await (0, _1.generateABIs)(configPath);
// Generate TypeScript ABIs
logger_1.logger.info('Generating TypeScript contract schemas...');
await (0, typescriptSchemas_1.generateTypescriptSchemas)(configPath);
// Generate Ponder Schema
logger_1.logger.info('Generating Ponder schema...');
await (0, _1.generateSchema)(configPath);
// Generate Event Hooks
logger_1.logger.info('Generating Ponder events...');
await (0, _1.generateEventHooks)(configPath);
// Generate Ponder Config
logger_1.logger.info('Generating Ponder Config...');
await (0, _1.generatePonderConfig)(configPath);
// Generate API
logger_1.logger.info('Generating API...');
const schemaPath = path_1.default.join(path_1.default.dirname(configPath), 'ponder', 'ponder.schema.ts');
const apiOutputDir = path_1.default.join(path_1.default.dirname(configPath), 'ponder', 'src', 'generated');
try {
await promises_1.default.access(apiOutputDir);
}
catch (error) {
logger_1.logger.info(`API output directory does not exist. Creating ${apiOutputDir}`);
await promises_1.default.mkdir(apiOutputDir, { recursive: true });
}
await (0, _1.generateAPI)(schemaPath, apiOutputDir);
// Generate React Hooks
logger_1.logger.info('Generating React hooks...');
await (0, _1.generateReactHooks)(configPath);
// generate www env
logger_1.logger.info('Generating WWW Env file...');
await (0, _1.generateWWWEnv)(configPath);
// generate ponder env
logger_1.logger.info('Generating Ponder Env file...');
await (0, _1.generatePonderEnv)(configPath);
// Generate React Components
// console.log('Generating React Components...');
// await generateReactComponents(configPath);
// Generate Demo Page
// console.log('Generating Demo Page...');
// await generateDemoPage(configPath);
logger_1.logger.info('All components generated successfully!');
}