Sha256: ba2c882c1f12f20c5ba72c453af2798a41bf2329a326fb59fa988ca83315475d
Contents?: true
Size: 868 Bytes
Versions: 3
Compression:
Stored size: 868 Bytes
Contents
require "httparty" class Importmap::Pinner include HTTParty base_uri "https://api.jspm.io" def pin(*packages, env: "production", from: "jspm") fetch_imports(*packages, env: env, provider: from)&.tap do |imports| imports.each do |package, url| append_to_importmap package, url end end end private def append_to_importmap(package, url) Rails.root.join("config/importmap.rb").open("a") do |config| config.puts %(pin "#{package}", to: "#{url}") end end def fetch_imports(*packages, env:, provider:) response = self.class.post("/generate", body: { "install" => Array(packages), "flattenScope" => true, "env" => [ "browser", "module", env ], "provider" => provider.to_s }.to_json) response.dig("map", "imports") end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
importmap-rails-0.4.3 | lib/importmap/pinner.rb |
importmap-rails-0.4.2 | lib/importmap/pinner.rb |
importmap-rails-0.4.1 | lib/importmap/pinner.rb |