Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jakobmattsson/5021109 to your computer and use it in GitHub Desktop.
Save jakobmattsson/5021109 to your computer and use it in GitHub Desktop.
_ = require 'underscore'
semver = require 'semver'
readInstalled = require 'read-installed'
expectedPackages = (pkgJson) ->
pack = require(pkgJson)
devDeps = pack.devDependencies || {}
deps = pack.dependencies || {}
_.extend({}, devDeps, deps)
readInstalled '.', 1, (err, data) ->
expected = expectedPackages('./package.json')
current = _.object _.pairs(data.dependencies).map ([name, { version }]) -> [name, version]
needInstall(expected, current)
needInstall = (expected, current) ->
missing = _(expected).omit(Object.keys(current))
return true if missing.length > 0
outdated = _.pairs(expected).some ([name, version]) -> !semver.satisfies(current[name], version)
outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment