From 27933d8698f34c357ce77d647024710902f6443e Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Fri, 25 Mar 2016 12:37:56 +0100 Subject: [PATCH] Cleanup dependencies Removed unused dependencies. Also removed cli: we will use a separate project for interact with xray from the CLI. --- bin/x-ray | 200 ----------------------------------------------- lib/highlight.js | 118 ---------------------------- package.json | 29 +++---- 3 files changed, 13 insertions(+), 334 deletions(-) delete mode 100755 bin/x-ray delete mode 100644 lib/highlight.js diff --git a/bin/x-ray b/bin/x-ray deleted file mode 100755 index 41b8317..0000000 --- a/bin/x-ray +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/env node - -var Crawler = require('x-ray-crawler') -var Context = require('http-context') -var cheerio = require('cheerio') -var pj = require('prettyjson') -var isUrl = require('is-url') -var chalk = require('chalk') -var repl = require('repl') -var Xray = require('../') -var fs = require('fs') -var slice = [].slice -var actions = {} - -/** - * Locals - */ - -var highlight = require('../lib/highlight') -var isHTML = require('../lib/is-html') -var pretty = require('../lib/pretty') -var params = require('../lib/params') - -/** - * Default state - */ - -var xray = Xray() -var request = Crawler() -var ctx = Context() - -/** - * Help - */ - -var help = [ - '', - ' usage: ', - '', - ' load ', - ' paginate ', - ' select [scope] ', - ' html', - '' -].join('\n') - -/** - * Regexps - */ - -var rcmd = /^(help|load|paginate|select|\$)/i - -/** - * Start the repl - */ - -repl.start({ - prompt: 'xray > ', - input: process.stdin, - output: process.stdout, - ignoreUndefined: true, - eval: evaluate -}) - -/** - * Evaluate the input - */ - -function evaluate (cmd, ctx, filename, fn) { - cmd = cmd.replace(/[\(\n\)]/g, '') - if (!cmd) return fn(null, undefined) - var args = cmd.split(' ') - cmd = args.shift().toLowerCase() - if ('help' == cmd || !rcmd.test(cmd)) { - console.log(help) - return fn(null, undefined) - } - - actions[cmd].apply(null, args.concat(function (err, val) { - if (err) return fn(err) - else if (val) console.log(val) - fn(null, undefined) - })) -} - -/** - * Load - */ - -actions.load = function load (url, fn) { - if (arguments.length == 1) { - fn = url - return fn(null, help) - } - - if (isUrl(url)) { - success('loading: %s', url) - request(url, function (err, res) { - if (err) return fn(err) - ctx.status = res.status - ctx.body = res.body - success('loaded: %s', res.url) - console.log(pretty(res.url)) - fn(null) - }) - } else if (isHTML(url)) { - success('loading: ') - ctx.status = 200 - ctx.body = url - success('loaded: ') - console.log(pretty(url)) - fn(null) - } else { - success('loading: %s', url) - fs.readFile(url, 'utf8', function (err, str) { - if (err) return fn(err) - ctx.status = 200 - ctx.body = str - success('loaded: %s', url) - response(pretty(str)) - fn(null) - }) - } -} - -/** - * Select - */ - -actions.select = - actions.$ = function select (scope, selector, fn) { - if (arguments.length == 1) { - response(ctx.body) - fn(null) - return - } else if (arguments.length == 2) { - fn = selector - selector = coerce(scope) - scope = null - } else { - scope = coerce(scope) - selector = coerce(selector) - } - - var $ = cheerio.load(ctx.body) - $ = highlight($, scope, selector) - var html = $.html() - response(html) - fn(null) -} - -/** - * string(...) - */ - -function string (str) { - str = unstring(str) - return '"' + str + '"' -} - -/** - * unstring(str) - */ - -function unstring (str) { - return str.replace(/^['"]|['"]$/g, '') -} - -/** - * coerce - */ - -function coerce (str) { - return '[' == str[0] && ']' == str[str.length - 1] - ? [str.slice(1, -1)] - : str -} - -/** - * Success - */ - -function success (str) { - var args = slice.call(arguments).slice(1) - console.error.apply(console.error, [chalk.green(' ' + str)].concat(args)) -} - -function response (str) { - var args = slice.call(arguments).slice(1) - console.error.apply(console.error, [chalk.gray(' ' + str)].concat(args)) -} - -/** - * Error - */ - -function error (str) { - var args = slice.call(arguments).slice(1) - console.error.apply(console.error, [chalk.red(' ' + str)].concat(args)) -} diff --git a/lib/highlight.js b/lib/highlight.js deleted file mode 100644 index fdde4c4..0000000 --- a/lib/highlight.js +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Module Dependencies - */ - -var parse = require('x-ray-parse') -var chalk = require('chalk') -var isArray = Array.isArray - -/** - * Export `highlight` - */ - -module.exports = highlight - -/** - * Initialize `highlight` - * - * @param {Cheerio} $ - * @param {String} scope - * @param {String} selector - * @return {String} - * @api public - */ - -function highlight ($, scope, selector) { - var array = isArray(selector) - var obj = parse(array ? selector[0] : selector) - obj.attribute = obj.attribute || 'text' - - if (!obj.selector) { - obj.selector = scope - scope = null - } - - return find($, scope, array ? [obj.selector] : obj.selector, obj.attribute) -} - -/** - * Find the node(s) - * - * @param {Cheerio} $ - * @param {String} scope - * @param {String|Array} selector - * @param {String} attr - * @return {Array|String} - */ - -function find ($, scope, selector, attr) { - if (scope && isArray(selector)) { - var $scope = select($, scope) - $scope.map(function (i) { - var $el = $scope.eq(i) - var $children = select($el, selector[0]) - $children.map(function (i) { - attribute($children.eq(i), attr) - }) - }) - return $ - } else if (scope) { - $scope = select($, scope) - attribute($scope.find(selector).eq(0), attr) - return $ - } else { - var $selector - if (isArray(selector)) { - $selector = select($, selector[0]) - $selector.map(function (i) { - attribute($selector.eq(i), attr) - }) - return $ - } else { - $selector = select($, selector) - attribute($selector.eq(0), attr) - return $ - } - } -} - -/** - * Selector abstraction, deals - * with various instances of $ - * - * @param {Cheerio} $ - * @param {String} selector - * @return {Cheerio} - */ - -function select ($, selector) { - if ($.is && $.is(selector)) return $ - return $.find ? $.find(selector) : $(selector) -} - -/** - * Select the attribute based on `attr` - * - * @param {Cheerio} $ - * @param {String} attr - * @return {String} - */ - -function attribute ($el, attr) { - switch (attr) { - case 'html': - var html = $el.html() - html = chalk.red(html) - $el.html(html) - break - case 'text': - var text = $el.text() - text = chalk.red(text) - $el.text(text) - break - default: - var val = $el.attr(attr) - $el.attr(attr, chalk.red(val)) - break - } -} diff --git a/package.json b/package.json index 2452847..cf092eb 100644 --- a/package.json +++ b/package.json @@ -24,30 +24,27 @@ "web" ], "dependencies": { - "batch": "^0.5.2", - "chalk": "^1.0.0", - "debug": "^2.1.3", - "enstore": "^1.0.1", - "http-context": "^1.1.0", - "is-url": "^1.2.0", - "isobject": "^1.0.0", - "object-assign": "^2.0.0", - "prettyjson": "^1.1.0", - "x-ray-crawler": "^2.0.1", - "x-ray-parse": "^1.0.1", - "yargs": "^3.8.0" + "batch": "~0.5.2", + "chalk": "~1.0.0", + "debug": "~2.1.3", + "enstore": "~1.0.1", + "is-url": "~1.2.0", + "isobject": "~1.0.0", + "object-assign": "~2.0.0", + "x-ray-crawler": "~2.0.1", + "x-ray-parse": "~1.0.1" }, "devDependencies": { "cheerio": "~0.20.0", - "concat-stream": "^1.5.1", + "concat-stream": "~1.5.1", "coveralls": "~2.11.8", "istanbul": "~0.4.2", "mocha": "latest", "mocha-lcov-reporter": "~1.2.0", - "multiline": "^1.0.2", - "rimraf": "^2.3.2", + "multiline": "~1.0.2", + "rimraf": "~2.3.2", "standard": "~6.0.8", - "x-ray-phantom": "^1.0.0" + "x-ray-phantom": "~1.0.0" }, "engines": { "node": ">= 0.10"