1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /*!
- * parse-author <https://github.com/jonschlinkert/parse-author>
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
- 'use strict';
- var regex = require('author-regex');
- module.exports = function(str) {
- if (typeof str !== 'string') {
- throw new TypeError('expected author to be a string');
- }
- if (!str || !/\w/.test(str)) {
- return {};
- }
- var match = [].concat.apply([], regex().exec(str));
- var author = {};
- if (match[1]) {
- author.name = match[1];
- }
- for (var i = 2; i < match.length; i++) {
- var val = match[i];
- if (i % 2 === 0 && val && match[i + 1]) {
- if (val.charAt(0) === '<') {
- author.email = match[i + 1];
- i++;
- } else if (val.charAt(0) === '(') {
- author.url = match[i + 1];
- i++;
- }
- }
- }
- return author;
- };
|