UNPKG

cz-conventional-changelog-befe

Version:
175 lines (138 loc) 4.33 kB
'use strict'; var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); 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); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @file Interface * @author Cuttle Cong * @date 2018/10/24 * */ var parse = require('parse-github-url'); /** * @typedef {{}} InputData * @param namespace {string} * @param matching {string} */ /** * 适配器接口 * @class */ var AdaptorInterface = function () { (0, _createClass3.default)(AdaptorInterface, [{ key: 'flattenIncomeData', /** * 扁平化,规范化 数据 (来自 fetch 方法) * @param data {{}} * @param inputData {InputData} * @return {{title: string, issueURL?: string, issueId?: string, number?: string, searchText?: string} & *} */ value: function flattenIncomeData(data, inputData) { return (0, _extends3.default)({ title: '', issueURL: '', issueId: '', number: '', searchText: '' }, data); } /** * * @param config {object} - cz-conventional-changelog-befe config * @param pkg {object} - package.json * @param gitUrl {string} - git remote url */ }, { key: 'name', get: function get() { return this.constructor.displayName || this.constructor.name; } }]); function AdaptorInterface() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var pkg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var gitUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; (0, _classCallCheck3.default)(this, AdaptorInterface); if (typeof this.name !== 'string') { throw new TypeError('Adaptor requires `displayName` (string) static property, but ' + (0, _typeof3.default)(this.name)); } this.pkg = pkg; this.config = config; this.gitUrl = gitUrl; if (gitUrl) { gitUrl = gitUrl.trim(); this.gitUrlObj = parse(gitUrl); // git@gitlab.com:gitlab-org/release/tasks.git if (/^git@.+?:(.+)$/.test(gitUrl)) { this.gitUrlObj.path = this.gitUrlObj.pathname = RegExp.$1; } } else if (pkg.repository) { var repository = typeof pkg.repository === 'string' ? pkg.repository : pkg.repository.url; if (repository) { this.gitUrlObj = parse(repository); } } this.options = (0, _extends3.default)({ placeholder: '{#:number?link} {[:type:]?align=center} {(:state:)?align=center} {title?w=50%} {assignees}', suggestEnabled: true }, this.config && this.config[this.name.toLowerCase()] ? this.config[this.name.toLowerCase()] : this.config); this.data = (this.options || {}).data || {}; this.namespace = ''; this.matchRegexps = ['^#(?<matching>.+)$']; } /** * 判断 suggest adaptor 是否生效 * @public * @return {boolean} */ (0, _createClass3.default)(AdaptorInterface, [{ key: 'isEnabled', value: function isEnabled() { return this._isEnabled() && this.options.suggestEnabled; } /** * @return {boolean} * @protected */ }, { key: '_isEnabled', value: function _isEnabled() { return !!this.namespace; } /** * 获取 suggest 列表 * @param inputData {InputData} * @return {Array|Promise<Array>} */ }, { key: 'fetch', value: function fetch(_ref) { var namespace = _ref.namespace, matching = _ref.matching; return []; } /** * 转换 commit message * @param message {string} * @return {string} */ }, { key: 'transformCommitMessage', value: function transformCommitMessage(message) { return message; } }]); return AdaptorInterface; }(); /** * name * @type {string} */ AdaptorInterface.displayName = ''; module.exports = AdaptorInterface;