|
8 | 8 | 'use strict'; |
9 | 9 |
|
10 | 10 | var serviceUrls = { |
11 | | - npm: 'https://www.npmjs.org/package/' |
| 11 | + npm: 'https://www.npmjs.org/package/', |
| 12 | + bower: 'https://bower.herokuapp.com/packages/search/' |
12 | 13 | }; |
13 | 14 |
|
14 | 15 | start (); |
|
18 | 19 | function run() { |
19 | 20 | if (!$(document.body).hasClass('boxcutter-processed')) { |
20 | 21 | switch(getManifestType()) { |
21 | | - case 'js': |
22 | | - enhanceJSModules(); |
| 22 | + case 'npm': |
| 23 | + enhanceJSModules('npm'); |
| 24 | + $(document.body).addClass('boxcutter-processed'); |
| 25 | + return; |
| 26 | + case 'bower': |
| 27 | + enhanceJSModules('bower'); |
23 | 28 | $(document.body).addClass('boxcutter-processed'); |
24 | 29 | return; |
25 | 30 | case 'rb': |
|
57 | 62 | var fileName = $('.final-path').text(); |
58 | 63 | switch(fileName) { |
59 | 64 | case 'package.json': |
| 65 | + return 'npm'; |
60 | 66 | case 'bower.json': |
61 | | - return 'js'; |
| 67 | + return 'bower'; |
62 | 68 | case 'Gemfile': |
63 | 69 | return 'rb'; |
64 | 70 | default: |
|
101 | 107 |
|
102 | 108 | function handleJSClick(jqevt) { |
103 | 109 | var $target = $(jqevt.target); |
104 | | - var npmUrl = serviceUrls.npm + $target.data('pkg-name'); |
105 | | - $.ajax("https://registry.npmjs.org/" + $target.data('pkg-name')).then(function(data) { |
106 | | - window.open(data.homepage); |
107 | | - }); |
| 110 | + switch($target.data('pkg-type')) { |
| 111 | + case 'npm': |
| 112 | + var npmUrl = serviceUrls.npm + $target.data('pkg-name'); |
| 113 | + $.ajax(npmUrl).then(function(data) { |
| 114 | + window.open(data.homepage); |
| 115 | + }); |
| 116 | + break; |
| 117 | + case 'bower': |
| 118 | + var bowerUrl = serviceUrls.bower + $target.data('pkg-name'); |
| 119 | + $.ajax(bowerUrl).then(function(data) { |
| 120 | + window.open(data[0].url.replace("git://", "https://")); |
| 121 | + }); |
| 122 | + break; |
| 123 | + } |
108 | 124 | } |
109 | 125 |
|
110 | | - function enhanceJSModules() { |
| 126 | + function enhanceJSModules(moduleType) { |
111 | 127 | var json = JSON.parse($('.js-file-line-container tbody').text()); |
112 | 128 |
|
113 | 129 | function enhanceLinkSection (section) { |
|
123 | 139 | var quot = $quot.innerText; |
124 | 140 |
|
125 | 141 | var $ver = $line.find(".pl-s:contains(''" + pkgVersion + "''), .pl-s:contains('\"" + pkgVersion + "\"')"); |
126 | | - var $lnk = $('<a data-pkg-name="' + pkgName + '" data-pkg-ver="' + pkgVersion + '"></a>'); |
| 142 | + var $lnk = $('<a data-pkg-type="' + moduleType + '" data-pkg-name="' + pkgName + '" data-pkg-ver="' + pkgVersion + '"></a>'); |
127 | 143 | $lnk.click(handleJSClick); |
128 | 144 | $lnk[0].innerHTML = '<span class="pl-pds">' + quot + '</span>' + pkgName + '<span class="pl-pds">' + quot + '</span>'; |
129 | 145 | $pkg[0].innerHTML = ''; |
|
0 commit comments