Class: Wabi::Generators::VendorGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/wabi/generators/vendor_generator.rb

Instance Method Summary collapse

Instance Method Details

#vendorObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/wabi/generators/vendor_generator.rb', line 16

def vendor
  roots = resolve_roots
  if roots.empty?
    say "  No jsDelivr +esm pins found in config/importmap.rb (nothing to vendor).", :yellow
    return
  end

  result = Wabi::ZagVendor.call(roots, fetcher: method(:http_get))

  result.files.each do |pkg, content|
    target = File.join(destination_root, "vendor/javascript", "#{pkg}.js")
    FileUtils.mkdir_p(File.dirname(target))
    File.write(target, content)
    say "  vendor    vendor/javascript/#{pkg}.js", :green
  end

  rewrite_importmap(result.files.keys)
  say "\n  Vendored #{result.files.size} package(s). config/importmap.rb now points at local copies.", :green
end