1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1× 263× 263× 263× 263× 263× 63× 263× 263× 254× 263× | 'use strict'; module.exports = function (str) { var regex = /^(([a-zA-Z][_\-0-9a-zA-Z]*)\/)?([a-zA-Z][_\-0-9a-zA-Z]*)(@(\d+\.\d+\.\d+))?$/i; var parsed = {}; var match = regex.exec(str); Iif (!match) { throw new Error('Component cannot be parsed'); } if (match[2]) { parsed.owner = match[2]; } parsed.name = match[3] || ''; if (match[5]) { parsed.version = match[5]; } return parsed; }; |