1'use strict' 2module.exports = hasModernMeta 3 4const npa = require('npm-package-arg') 5const moduleName = require('../utils/module-name.js') 6 7function isLink (child) { 8 return child.isLink || (child.parent && isLink(child.parent)) 9} 10 11function hasModernMeta (child) { 12 if (!child) return false 13 const resolved = child.package._resolved && npa.resolve(moduleName(child), child.package._resolved) 14 const version = npa.resolve(moduleName(child), child.package.version) 15 return child.isTop || 16 isLink(child) || 17 child.fromBundle || child.package._inBundle || 18 child.package._integrity || child.package._shasum || 19 (resolved && resolved.type === 'git') || (version && version.type === 'git') 20} 21