binaries.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. __package__ = 'plugins_pkg.npm'
  2. from typing import List
  3. from pydantic import InstanceOf
  4. from pydantic_pkgr import BinProvider, BinName, BinaryOverrides
  5. from abx.archivebox.base_binary import BaseBinary, env, apt, brew
  6. class NodeBinary(BaseBinary):
  7. name: BinName = 'node'
  8. binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env]
  9. overrides: BinaryOverrides = {
  10. apt.name: {'packages': ['nodejs']},
  11. }
  12. NODE_BINARY = NodeBinary()
  13. class NpmBinary(BaseBinary):
  14. name: BinName = 'npm'
  15. binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env]
  16. overrides: BinaryOverrides = {
  17. apt.name: {'packages': ['npm']}, # already installed when nodejs is installed
  18. brew.name: {'install': lambda: None}, # already installed when nodejs is installed
  19. }
  20. NPM_BINARY = NpmBinary()
  21. class NpxBinary(BaseBinary):
  22. name: BinName = 'npx'
  23. binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env]
  24. overrides: BinaryOverrides = {
  25. apt.name: {'install': lambda: None}, # already installed when nodejs is installed
  26. brew.name: {'install': lambda: None}, # already installed when nodejs is installed
  27. }
  28. NPX_BINARY = NpxBinary()