diff --git a/.changeset/serious-chicken-sing.md b/.changeset/serious-chicken-sing.md new file mode 100644 index 0000000..45b5552 --- /dev/null +++ b/.changeset/serious-chicken-sing.md @@ -0,0 +1,5 @@ +--- +'@clarigen/cli': patch +--- + +Fixes `clarigen --watch` by generating types automatically, and properly reloading the session when files change. diff --git a/packages/cli/src/clarinet-sdk.ts b/packages/cli/src/clarinet-sdk.ts index 90cca6d..ac2edc6 100644 --- a/packages/cli/src/clarinet-sdk.ts +++ b/packages/cli/src/clarinet-sdk.ts @@ -13,7 +13,7 @@ import { mapVariables } from './files/variables'; import { SessionContract, SessionWithVariables } from './session'; export async function getSession(config: Config): Promise { - const simnet = await initSimnet(config.clarinetFile()); + const simnet = await initSimnet(config.clarinetFile(), true); const interfaces = simnet.getContractsInterfaces(); const accounts = simnet.getAccounts(); diff --git a/packages/cli/src/commands/default-command.ts b/packages/cli/src/commands/default-command.ts index c11757e..78141ea 100644 --- a/packages/cli/src/commands/default-command.ts +++ b/packages/cli/src/commands/default-command.ts @@ -28,9 +28,11 @@ export async function generate(config: Config) { export async function watch(config: Config, cwd?: string) { // const ora = await import('ora'); - return new Promise((resolve, reject) => { + return new Promise(async (resolve, reject) => { const clarinetFolder = dirname(config.clarinetFile()); const contractsFolder = join(clarinetFolder, '/contracts/**/*.clar'); + // First, generate the types + await generate(config); // const watchCwd = cwd || process.cwd(); const relativeFolder = relative(cwd || process.cwd(), contractsFolder); logger.info(`Watching for changes in ${relativeFolder}`);