files( name="static_src", sources=["**/*", "!node_modules/**/*"], ) files( name="tailwind", sources=[ "src/styles.css", "tailwind.config.js", "postcss.config.js", ], dependencies=[], ) system_binary(name="sh", binary_name="sh") package_json( name="test_pkg", dependencies=[":tailwind"], scripts=[ node_build_script( entry_point="build", output_directories=["src/python/apps/admin_webapp/theme/static"], ) ], ) system_binary( name="node", binary_name="node", extra_search_paths=[ env("NODE_PATH", ""), ], fingerprint=r"v22\.[0-9]+\.[0-9]+", fingerprint_args=["--version"], ) system_binary( name="npm", binary_name="npm", extra_search_paths=[ env("NODE_PATH", ""), ], fingerprint=r"10\.[0-9]+\.[0-9]+", fingerprint_args=["--version"], fingerprint_dependencies=[":node"], ) files( name="package-config", sources=[ "package.json", "package-lock.json", ], dependencies=[], ) # Fetch the dependencies and produce a `node_modules` directory adhoc_tool( name="npm_install", runnable=":npm", runnable_dependencies=[":node", ":sh"], args=["ci"], output_dependencies=[":package-config"], execution_dependencies=[":package-config"], output_directories=["node_modules"], timeout=300, ) template_dirs = [ f"src/python/apps/admin_webapp/{path}/templates:templates" for path in ["theme", "apps/payer_config", "apps/llm_tools"] ] adhoc_tool( name="npm_build", runnable=":npm", runnable_dependencies=[":npm", ":node", ":sh"], args=["run", "build"], execution_dependencies=[ ":npm_install", ":tailwind", *template_dirs, "src/python/apps/admin_webapp/theme/static:static", ], output_directories=["../static"], ) experimental_wrap_as_resources(name="npm_build_result", inputs=[":npm_build"])