files( name="package-config", sources=[ "package.json", "pnpm-lock.yaml", ], dependencies=[], ) system_binary( name="node", binary_name="node", fingerprint=r"v(18|19|20|21)\..*\..*", fingerprint_args=["--version"], ) system_binary( name="pnpm", binary_name="pnpm", fingerprint=r"9\..*\..*", fingerprint_args=["--version"], fingerprint_dependencies=[":node"], ) # Fetch the dependencies and produce a `node_modules` directory adhoc_tool( name="node-modules", runnable=":pnpm", runnable_dependencies=[":node"], args=["install"], output_dependencies=[":package-config"], execution_dependencies=[":package-config"], output_directories=["node_modules"], timeout=300, ) run_shell_command( name="codegen", command="pnpm graphql-codegen", execution_dependencies=[ ":node-modules", ], )