1
1
"use strict" ;
2
2
3
3
var starterkit_manager = function ( config ) {
4
- var path = require ( 'path' ) ,
5
- fs = require ( 'fs-extra' ) ,
6
- util = require ( './utilities' ) ,
7
- paths = config . paths ;
4
+ var path = require ( 'path' ) ,
5
+ fetch = require ( 'node-fetch' ) ,
6
+ fs = require ( 'fs-extra' ) ,
7
+ util = require ( './utilities' ) ,
8
+ paths = config . paths ;
8
9
9
10
function loadStarterKit ( starterkitName , clean ) {
10
11
try {
@@ -41,8 +42,35 @@ var starterkit_manager = function (config) {
41
42
}
42
43
}
43
44
45
+ /**
46
+ * @func listStarterkits
47
+ * @desc Fetches starterkit repos from GH API that contain 'starterkit' in their name for the user 'pattern-lab'
48
+ * @returns {Promise } Returns an Array<{name,url}> for the starterkit repos
49
+ */
44
50
function listStarterkits ( ) {
45
- console . log ( 'https://github.com/search?utf8=%E2%9C%93&q=starterkit+in%3Aname%2C+user%3Apattern-lab&type=Repositories&ref=searchresults' ) ;
51
+ return fetch ( 'https://api.github.com/search/repositories?q=starterkit+in:name+user:pattern-lab&sort=stars&order=desc' , {
52
+ method : 'GET' ,
53
+ headers : {
54
+ 'Accept' : 'application/json'
55
+ }
56
+ } ) . then ( function ( res ) {
57
+ var contentType = res . headers . get ( 'content-type' ) ;
58
+ if ( contentType && contentType . indexOf ( 'application/json' ) === - 1 ) {
59
+ throw new TypeError ( "StarterkitManager->listStarterkits: Not valid JSON" ) ;
60
+ }
61
+ return res . json ( )
62
+ } ) . then ( function ( json ) {
63
+ if ( ! json . items || ! Array . isArray ( json . items ) ) {
64
+ return false ;
65
+ }
66
+ return json . items
67
+ . map ( function ( repo ) {
68
+ return { name : repo . name , url : repo . html_url }
69
+ } ) ;
70
+ } ) . catch ( function ( err ) {
71
+ console . error ( err ) ;
72
+ return false ;
73
+ } ) ;
46
74
}
47
75
48
76
function packStarterkit ( ) {
@@ -63,7 +91,7 @@ var starterkit_manager = function (config) {
63
91
loadStarterKit ( starterkitName , clean ) ;
64
92
} ,
65
93
list_starterkits : function ( ) {
66
- listStarterkits ( ) ;
94
+ return listStarterkits ( ) ;
67
95
} ,
68
96
pack_starterkit : function ( ) {
69
97
packStarterkit ( ) ;
0 commit comments