Skip to content

Commit 9fac238

Browse files
authored
Merge pull request #198 from vietqhoang/add-single-quote-support
Add single quote support in `importmap.rb`
2 parents 9eec49a + 5ca80cf commit 9fac238

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

Diff for: lib/importmap/npm.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ def packages_with_versions
4848
# We cannot use the name after "pin" because some dependencies are loaded from inside packages
4949
# Eg. pin "buffer", to: "https://ga.jspm.io/npm:@jspm/[email protected]/nodelibs/browser/buffer.js"
5050

51-
importmap.scan(/^pin .*(?<=npm:|npm\/|skypack\.dev\/|unpkg\.com\/)(.*)(?=@\d+\.\d+\.\d+)@(\d+\.\d+\.\d+(?:[^\/\s"]*)).*$/) |
52-
importmap.scan(/^pin "([^"]*)".* #.*@(\d+\.\d+\.\d+(?:[^\s]*)).*$/)
51+
importmap.scan(/^pin .*(?<=npm:|npm\/|skypack\.dev\/|unpkg\.com\/)(.*)(?=@\d+\.\d+\.\d+)@(\d+\.\d+\.\d+(?:[^\/\s["']]*)).*$/) |
52+
importmap.scan(/^pin ["']([^["']]*)["'].* #.*@(\d+\.\d+\.\d+(?:[^\s]*)).*$/)
5353
end
5454

5555
private
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pin 'md5', to: 'https://cdn.skypack.dev/[email protected]', preload: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pin 'md5', preload: true #@2.2.0

Diff for: test/npm_test.rb

+28
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,34 @@ class Importmap::NpmTest < ActiveSupport::TestCase
1818
end
1919
end
2020

21+
test "successful outdated packages using single-quotes with mock" do
22+
npm = Importmap::Npm.new(file_fixture("single_quote_outdated_import_map.rb"))
23+
response = { "dist-tags" => { "latest" => '2.3.0' } }.to_json
24+
25+
npm.stub(:get_json, response) do
26+
outdated_packages = npm.outdated_packages
27+
28+
assert_equal(1, outdated_packages.size)
29+
assert_equal('md5', outdated_packages[0].name)
30+
assert_equal('2.2.0', outdated_packages[0].current_version)
31+
assert_equal('2.3.0', outdated_packages[0].latest_version)
32+
end
33+
end
34+
35+
test "successful outdated packages using single-quotes and without CDN with mock" do
36+
npm = Importmap::Npm.new(file_fixture("single_quote_outdated_import_map_without_cdn.rb"))
37+
response = { "dist-tags" => { "latest" => '2.3.0' } }.to_json
38+
39+
npm.stub(:get_json, response) do
40+
outdated_packages = npm.outdated_packages
41+
42+
assert_equal(1, outdated_packages.size)
43+
assert_equal('md5', outdated_packages[0].name)
44+
assert_equal('2.2.0', outdated_packages[0].current_version)
45+
assert_equal('2.3.0', outdated_packages[0].latest_version)
46+
end
47+
end
48+
2149
test "missing outdated packages with mock" do
2250
response = { "error" => "Not found" }.to_json
2351

0 commit comments

Comments
 (0)