| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- __package__ = 'archivebox.builtin_plugins.npm'
- from pathlib import Path
- from typing import List, Dict, Optional
- from pydantic import InstanceOf, Field
- from django.apps import AppConfig
- from django.conf import settings
- from pydantic_pkgr import BinProvider, NpmProvider, BinName, PATHStr
- from plugantic.base_plugin import BasePlugin, BaseConfigSet, BaseBinary, BaseBinProvider
- from plugantic.base_configset import ConfigSectionName
- from pkg.settings import env, apt, brew
- from ...config import CONFIG
- ###################### Config ##########################
- class NpmDependencyConfigs(BaseConfigSet):
- section: ConfigSectionName = 'DEPENDENCY_CONFIG'
- USE_NPM: bool = True
- NPM_BINARY: str = Field(default='npm')
- NPM_ARGS: Optional[List[str]] = Field(default=None)
- NPM_EXTRA_ARGS: List[str] = []
- NPM_DEFAULT_ARGS: List[str] = []
- DEFAULT_GLOBAL_CONFIG = {
- }
- NPM_CONFIG = NpmDependencyConfigs(**DEFAULT_GLOBAL_CONFIG)
- class NpmProvider(NpmProvider, BaseBinProvider):
- PATH: PATHStr = str(CONFIG.NODE_BIN_PATH)
- npm = NpmProvider(PATH=str(CONFIG.NODE_BIN_PATH))
- class NpmBinary(BaseBinary):
- name: BinName = 'npm'
- binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env]
- NPM_BINARY = NpmBinary()
- class NodeBinary(BaseBinary):
- name: BinName = 'node'
- binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env]
- NODE_BINARY = NodeBinary()
- class NpmPlugin(BasePlugin):
- name: str = 'builtin_plugins.npm'
- app_label: str = 'npm'
- verbose_name: str = 'NPM'
- configs: List[InstanceOf[BaseConfigSet]] = [NPM_CONFIG]
- binproviders: List[InstanceOf[BaseBinProvider]] = [npm]
- binaries: List[InstanceOf[BaseBinary]] = [NODE_BINARY, NPM_BINARY]
- PLUGIN = NpmPlugin()
- DJANGO_APP = PLUGIN.AppConfig
- # CONFIGS = PLUGIN.configs
- # BINARIES = PLUGIN.binaries
- # EXTRACTORS = PLUGIN.extractors
- # REPLAYERS = PLUGIN.replayers
- # CHECKS = PLUGIN.checks
|