Builds graph of pub package dependencies from pub.dev. A graph is an instance of
ngraph.graph.
This library is not bound to any particular http client. It requires http client to be injected into constructor:
vargraph=require('ngraph.graph')();vargraphBuilder=require('pubgraphbuilder')(httpClient);graphBuilder.createPubDependenciesGraph(pkgName,graph).then(function(graph){console.log('Done.');console.log('Nodes count: ',graph.getNodesCount());console.log('Edges count: ',graph.getLinksCount());}).fail(function(err){console.error('Failed to build graph: ',err);});Here httpClient is a function (url, data) {}, which returns a promise.
A demo of httpClient, implemented in angular.js:
functionhttpClient(url,data){// since we will be using from a web browser, make sure jsonp is enabled:data.callback='JSON_CALLBACK';return$http.jsonp(url,{params: data});}A demo of httpClient implemented in node.js:
varq=require('q');// npm install qvarhttp=require('http');// stadard httpvarquerystring=require('querystring');// standard query stringfunctionhttpClient(url,data){vardefer=q.defer();http.get(url+'?'+querystring.stringify(data),function(res){varbody='';res.setEncoding('utf8');res.on('data',function(chunk){body+=chunk;}).on('end',function(){defer.resolve({data: JSON.parse(body)});});});returndefer.promise;}To see working demo please refer to demo folder.
With npm do:
npm install pubgraphbuilder
MIT
