canibekiked-api
Version:
API for canibekiked
105 lines (72 loc) • 2.71 kB
JavaScript
;
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;
})();