UNPKG

canibekikked-api

Version:
107 lines (74 loc) 2.89 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = canibekikked; 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 Canibekikked extends _events2.default { constructor(user) { var _ref = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; let token = _ref.token; super(); this.token = token; this.user = user; } initState() { Object.assign(this, { failed: [], passed: 0, exceptions: 0 }); } _fireEnd() { this.emit('end', this.passed, this.failed, this.exceptions); } start() { var _this = this; return _asyncToGenerator(function* () { _this.initState(); const username = _this.user || (yield whoami()); const packages = yield authorPackages({ username }); 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 { const options = _this2.token ? { token: _this2.token } : undefined; // console.log('options', options) trademarks = yield (0, _isTrademarked2.default)(name, options); } catch (err) { _this2.emit('error', err); _this2.exceptions++; } if (trademarks) { _this2.failed.push({ name, trademarks }); } else { _this2.passed++; } _this2.emit('package-checked', { name, trademarks }); })(); } } function canibekikked(user, options) { return new Canibekikked(user, options); }