css-revealer
Advanced tools
Comparing version 1.0.4 to 1.0.6
18
index.js
'use strict'; | ||
var _ = require('lodash'); | ||
var R = require('ramda'); | ||
var glob = require('glob'); | ||
var async = require('async'); | ||
var readFile = require('./lib/util').readFile; | ||
var concat = require('./lib/util').concat; | ||
var propEq = require('./lib/util').propEq; | ||
var isFunction = require('./lib/util').isFunction; | ||
var parseStylesheet = require('./lib/parseStylesheet'); | ||
@@ -25,5 +23,5 @@ var formatResult = require('./lib/formatResult'); | ||
getStylesheetList: _.partial(async.concat, stylesheets, glob), | ||
getStylesheetList: R.curry(async.concat)(stylesheets, glob), | ||
getTemplateList: _.partial(async.concat, templates, glob), | ||
getTemplateList: R.curry(async.concat)(templates, glob), | ||
@@ -35,3 +33,3 @@ readStylesheets: ['getStylesheetList', function(callback, results){ | ||
concatStylesheets: ['readStylesheets', function(callback, results){ | ||
callback(null, results.readStylesheets.reduce(concat, '')); | ||
callback(null, results.readStylesheets.reduce(R.concat, '')); | ||
}], | ||
@@ -47,3 +45,3 @@ | ||
{ used: [], unused: [] }, | ||
_.partial(checkTemplate, results.parseStylesheets), | ||
R.curry(checkTemplate)(results.parseStylesheets), | ||
callback | ||
@@ -55,3 +53,3 @@ ); | ||
callback(null, results.parseStylesheets.reduce(function(memo, selector){ | ||
var matchingOccurrence = _.find(results.checkTemplates.used, propEq('selector', selector)); | ||
var matchingOccurrence = R.find(R.propEq('selector', selector))(results.checkTemplates.used); | ||
if (matchingOccurrence) { | ||
@@ -67,3 +65,3 @@ memo.used.push(matchingOccurrence); | ||
formatResult: ['sortResult', function(callback, results){ | ||
var formatter = _.isFunction(format) ? format : formatResult[format]; | ||
var formatter = isFunction(format) ? format : formatResult[format]; | ||
callback(null, formatter(results.sortResult)); | ||
@@ -70,0 +68,0 @@ }] |
'use strict'; | ||
var async = require('async'); | ||
var _ = require('lodash'); | ||
var propEq = require('./util').propEq; | ||
var R = require('ramda'); | ||
var readFile = require('./util').readFile; | ||
@@ -12,9 +10,9 @@ var isSelectorInString = require('./isSelectorInString'); | ||
var readTemplate = _.partial(readFile, templatePath); | ||
var readTemplate = R.partial(readFile, templatePath); | ||
var findOccurrences = function(templateString, callback){ | ||
var usedInTemplate = _.partial(isSelectorInString, _, templateString); | ||
var usedInTemplate = R.curry(isSelectorInString)(R.__, templateString); | ||
var occurrences = selectors.reduce(function(memo, selector){ | ||
var occurrences = R.reduce(function(memo, selector){ | ||
if (usedInTemplate(selector)) { | ||
@@ -27,3 +25,3 @@ memo.push({ | ||
return memo; | ||
}, []); | ||
}, [], selectors); | ||
@@ -36,10 +34,7 @@ callback(null, occurrences); | ||
var findIndexInOccurrences = _.partial(_.findIndex, occurrences); | ||
var spliceFromOccurrences = _.bind([].splice, occurrences, _, 1); | ||
result.used = result.used.map(function(used){ | ||
var indexInOccurrences = findIndexInOccurrences(propEq('selector', used.selector)); | ||
var indexInOccurrences = R.findIndex(R.propEq('selector', used.selector))(occurrences); | ||
if (indexInOccurrences !== -1) { | ||
used.occurrences = used.occurrences.concat(occurrences[indexInOccurrences].occurrences); | ||
spliceFromOccurrences(indexInOccurrences); | ||
occurrences = R.remove(indexInOccurrences, 1, occurrences); | ||
} | ||
@@ -46,0 +41,0 @@ return used; |
'use strict'; | ||
var _ = require('lodash'); | ||
var R = require('ramda'); | ||
exports.json = function(result){ | ||
return JSON.stringify(result, null, 2); | ||
}; | ||
exports.json = R.curry(JSON.stringify)(R.__, null, 2); | ||
@@ -15,15 +13,15 @@ exports.markdown = function(result){ | ||
markdown += _.reduce(result.used, function(memo, occurrence){ | ||
markdown += R.reduce(function(memo, occurrence){ | ||
memo += '\n#### `' + occurrence.selector + '`\n\n'; | ||
memo += _.reduce(occurrence.occurrences, function(memo, occurrence){ | ||
memo += R.reduce(function(memo, occurrence){ | ||
return memo + '* ' + occurrence + '\n'; | ||
}, ''); | ||
}, '', occurrence.occurrences); | ||
return memo; | ||
}, ''); | ||
}, '', result.used); | ||
markdown += '\n### Unused\n\n'; | ||
markdown += result.unused.reduce(function(memo, selector){ | ||
markdown += R.reduce(function(memo, selector){ | ||
return memo + '* `' + selector + '`\n'; | ||
}, ''); | ||
}, '', result.unused); | ||
@@ -30,0 +28,0 @@ return markdown; |
'use strict'; | ||
var _ = require('lodash'); | ||
var R = require('ramda'); | ||
var escape = require('escape-regexp'); | ||
@@ -8,16 +8,6 @@ | ||
var isId = function isId(selector) { | ||
return /^#/.test(selector); | ||
}; | ||
var isId = R.test(/^#/); | ||
var isClass = R.test(/^\./); | ||
var sanitise = R.compose(escape, R.replace(/^([#.])/, '')); | ||
var isClass = function isClass(selector) { | ||
return /^\./.test(selector); | ||
}; | ||
var clean = function clean(selector) { | ||
return selector.replace(/^(?:#|.)/, ''); | ||
}; | ||
var sanitise = _.compose(escape, clean); | ||
if (isId(selector)) { | ||
@@ -24,0 +14,0 @@ return new RegExp('id="[^"]*' + sanitise(selector)).test(string); |
'use strict'; | ||
var _ = require('lodash'); | ||
var R = require('ramda'); | ||
var css = require('css'); | ||
var prop = require('./util').prop; | ||
var propEq = require('./util').propEq; | ||
var match = require('./util').match; | ||
module.exports = function parse(stylesheet) { | ||
return _.chain(css.parse(stylesheet)) | ||
.at('stylesheet') | ||
.map(prop('rules')) | ||
.flatten() | ||
.filter(propEq('type', 'rule')) | ||
.map(prop('selectors')) | ||
.flatten() | ||
.map(match(/([.#][^.#: ]+)/g)) | ||
.flatten() | ||
.uniq() | ||
.value(); | ||
}; | ||
module.exports = R.compose( | ||
R.uniq, | ||
R.chain(R.match(/([.#][^.#: ]+)/g)), | ||
R.chain(R.prop('selectors')), | ||
R.filter(R.propEq('type', 'rule')), | ||
R.prop('rules'), | ||
R.prop('stylesheet'), | ||
R.curryN(1, css.parse) | ||
); |
'use strict'; | ||
var fs = require('fs'); | ||
var _ = require('lodash'); | ||
var R = require('ramda'); | ||
exports.readFile = _.curry(fs.readFile, _, { encoding: 'utf-8' }); | ||
exports.readFile = R.curry(fs.readFile)(R.__, { encoding: 'utf-8' }); | ||
exports.concat = _.curry(function(listA, listB){ | ||
return listA.concat(listB); | ||
}); | ||
exports.prop = _.curry(function(key, object){ | ||
return object[key]; | ||
}); | ||
exports.propEq = _.curry(function(key, value, object){ | ||
return object[key] === value; | ||
}); | ||
exports.replace = _.curry(function(pattern, substr, string){ | ||
return string.replace(pattern, substr); | ||
}); | ||
exports.match = _.curry(function(pattern, string){ | ||
return string.match(pattern); | ||
}); | ||
exports.isFunction = function(obj){ | ||
return Object.prototype.toString.call(obj) === '[object Function]'; | ||
}; |
{ | ||
"name": "css-revealer", | ||
"version": "1.0.4", | ||
"version": "1.0.6", | ||
"description": "Reveal CSS selector usage within HTML templates.", | ||
@@ -31,4 +31,4 @@ "bin": { | ||
"escape-regexp": "0.0.1", | ||
"lodash": "^3.10.0", | ||
"glob": "^5.0.13", | ||
"ramda": "^0.15.1", | ||
"yargs": "^3.14.0" | ||
@@ -35,0 +35,0 @@ }, |
'use strict'; | ||
var _ = require('lodash'); | ||
var R = require('ramda'); | ||
var path = require('path'); | ||
var fs = require('fs'); | ||
var readFile = _.partial(fs.readFileSync, _, { encoding: 'utf-8' }); | ||
var getLibPath = _.partial(path.join, __dirname, '../../lib'); | ||
var readFile = R.curry(fs.readFileSync)(R.__, { encoding: 'utf-8' }); | ||
var getLibPath = R.curryN(3, path.join)(__dirname, '../../lib'); | ||
global.getFixturePath = _.partial(path.join, __dirname, '../fixtures'); | ||
global.readFixture = _.compose(readFile, getFixturePath); | ||
global.requireFixture = _.compose(require, getFixturePath); | ||
global.requireLib = _.compose(require, getLibPath); | ||
global.getFixturePath = R.curryN(3, path.join)(__dirname, '../fixtures'); | ||
global.readFixture = R.compose(readFile, getFixturePath); | ||
global.requireFixture = R.compose(require, getFixturePath); | ||
global.requireLib = R.compose(require, getLibPath); |
'use strict'; | ||
var test = require('tape'); | ||
var _ = require('lodash'); | ||
var R = require('ramda'); | ||
var cssRevealer = require('../..'); | ||
var formatResult = requireLib('formatResult'); | ||
var replace = requireLib('util').replace; | ||
@@ -66,3 +65,3 @@ test('should handle arrays of glob patterns', function(t){ | ||
var customFormatter = _.compose(replace(/test\/fixtures\//g, ''), formatResult.markdown); | ||
var customFormatter = R.compose(R.replace(/test\/fixtures\//g, ''), formatResult.markdown); | ||
var expected = readFixture('customFormat.md'); | ||
@@ -69,0 +68,0 @@ |
Sorry, the diff of this file is not supported yet
21023
528
+ Addedramda@^0.15.1
+ Addedramda@0.15.1(transitive)
- Removedlodash@^3.10.0
- Removedlodash@3.10.1(transitive)