generate-clients.mjs 743 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/env zx
  2. import "zx/globals";
  3. import * as k from "@metaplex-foundation/kinobi";
  4. import { workingDirectory } from "./utils.mjs";
  5. // Instanciate Kinobi.
  6. const kinobi = k.createFromRoot(
  7. require(path.join(workingDirectory, "program", "idl.json"))
  8. );
  9. // Render JavaScript.
  10. const jsClient = path.join(__dirname, "..", "clients", "js");
  11. kinobi.accept(
  12. k.renderJavaScriptExperimentalVisitor(
  13. path.join(jsClient, "src", "generated"),
  14. { prettier: require(path.join(jsClient, ".prettierrc.json")) }
  15. )
  16. );
  17. // Render Rust.
  18. const rustClient = path.join(__dirname, "..", "clients", "rust");
  19. kinobi.accept(
  20. k.renderRustVisitor(path.join(rustClient, "src", "generated"), {
  21. formatCode: true,
  22. crateFolder: rustClient,
  23. })
  24. );