UNPKG

npm-package-resolver

Version:

An API for Resolving NPM package dependencies

104 lines (69 loc) 2.98 kB
/** * Created by Liam Bilich on 07/03/2016. */ // SETUP and EXPRESS BIOLERPLATE // ============================================================================= var express = require('express'); // call express var app = express(); // define our app using express var bodyParser = require('body-parser'); var PackageResolver = require('./libs/package-resolver.js'); var logger = require('./libs/logger.js')('api'); var log = logger.log; var err = logger.err; var warn = logger.warn; // load app config var _config = require('./libs/config.js'); // get the version var _version = require('./package.json').version; // good for printing timestamp in readable format var moment = require('moment'); var _ = require('underscore'); moment().format(); // current config file according to production or dev env var config = process.env['NODE_ENV']=="production"?_config.production:_config.development; var port = config.api.port; // set our port // ROUTES FOR OUR API // ============================================================================= var router = express.Router(); // get an instance of the express Router router.get('/resolve_deps', function(req, res) { // get package deps res.json({ message: 'howdy! yo seeker of deps.... welcome to our dependency resolver api!!! syntax is: api/resolve_deps/package_name ' }); }); /*** * EXPRESS ROUTING FOR API */ router.route('/help') // create a bear (accessed at POST http://localhost:8080/api/bears) .get(function(req, res) { log('reg.params:',req.params); res.json({ message: 'please provide package name: api/resolve_deps/pacakge_name' }); }); router.route('/resolve_deps/:package_name') // get the bear with that id (accessed at GET http://localhost:8080/api/bears/:bear_id) .get(function(req, res) { var package_name = req.params.package_name; var resolver = PackageResolver.create(); // response out and end for testing. //res.json({'packagename':package_name}); log('package_name:',package_name); // try loading the pacakge from redis we shall move it later on to a different module. if (package_name) { // sanitation and syntax check goes here resolver.getDeps(package_name,function(error,deps){ if (error){ res.send({'status:':error}); } else { res.send(deps); } }) } }); // REGISTER OUR ROUTES ------------------------------- // all of our routes will be prefixed with "/" app.use('/api', router); // configure app to use bodyParser() // this will let us get the data from a POST app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // START THE SERVER // ============================================================================= app.listen(port); log('bind server on port ' + port);