canibekikked-api
Version:
API for canibekikked
107 lines (74 loc) • 2.89 kB
JavaScript
;
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);
}