@patchworkdev/pdk
Version:
Patchwork Development Kit
41 lines (40 loc) • 1.91 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateTrpcHooks = generateTrpcHooks;
const promises_1 = __importDefault(require("fs/promises"));
const node_path_1 = __importDefault(require("node:path"));
const error_1 = require("../../../helpers/error");
const file_1 = require("../../../helpers/file");
const logger_1 = require("../../../helpers/logger");
const text_1 = require("../../../helpers/text");
const analyzeAPI_1 = require("./analyzeAPI");
async function generateTrpcHooks(trpcRouter, hooksDir) {
const trpcHooksFile = node_path_1.default.join(hooksDir, 'trpc.ts');
//const wagmiHooksFile = path.join(hooksDir, 'wagmi.ts');
// Check if tRPC router file exists
try {
await promises_1.default.access(trpcRouter);
}
catch (error) {
logger_1.logger.error(`Error: Unable to access tRPC router file at ${trpcRouter}`);
throw new error_1.PDKError(error_1.ErrorCode.FILE_NOT_FOUND, `Error: Unable to access tRPC router file at ${trpcRouter}`);
}
// Ensure hooks directory exists
try {
await promises_1.default.mkdir(hooksDir, { recursive: true });
}
catch (error) {
logger_1.logger.error(`Error creating hooks directory at ${hooksDir}:`, error);
throw new error_1.PDKError(error_1.ErrorCode.DIR_NOT_FOUND, `Error creating hooks directory at ${trpcRouter}`);
}
const apiStructure = (0, analyzeAPI_1.analyzeAPI)(trpcRouter);
const hooksFileArray = [`import { trpc } from '../lib/trpc';\n\n`];
for (let key in apiStructure) {
hooksFileArray.push(`export const use${(0, text_1.pascalCase)(key)} = trpc.${key}.useQuery;
`);
}
(0, file_1.formatAndSaveFile)(trpcHooksFile, hooksFileArray.join(''));
}