UNPKG

744 BJavaScriptView Raw
1var path = require('path')
2var fs = require('fs')
3
4module.exports = versions
5
6function versions(child) {
7 if (!child.children) return
8 if (child.path) return child.children.forEach(versions)
9 if (!child.children.length) return
10
11 var first = null
12 for (var i = 0; i < child.children.length; i++) {
13 if (first = child.children[i].path) break
14 }
15
16 if (!first) return child.children.forEach(versions)
17
18 child.path = path.resolve(first, '..')
19
20 var pkgFile = path.resolve(child.path, 'package.json')
21
22 if (!fs.existsSync(pkgFile)) return
23
24 try {
25 var version = JSON.parse(
26 fs.readFileSync(pkgFile, 'utf8')
27 ).version
28 } catch(e) { return }
29
30 child.name += '@'
31 child.name += version
32 child.children.forEach(versions)
33}