UNPKG

canibekiked-api

Version:
105 lines (72 loc) 2.71 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _events = require('events'); var _events2 = _interopRequireDefault(_events); var _pify = require('pify'); var _pify2 = _interopRequireDefault(_pify); var _isTrademarked = require('is-trademarked'); var _isTrademarked2 = _interopRequireDefault(_isTrademarked); var _npmWhoami = require('npm-whoami'); var _npmWhoami2 = _interopRequireDefault(_npmWhoami); var _npmListAuthorPackages = require('npm-list-author-packages'); var _npmListAuthorPackages2 = _interopRequireDefault(_npmListAuthorPackages); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { return step("next", value); }, function (err) { return step("throw", err); }); } } return step("next"); }); }; } const whoami = (0, _pify2.default)(_npmWhoami2.default); const authorPackages = (0, _pify2.default)(_npmListAuthorPackages2.default); class Canibekiked extends _events2.default { initState() { Object.assign(this, { failed: [], passed: 0, exceptions: 0 }); } _fireEnd() { this.emit('end', this.passed, this.failed, this.exceptions); } start(packages) { var _this = this; return _asyncToGenerator(function* () { _this.initState(); yield Promise.all(packages.map(function (p) { return _this.checkPackage(p); })); _this._fireEnd(); })(); } checkPackage(name) { var _this2 = this; return _asyncToGenerator(function* () { _this2.emit('package-checking', { name }); let trademarks = null; try { trademarks = yield (0, _isTrademarked2.default)(name); } catch (err) { _this2.emit('error', err); _this2.exceptions++; } if (trademarks) { _this2.failed.push({ name, trademarks }); } else { _this2.passed++; } _this2.emit('package-checked', { name, trademarks }); })(); } } exports.default = (() => { var ref = _asyncToGenerator(function* (user) { const username = user || (yield whoami()); const packages = yield authorPackages({ username }); const results = new Canibekiked(); results.start(packages); return results; }); function canibekiked(_x) { return ref.apply(this, arguments); } return canibekiked; })();