list.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. var mout = require('mout');
  2. var PackageRepository = require('../../core/PackageRepository');
  3. var cli = require('../../util/cli');
  4. var defaultConfig = require('../../config');
  5. function list(logger, packages, options, config) {
  6. var repository;
  7. config = defaultConfig(config);
  8. repository = new PackageRepository(config, logger);
  9. // If packages is an empty array, null them
  10. if (packages && !packages.length) {
  11. packages = null;
  12. }
  13. return repository.list()
  14. .then(function (entries) {
  15. if (packages) {
  16. // Filter entries according to the specified packages
  17. entries = entries.filter(function (entry) {
  18. return !!mout.array.find(packages, function (pkg) {
  19. return pkg === entry.pkgMeta.name;
  20. });
  21. });
  22. }
  23. return entries;
  24. });
  25. }
  26. // -------------------
  27. list.line = function (logger, argv) {
  28. var options = cli.readOptions(argv);
  29. var packages = options.argv.remain.slice(2);
  30. return list(logger, packages, options);
  31. };
  32. list.completion = function () {
  33. // TODO:
  34. };
  35. module.exports = list;