1 | 'use strict';
|
2 |
|
3 | var check = require('check-more-types');
|
4 |
|
5 | function isScopedName(str) {
|
6 | return str[0] === '@' && str.indexOf('/') !== -1;
|
7 | }
|
8 |
|
9 | function parseScopedName(str) {
|
10 | var parsed = moduleName(str.substr(1));
|
11 | parsed.name = '@' + parsed.name;
|
12 | return parsed;
|
13 | }
|
14 |
|
15 | function moduleName(str) {
|
16 | check.verify.string(str, 'expected string module name');
|
17 |
|
18 | if (isScopedName(str)) {
|
19 | return parseScopedName(str);
|
20 | }
|
21 |
|
22 | var parts = str.split('@');
|
23 | return {
|
24 | name: parts[0],
|
25 | version: parts[1]
|
26 | };
|
27 | }
|
28 |
|
29 | module.exports = moduleName;
|