12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*!
- * 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;
- };
|