diff --git a/lib/importmap/packager.rb b/lib/importmap/packager.rb index 0828465..ba572ea 100644 --- a/lib/importmap/packager.rb +++ b/lib/importmap/packager.rb @@ -113,14 +113,16 @@ def download_package_file(package, url) response = Net::HTTP.get_response(URI(url)) if response.code == "200" - save_vendored_package(package, response.body) + save_vendored_package(package, url, response.body) else handle_failure_response(response) end end - def save_vendored_package(package, source) + def save_vendored_package(package, url, source) File.open(vendored_package_path(package), "w+") do |vendored_package| + vendored_package.write "// #{package}#{extract_package_version_from(url)} downloaded from #{url}\n\n" + vendored_package.write remove_sourcemap_comment_from(source).force_encoding("UTF-8") end end diff --git a/test/packager_integration_test.rb b/test/packager_integration_test.rb index ccd766b..3600065 100644 --- a/test/packager_integration_test.rb +++ b/test/packager_integration_test.rb @@ -29,12 +29,17 @@ class Importmap::PackagerIntegrationTest < ActiveSupport::TestCase Rails.root.join("config/importmap.rb"), vendor_path: Pathname.new(vendor_dir) - @packager.download("@github/webauthn-json", - "https://ga.jspm.io/npm:@github/webauthn-json@0.5.7/dist/main/webauthn-json.js") - assert File.exist?(Pathname.new(vendor_dir).join("@github--webauthn-json.js")) - - @packager.download("react", "https://ga.jspm.io/npm:react@17.0.2/index.js") - assert File.exist?(Pathname.new(vendor_dir).join("react.js")) + package_url = "https://ga.jspm.io/npm:@github/webauthn-json@0.5.7/dist/main/webauthn-json.js" + @packager.download("@github/webauthn-json", package_url) + vendored_package_file = Pathname.new(vendor_dir).join("@github--webauthn-json.js") + assert File.exist?(vendored_package_file) + assert_equal "// @github/webauthn-json@0.5.7 downloaded from #{package_url}", File.readlines(vendored_package_file).first.strip + + package_url = "https://ga.jspm.io/npm:react@17.0.2/index.js" + vendored_package_file = Pathname.new(vendor_dir).join("react.js") + @packager.download("react", package_url) + assert File.exist?(vendored_package_file) + assert_equal "// react@17.0.2 downloaded from #{package_url}", File.readlines(vendored_package_file).first.strip @packager.remove("react") assert_not File.exist?(Pathname.new(vendor_dir).join("react.js"))