diff --git a/src/utils/options.ts b/src/utils/options.ts index 72b3735..4dbab9e 100644 --- a/src/utils/options.ts +++ b/src/utils/options.ts @@ -3,6 +3,7 @@ import { NameApi } from './nameTransformers'; export type RenderOptions = GetRenderMapOptions & { deleteFolderBeforeRendering?: boolean; formatCode?: boolean; + generateBorsh?: boolean; }; export type GetRenderMapOptions = { diff --git a/src/visitors/renderVisitor.ts b/src/visitors/renderVisitor.ts index acaf0b8..6c12604 100644 --- a/src/visitors/renderVisitor.ts +++ b/src/visitors/renderVisitor.ts @@ -16,8 +16,8 @@ export function renderVisitor(path: string, options: RenderOptions) { if (options.formatCode ?? true) { try { - execSync(`dart format "${path}"`, { - cwd: process.cwd(), + execSync(`dart format .`, { + cwd: path, stdio: 'ignore', }); console.log('Dart formatting completed successfully.'); @@ -28,5 +28,25 @@ export function renderVisitor(path: string, options: RenderOptions) { console.warn('You can manually format the code by running: dart format "' + path + '"'); } } + if (options.generateBorsh ?? true) { + try { + execSync('dart pub get', { + cwd: path, + stdio: 'ignore', + }); + execSync('dart run build_runner build', { + cwd: path, + stdio: 'ignore', + }); + execSync('dart fix --apply', { + cwd: path, + stdio: 'ignore', + }); + } catch (error) { + console.log(error); + console.warn('Warning: Failed to run Dart commands. Make sure Dart SDK is installed.'); + console.warn(`You can manually run commands in ${path}: dart pub get && dart run build_runner build && dart fix --apply`); + } + } }); }