Skip to content

Instantly share code, notes, and snippets.

@beatak
Last active March 23, 2016 08:01
Show Gist options
  • Save beatak/2aef33912eebfcc50c73 to your computer and use it in GitHub Desktop.
Save beatak/2aef33912eebfcc50c73 to your computer and use it in GitHub Desktop.
Usage: `cd to-your-package.json-directory && node all-deps.js`
#!/usr/bin/env node
var exec = require('child_process').exec;
var deleted_modules = ["abril-fatface", "ada", "after-time", "alert", "andthen", "anglicize", "ansi-codes", "atbash", "attr", "attrs", "available-slug", "background-image", "ballet", "binding", "bind-key", "blending-modes", "boxcars", "brick", "brick-browser", "brick-browserify-plugin", "brick-node", "browserify-length", "bud", "bud-babelify", "bud-browserify", "bud-concat", "bud-indexhtml", "bud-live-server", "call-all", "categorize-files", "center-box", "centered", "centered-cover-background", "change-object", "change-object-path", "checkfor", "circle", "cli-form", "cli-qa", "combiner", "comma-list", "comp", "concat", "config-doc", "core-modules", "cover-background", "create-temp-dir", "debounce-fn", "declarative-js", "default-debug", "delegate-dom", "dom-children", "dom-classes", "dom-event", "domflow", "domquery", "dom-select", "dom-style", "dom-tree", "dom-value", "door", "duba", "eksi-server", "eksi-sozluk", "english-time", "environ", "every-time", "expand-home-dir", "failing-code", "failing-line", "filename-id", "filter-stack", "findall", "first-val", "flat-glob", "flatten-array", "flickr-client", "flickr-favorites", "flickr-following", "flickr-generate-urls", "flickr-photo-brick", "flickr-photo-info", "flickr-photo-urls", "flickr-recent", "flickr-user", "flickr-user-feed", "fog", "format-date", "format-text", "fox", "functools", "genpkg", "get-json", "get-object-path", "gezi", "gezi-core", "go", "go-api-starter", "goodeggs-list", "goodeggs-login", "hide", "highkick", "htmlglue", "html-patcher", "iframe", "ignore-doc", "img", "indev", "indexhtml", "indexhtml-cli", "infinite-scroll", "install-module", "is-node", "iter", "join-params", "jsify", "json-resources", "just-a-browserify-server", "just-a-server", "just-next-tick", "juxt", "key-event", "keyname-of", "keynames", "kik", "kik-starter", "kurdish-time", "left-pad", "less-common-words", "level-client", "level-flush", "level-json", "level-json-cache", "level-json-wrapper", "limited-parallel-loop", "local-debug", "lowkick", "make-editable", "map", "matches-dom-selector", "measure-time", "media", "medium-author", "medium-post", "memdiff", "memoize-async", "memoize-sync", "memoize-with-leveldb", "meta-tags", "methodify", "midibin-api", "midi-instrument", "midi-sdk", "mime-of", "mix-objects", "most-common-turkish-words", "most-common-words", "mp3s", "new-chain", "new-command", "new-element", "new-empty-array", "new-error", "new-format", "new-list", "new-object", "new-partial", "new-prop", "new-pubsub", "new-range", "new-reactive", "new-struct", "next-time", "observer", "one", "on-key-press", "on-off", "ourtunes", "outer-html", "package-path", "parallel-loop", "parallelly", "parse-path", "pause-function", "personal-api", "play-audio", "playfair-display", "play-url", "post-data", "pref", "prettify-error", "prompt-input", "propertify", "property", "prova", "provinces", "pt-mono", "pt-serif", "pubsub", "radio-paradise-api", "random-color", "rdio-js-api", "read-cli-input", "read-json", "redux-starter", "refine-object", "relative-date", "remotely", "render-loop", "require-sdk", "right-pad", "rimraf-glob", "rm-rf", "rname", "rnd", "route-map", "run-after", "run-paralelly", "run-serially", "sanitize-object", "scrape-eksi", "scrape-pages", "scrape-url", "scraping-eksi", "scroll-bottom", "select-dom", "serial-loop", "serially", "set-content-type", "set-object-path", "setup-docker", "shell-jobs", "show-help", "show-version", "shuffle-array", "simple.io", "simulate-touch", "slug-to-title", "socks-browser", "soundcloud-stream", "stream-format", "strip", "styled", "style-dom", "style-format", "subscribe", "subscription", "title-from-url", "toba-batak-dictionary", "to-class-name", "toledo-chess", "to-slug", "to-title", "try-call", "turkish-alphabet", "turkish-synonyms-api", "turkish-time", "unique-now", "uniques", "userbook", "uzo", "validate-value", "variable-name", "video-canvas", "video-dimensions", "virtualbox", "virtual-glue", "virtual-html", "watch-array", "web-assets", "with-env", "wysiwyg", "youtube-video"];
exec(
'npm ls',
{
cwd: process.cwd()
},
function (err, stdout, stderr) {
var result = true;
var obj = {};
stdout.trim().split('\n').forEach(function (line, i) {
var matches = /([a-zA-Z]\S+?)\@/.exec(line);
if (null === matches) {
return;
}
obj[matches[1]] = true;
});
Object.keys(obj).forEach(function (module, i) {
if (deleted_modules.indexOf(module) > -1) {
console.log(module + ' is deleted, check dependency tree');
result = false;
}
});
if (result) {
console.log('This repository is safe');
}
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment