UNPKG

cz-conventional-changelog-befe

Version:
187 lines (143 loc) 6.04 kB
'use strict'; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @file icafe * @author Cuttle Cong * @date 2018/10/24 * */ var _require = require('icafe-api'), create = _require.create; var _require2 = require('normalize-icafe-pkg'), normalizeIcafeByPkg = _require2.normalizeIcafeByPkg; var debug = require('../debug'); var memoize = require('../memoize'); var AdaptorInterface = require('./AdaptorInterface'); var _require3 = require('../utils'), simplifyData = _require3.simplifyData, issuesFormat = _require3.issuesFormat; var _create = create(), Card = _create.Card; debug('icafe-api: Card.constructor.defaultData %O', Card.constructor.defaultData); function htmlDecode(str) { // 一般可以先转换为标准 unicode 格式(有需要就添加:当返回的数据呈现太多\\\u 之类的时) str = str.replace(/\\u/g, '%u').replace(/&amp;?/g, '&').replace(/&lt;?/g, '<').replace(/&gt;?/g, '>').replace(/&quot;?/g, '"').replace(/&apos;?/g, "'"); // 再对实体符进行转义 // 有 x 则表示是16进制,$1 就是匹配是否有 x,$2 就是匹配出的第二个括号捕获到的内容,将 $2 以对 str = str.replace(/&#(x)?(\w+);/g, function ($, $1, $2) { return String.fromCharCode(parseInt($2, $1 ? 16 : 10)); }); return str; } var Icafe = function (_AdaptorInterface) { (0, _inherits3.default)(Icafe, _AdaptorInterface); function Icafe(config, pkg) { (0, _classCallCheck3.default)(this, Icafe); var _this = (0, _possibleConstructorReturn3.default)(this, (Icafe.__proto__ || Object.getPrototypeOf(Icafe)).apply(this, arguments)); _this.memoized = memoize(Card.fetch.bind(Card)); _this.pkg.icafe = normalizeIcafeByPkg(pkg); _this.data = _this.normalizeConfigData((0, _extends3.default)({ spaceId: Card.constructor.defaultData.spaceId, username: Card.constructor.defaultData.username, password: Card.constructor.defaultData.password, iql: '负责人 in (currentUser)', page: 1, order: 'createTime', isDesc: false }, _this.pkg.icafe, _this.data)); _this.namespace = _this.data.spaceId; _this.matchRegexps = _this.matchRegexps.concat(['^(?<namespace>[a-zA-Z][\\w-]+)-(?<matching>.*)$']); return _this; } (0, _createClass3.default)(Icafe, [{ key: 'normalizeConfigData', value: function normalizeConfigData(data) { return data; } }, { key: 'flattenIncomeData', value: function flattenIncomeData(data) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$namespace = _ref.namespace, namespace = _ref$namespace === undefined ? this.namespace : _ref$namespace; data = simplifyData(data, { flattenKeys: [{ name: 'responsiblePeople', valueKey: 'name' }], rollbackKeys: [{ name: 'properties', valueKey: 'displayValue' }], defaultKeyName: 'name' }); return (0, _extends3.default)({}, data, { issueURL: namespace && 'http://newicafe.baidu.com/issue/' + namespace + '-' + data.sequence + '/show', assignees: data.responsiblePeople, state: data.status, issueId: namespace ? namespace + '-' + data.sequence : null, number: data.sequence, title: htmlDecode(data.title) }); } }, { key: '_isEnabled', value: function _isEnabled() { return this.data.username && this.data.password && this.namespace; } }, { key: 'fetch', value: function () { var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(_ref2) { var namespace = _ref2.namespace, matching = _ref2.matching; var body, data; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: body = void 0; _context.next = 3; return this.memoized.fn((0, _extends3.default)({}, this.data, { spaceId: namespace })); case 3: data = _context.sent; body = data && data.body; if (!(!body || !body.cards || body.code !== 200)) { _context.next = 7; break; } return _context.abrupt('return', []); case 7: return _context.abrupt('return', body.cards); case 8: case 'end': return _context.stop(); } } }, _callee, this); })); function fetch(_x2) { return _ref3.apply(this, arguments); } return fetch; }() }, { key: 'transformCommitMessage', value: function transformCommitMessage(message) { return this.namespace ? issuesFormat(this.namespace, message) : message; } }]); return Icafe; }(AdaptorInterface); Icafe.displayName = 'Icafe'; module.exports = Icafe;