From 0a80889848ccb3ada94dd2fdb793a01a268f7a16 Mon Sep 17 00:00:00 2001
From: Will Mendes <willmendesneto@gmail.com>
Date: Sat, 29 Aug 2015 11:48:28 -0300
Subject: [PATCH] Frontend-search: add search in npm website

---
 plugins/frontend-search/README.md                  | 2 ++
 plugins/frontend-search/_frontend-search.sh        | 4 ++++
 plugins/frontend-search/frontend-search.plugin.zsh | 7 ++++++-
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md
index 801d450f3..b8e96ea4a 100644
--- a/plugins/frontend-search/README.md
+++ b/plugins/frontend-search/README.md
@@ -43,6 +43,7 @@ The search content are
 * `reactjs <google.com/search?as_q=<search-term>&as_sitesearch=facebook.github.io/react>`
 * `emberjs <emberjs.com>`
 * `stackoverflow <stackoverflow.com>`
+* `npmjs <npmjs.com>`
 
 
 ## Aliases ##
@@ -69,6 +70,7 @@ There are a few aliases presented as well:
 * `reactjs` A shorthand for `frontend reactjs`
 * `emberjs` A shorthand for `frontend emberjs`
 * `stackoverflow` A shorthand for `frontend stackoverflow`
+* `npmjs` A shorthand for `frontend npmjs`
 
 
 ## Author
diff --git a/plugins/frontend-search/_frontend-search.sh b/plugins/frontend-search/_frontend-search.sh
index 252f21570..b12f829a1 100644
--- a/plugins/frontend-search/_frontend-search.sh
+++ b/plugins/frontend-search/_frontend-search.sh
@@ -37,6 +37,7 @@ function _frontend() {
     'reactjs: Search in React website'
     'emberjs: Search in Ember website'
     'stackoverflow: Search in StackOverflow website'
+    'npmjs: Search in NPMJS website'
   )
 
   _arguments -C \
@@ -110,6 +111,9 @@ function _frontend() {
         stackoverflow)
           _describe -t points "Warp points" frontend_points && ret=0
           ;;
+        npmjs)
+          _describe -t points "Warp points" frontend_points && ret=0
+          ;;
       esac
       ;;
   esac
diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh
index f7485621b..e47735a60 100644
--- a/plugins/frontend-search/frontend-search.plugin.zsh
+++ b/plugins/frontend-search/frontend-search.plugin.zsh
@@ -9,7 +9,7 @@ function frontend() {
   fi
 
   # check whether the search engine is supported
-  if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow)' ]];
+  if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow|npmjs)' ]];
   then
     echo "Search valid search content $1 not supported."
     echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')"
@@ -33,6 +33,7 @@ function frontend() {
     echo "* reactjs"
     echo "* emberjs"
     echo "* stackoverflow"
+    echo "* npmjs"
     echo ""
 
     return 1
@@ -99,6 +100,9 @@ function frontend() {
     "stackoverflow")
       url="${url}stackoverflow.com"
       url="${url}/search?q=$2" ;;
+    "npmjs")
+      url="${url}www.npmjs.com"
+      url="${url}/search?q=$2" ;;
     *) echo "INVALID PARAM!"
        return ;;
   esac
@@ -148,3 +152,4 @@ alias emberjs='frontend emberjs'
 
 # search websites
 alias stackoverflow='frontend stackoverflow'
+alias npmjs='frontend npmjs'