Class: Importmap::Node::Installer
- Inherits:
-
Object
- Object
- Importmap::Node::Installer
- Defined in:
- lib/importmap/node/installer.rb
Constant Summary collapse
- JS_DEST =
'vendor/javascript'- CONFIG_FILE =
'config/importmap_node.json'
Instance Method Summary collapse
-
#initialize(root: Rails.root) ⇒ Installer
constructor
A new instance of Installer.
- #install(package) ⇒ Object
- #uninstall(package) ⇒ Object
- #update ⇒ Object
Constructor Details
#initialize(root: Rails.root) ⇒ Installer
Returns a new instance of Installer.
12 13 14 15 16 17 |
# File 'lib/importmap/node/installer.rb', line 12 def initialize(root: Rails.root) @root = Pathname.new(root) @node_modules = @root.join('node_modules') @importmap = @root.join('config', 'importmap.rb') @config_file = @root.join(CONFIG_FILE) end |
Instance Method Details
#install(package) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/importmap/node/installer.rb', line 19 def install(package) resolved_name = yarn_add(package) pkg_name = resolved_name || resolve_package_name(package) = (pkg_name) js_files = vendor_js(pkg_name, ) pin_importmap(pkg_name, js_files) record_package(package) summarize(pkg_name, js_files) end |
#uninstall(package) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/importmap/node/installer.rb', line 30 def uninstall(package) pkg_name = resolve_package_name(package) = (pkg_name) js_files = vendored_js_files(pkg_name, ) yarn_remove(pkg_name) delete_files(JS_DEST, js_files) unpin_importmap(pkg_name) unrecord_package(package) summarize_removal(pkg_name, js_files) end |
#update ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/importmap/node/installer.rb', line 43 def update packages = load_packages if packages.empty? puts "No packages tracked in #{CONFIG_FILE}." return end yarn_up_dependencies puts "Re-vendoring #{packages.size} package(s)..." packages.each { |pkg| revendor(pkg) } end |