From eb7474f5d4b4bf32eb9aadec07ae14c1d5dca164 Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Fri, 20 Jan 2017 10:42:05 +0100 Subject: [PATCH] Moves API options setup to `options` folder-space. Why: * So it lives alongside optimization level and formatting setup. --- README.md | 2 +- lib/clean.js | 58 +++++-------------- lib/optimizer/level-1/optimize.js | 2 +- lib/{utils => options}/compatibility.js | 4 +- lib/options/inline-request.js | 22 +++++++ lib/options/inline-timeout.js | 7 +++ lib/options/inline.js | 11 ++++ lib/options/optimization-level.js | 3 +- lib/options/rebase-to.js | 7 +++ lib/options/rebase.js | 5 ++ lib/{utils => options}/rounding-precision.js | 2 +- test/optimizer/level-2/break-up-test.js | 4 +- .../properties/find-component-in-test.js | 8 +-- .../properties/is-component-of-test.js | 10 ++-- .../properties/longhand-overriding-test.js | 4 +- .../properties/merge-into-shorthands-test.js | 4 +- .../level-2/properties/optimize-test.js | 4 +- .../properties/override-properties-test.js | 4 +- .../overrides-non-component-shorthand-test.js | 8 +-- .../properties/populate-components-test.js | 10 ++-- .../level-2/properties/understandable-test.js | 14 ++--- test/optimizer/level-2/restore-test.js | 4 +- .../optimizer/restore-from-optimizing-test.js | 10 ++-- test/{utils => options}/compatibility-test.js | 28 ++++----- test/options/optimization-level-test.js | 2 +- .../rounding-precision-test.js | 2 +- 26 files changed, 133 insertions(+), 106 deletions(-) rename lib/{utils => options}/compatibility.js (98%) create mode 100644 lib/options/inline-request.js create mode 100644 lib/options/inline-timeout.js create mode 100644 lib/options/inline.js create mode 100644 lib/options/rebase-to.js create mode 100644 lib/options/rebase.js rename lib/{utils => options}/rounding-precision.js (97%) rename test/{utils => options}/compatibility-test.js (93%) rename test/{utils => options}/rounding-precision-test.js (98%) diff --git a/README.md b/README.md index c8e95f5d..54689864 100644 --- a/README.md +++ b/README.md @@ -543,7 +543,7 @@ In both modes the following values are allowed: * `''` or `'*'` (default) - Internet Explorer 9+ compatibility mode Since clean-css 3 a fine grained control is available over -[those settings](https://github.com/jakubpawlowicz/clean-css/blob/master/lib/utils/compatibility.js), +[those settings](https://github.com/jakubpawlowicz/clean-css/blob/master/lib/options/compatibility.js), with the following options available: * `'[+-]colors.opacity'` - - turn on (+) / off (-) `rgba()` / `hsla()` declarations removal diff --git a/lib/clean.js b/lib/clean.js index bccb1ea1..1435b614 100644 --- a/lib/clean.js +++ b/lib/clean.js @@ -5,71 +5,45 @@ * Copyright (C) 2016 JakubPawlowicz.com */ -var path = require('path'); -var url = require('url'); - -var formatFrom = require('./options/format').formatFrom; -var OptimizationLevel = require('./options/optimization-level').OptimizationLevel; -var optimizationLevelFrom = require('./options/optimization-level').optimizationLevelFrom; - var level0Optimize = require('./optimizer/level-0/optimize'); var level1Optimize = require('./optimizer/level-1/optimize'); var level2Optimize = require('./optimizer/level-2/optimize'); var validator = require('./optimizer/validator'); +var compatibilityFrom = require('./options/compatibility'); +var formatFrom = require('./options/format').formatFrom; +var inlineFrom = require('./options/inline'); +var inlineRequestFrom = require('./options/inline-request'); +var inlineTimeoutFrom = require('./options/inline-timeout'); +var OptimizationLevel = require('./options/optimization-level').OptimizationLevel; +var optimizationLevelFrom = require('./options/optimization-level').optimizationLevelFrom; +var rebaseFrom = require('./options/rebase'); +var rebaseToFrom = require('./options/rebase-to'); + var inputSourceMapTracker = require('./reader/input-source-map-tracker'); var readSources = require('./reader/read-sources'); -var compatibility = require('./utils/compatibility'); -var override = require('./utils/override'); var serializeStyles = require('./writer/simple'); var serializeStylesAndSourceMap = require('./writer/source-maps'); -var DEFAULT_TIMEOUT = 5000; - var CleanCSS = module.exports = function CleanCSS(options) { options = options || {}; this.options = { - compatibility: compatibility(options.compatibility), + compatibility: compatibilityFrom(options.compatibility), format: formatFrom(options.format), - inline: inlineOptionsFrom(options.inline), - inlineRequest: options.inlineRequest || {}, - inlineTimeout: options.inlineTimeout || DEFAULT_TIMEOUT, + inline: inlineFrom(options.inline), + inlineRequest: inlineRequestFrom(options.inlineRequest), + inlineTimeout: inlineTimeoutFrom(options.inlineTimeout), level: optimizationLevelFrom(options.level), - rebase: undefined === options.rebase ? true : !!options.rebase, - rebaseTo: ('rebaseTo' in options) ? path.resolve(options.rebaseTo) : process.cwd(), + rebase: rebaseFrom(options.rebase), + rebaseTo: rebaseToFrom(options.rebaseTo), returnPromise: !!options.returnPromise, sourceMap: !!options.sourceMap, sourceMapInlineSources: !!options.sourceMapInlineSources }; - - this.options.inlineRequest = override( - /* jshint camelcase: false */ - proxyOptionsFrom(process.env.HTTP_PROXY || process.env.http_proxy), - this.options.inlineRequest - ); }; -function inlineOptionsFrom(rules) { - if (Array.isArray(rules)) { - return rules; - } - - return undefined === rules ? - ['local'] : - rules.split(','); -} - -function proxyOptionsFrom(httpProxy) { - return httpProxy ? - { - hostname: url.parse(httpProxy).hostname, - port: parseInt(url.parse(httpProxy).port) - } : - {}; -} - CleanCSS.prototype.minify = function (input, maybeSourceMap, maybeCallback) { var options = this.options; diff --git a/lib/optimizer/level-1/optimize.js b/lib/optimizer/level-1/optimize.js index 2970a8a6..eef5bcfa 100644 --- a/lib/optimizer/level-1/optimize.js +++ b/lib/optimizer/level-1/optimize.js @@ -24,7 +24,7 @@ var IgnoreProperty = 'ignore-property'; var CHARSET_TOKEN = '@charset'; var CHARSET_REGEXP = new RegExp('^' + CHARSET_TOKEN, 'i'); -var DEFAULT_ROUNDING_PRECISION = require('../../utils/rounding-precision').DEFAULT; +var DEFAULT_ROUNDING_PRECISION = require('../../options/rounding-precision').DEFAULT; var FONT_NUMERAL_WEIGHTS = ['100', '200', '300', '400', '500', '600', '700', '800', '900']; var FONT_NAME_WEIGHTS = ['normal', 'bold', 'bolder', 'lighter']; diff --git a/lib/utils/compatibility.js b/lib/options/compatibility.js similarity index 98% rename from lib/utils/compatibility.js rename to lib/options/compatibility.js index 0583657b..ca881c62 100644 --- a/lib/utils/compatibility.js +++ b/lib/options/compatibility.js @@ -133,7 +133,7 @@ DEFAULTS.ie7 = merge(DEFAULTS.ie8, { }, }); -function compatibility(source) { +function compatibilityFrom(source) { return merge(DEFAULTS['*'], calculateSource(source)); } @@ -178,4 +178,4 @@ function calculateSource(source) { return merge(template, source); } -module.exports = compatibility; +module.exports = compatibilityFrom; diff --git a/lib/options/inline-request.js b/lib/options/inline-request.js new file mode 100644 index 00000000..1e14c639 --- /dev/null +++ b/lib/options/inline-request.js @@ -0,0 +1,22 @@ +var url = require('url'); + +var override = require('../utils/override'); + +function inlineRequestFrom(option) { + return override( + /* jshint camelcase: false */ + proxyOptionsFrom(process.env.HTTP_PROXY || process.env.http_proxy), + option || {} + ); +} + +function proxyOptionsFrom(httpProxy) { + return httpProxy ? + { + hostname: url.parse(httpProxy).hostname, + port: parseInt(url.parse(httpProxy).port) + } : + {}; +} + +module.exports = inlineRequestFrom; diff --git a/lib/options/inline-timeout.js b/lib/options/inline-timeout.js new file mode 100644 index 00000000..c7fb454d --- /dev/null +++ b/lib/options/inline-timeout.js @@ -0,0 +1,7 @@ +var DEFAULT_TIMEOUT = 5000; + +function inlineTimeoutFrom(option) { + return option || DEFAULT_TIMEOUT; +} + +module.exports = inlineTimeoutFrom; diff --git a/lib/options/inline.js b/lib/options/inline.js new file mode 100644 index 00000000..4a699707 --- /dev/null +++ b/lib/options/inline.js @@ -0,0 +1,11 @@ +function inlineOptionsFrom(rules) { + if (Array.isArray(rules)) { + return rules; + } + + return undefined === rules ? + ['local'] : + rules.split(','); +} + +module.exports = inlineOptionsFrom; diff --git a/lib/options/optimization-level.js b/lib/options/optimization-level.js index 70d45c8a..d9828287 100644 --- a/lib/options/optimization-level.js +++ b/lib/options/optimization-level.js @@ -1,5 +1,6 @@ +var roundingPrecisionFrom = require('./rounding-precision').roundingPrecisionFrom; + var override = require('../utils/override'); -var roundingPrecisionFrom = require('../utils/rounding-precision').roundingPrecisionFrom; var OptimizationLevel = { Zero: '0', diff --git a/lib/options/rebase-to.js b/lib/options/rebase-to.js new file mode 100644 index 00000000..134b4a38 --- /dev/null +++ b/lib/options/rebase-to.js @@ -0,0 +1,7 @@ +var path = require('path'); + +function rebaseToFrom(option) { + return option ? path.resolve(option) : process.cwd(); +} + +module.exports = rebaseToFrom; diff --git a/lib/options/rebase.js b/lib/options/rebase.js new file mode 100644 index 00000000..999c83f5 --- /dev/null +++ b/lib/options/rebase.js @@ -0,0 +1,5 @@ +function rebaseFrom(rebaseOption) { + return undefined === rebaseOption ? true : !!rebaseOption; +} + +module.exports = rebaseFrom; diff --git a/lib/utils/rounding-precision.js b/lib/options/rounding-precision.js similarity index 97% rename from lib/utils/rounding-precision.js rename to lib/options/rounding-precision.js index 6ed970c1..42ecf1b4 100644 --- a/lib/utils/rounding-precision.js +++ b/lib/options/rounding-precision.js @@ -1,4 +1,4 @@ -var override = require('./override'); +var override = require('../utils/override'); var INTEGER_PATTERN = /^\d+$/; diff --git a/test/optimizer/level-2/break-up-test.js b/test/optimizer/level-2/break-up-test.js index 92dcbf69..3f00a69a 100644 --- a/test/optimizer/level-2/break-up-test.js +++ b/test/optimizer/level-2/break-up-test.js @@ -4,13 +4,13 @@ var vows = require('vows'); var wrapForOptimizing = require('../../../lib/optimizer/wrap-for-optimizing').all; var populateComponents = require('../../../lib/optimizer/level-2/properties/populate-components'); var validator = require('../../../lib/optimizer/validator'); -var compatibility = require('../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../lib/options/compatibility'); var breakUp = require('../../../lib/optimizer/level-2/break-up'); function _breakUp(properties) { var wrapped = wrapForOptimizing(properties); - populateComponents(wrapped, validator(compatibility()), []); + populateComponents(wrapped, validator(compatibilityFrom()), []); return wrapped[0].components; } diff --git a/test/optimizer/level-2/properties/find-component-in-test.js b/test/optimizer/level-2/properties/find-component-in-test.js index c35a7f09..cbcd3b3f 100644 --- a/test/optimizer/level-2/properties/find-component-in-test.js +++ b/test/optimizer/level-2/properties/find-component-in-test.js @@ -2,7 +2,7 @@ var assert = require('assert'); var vows = require('vows'); var wrapForOptimizing = require('../../../../lib/optimizer/wrap-for-optimizing').all; -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var populateComponents = require('../../../../lib/optimizer/level-2/properties/populate-components'); var validator = require('../../../../lib/optimizer/validator'); @@ -27,7 +27,7 @@ vows.describe(findComponentIn) ] ])[0]; - populateComponents([shorthand], validator(compatibility({})), []); + populateComponents([shorthand], validator(compatibilityFrom({})), []); return [shorthand, longhand]; }, @@ -52,7 +52,7 @@ vows.describe(findComponentIn) ] ])[0]; - populateComponents([shorthand], validator(compatibility({})), []); + populateComponents([shorthand], validator(compatibilityFrom({})), []); return [shorthand, longhand]; }, @@ -80,7 +80,7 @@ vows.describe(findComponentIn) ] ])[0]; - populateComponents([shorthand], validator(compatibility({})), []); + populateComponents([shorthand], validator(compatibilityFrom({})), []); return [shorthand, longhand]; }, diff --git a/test/optimizer/level-2/properties/is-component-of-test.js b/test/optimizer/level-2/properties/is-component-of-test.js index c5bfb5b8..32f59f81 100644 --- a/test/optimizer/level-2/properties/is-component-of-test.js +++ b/test/optimizer/level-2/properties/is-component-of-test.js @@ -2,7 +2,7 @@ var assert = require('assert'); var vows = require('vows'); var wrapForOptimizing = require('../../../../lib/optimizer/wrap-for-optimizing').all; -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var populateComponents = require('../../../../lib/optimizer/level-2/properties/populate-components'); var validator = require('../../../../lib/optimizer/validator'); @@ -27,7 +27,7 @@ vows.describe(isComponentOf) ] ])[0]; - populateComponents([shorthand], validator(compatibility({})), []); + populateComponents([shorthand], validator(compatibilityFrom({})), []); return [shorthand, longhand]; }, @@ -55,7 +55,7 @@ vows.describe(isComponentOf) ] ])[0]; - populateComponents([shorthand], validator(compatibility({})), []); + populateComponents([shorthand], validator(compatibilityFrom({})), []); return [shorthand, longhand]; }, @@ -85,7 +85,7 @@ vows.describe(isComponentOf) ] ])[0]; - populateComponents([shorthand], validator(compatibility({})), []); + populateComponents([shorthand], validator(compatibilityFrom({})), []); return [shorthand, longhand]; }, @@ -115,7 +115,7 @@ vows.describe(isComponentOf) ] ])[0]; - populateComponents([shorthand], validator(compatibility({})), []); + populateComponents([shorthand], validator(compatibilityFrom({})), []); return [shorthand, longhand, true]; }, diff --git a/test/optimizer/level-2/properties/longhand-overriding-test.js b/test/optimizer/level-2/properties/longhand-overriding-test.js index 65714210..2fff17f7 100644 --- a/test/optimizer/level-2/properties/longhand-overriding-test.js +++ b/test/optimizer/level-2/properties/longhand-overriding-test.js @@ -5,7 +5,7 @@ var optimizeProperties = require('../../../../lib/optimizer/level-2/properties/o var tokenize = require('../../../../lib/tokenizer/tokenize'); var inputSourceMapTracker = require('../../../../lib/reader/input-source-map-tracker'); -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var validator = require('../../../../lib/optimizer/validator'); function _optimize(source) { @@ -15,7 +15,7 @@ function _optimize(source) { warnings: [] }); - var compat = compatibility(); + var compat = compatibilityFrom(); var options = { compatibility: compat, level: { diff --git a/test/optimizer/level-2/properties/merge-into-shorthands-test.js b/test/optimizer/level-2/properties/merge-into-shorthands-test.js index 6b52b7bf..03f3e113 100644 --- a/test/optimizer/level-2/properties/merge-into-shorthands-test.js +++ b/test/optimizer/level-2/properties/merge-into-shorthands-test.js @@ -5,7 +5,7 @@ var optimizeProperties = require('../../../../lib/optimizer/level-2/properties/o var tokenize = require('../../../../lib/tokenizer/tokenize'); var inputSourceMapTracker = require('../../../../lib/reader/input-source-map-tracker'); -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var validator = require('../../../../lib/optimizer/validator'); function _optimize(source) { @@ -15,7 +15,7 @@ function _optimize(source) { warnings: [] }); - var compat = compatibility(compat); + var compat = compatibilityFrom(compat); var options = { compatibility: compat, level: { diff --git a/test/optimizer/level-2/properties/optimize-test.js b/test/optimizer/level-2/properties/optimize-test.js index c3cd879c..1883565d 100644 --- a/test/optimizer/level-2/properties/optimize-test.js +++ b/test/optimizer/level-2/properties/optimize-test.js @@ -5,11 +5,11 @@ var optimizeProperties = require('../../../../lib/optimizer/level-2/properties/o var tokenize = require('../../../../lib/tokenizer/tokenize'); var inputSourceMapTracker = require('../../../../lib/reader/input-source-map-tracker'); -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var validator = require('../../../../lib/optimizer/validator'); function _optimize(source, compatibilityOptions) { - var compat = compatibility(compatibilityOptions); + var compat = compatibilityFrom(compatibilityOptions); var options = { compatibility: compat, level: { diff --git a/test/optimizer/level-2/properties/override-properties-test.js b/test/optimizer/level-2/properties/override-properties-test.js index a4858248..6c18c62a 100644 --- a/test/optimizer/level-2/properties/override-properties-test.js +++ b/test/optimizer/level-2/properties/override-properties-test.js @@ -5,7 +5,7 @@ var optimizeProperties = require('../../../../lib/optimizer/level-2/properties/o var tokenize = require('../../../../lib/tokenizer/tokenize'); var inputSourceMapTracker = require('../../../../lib/reader/input-source-map-tracker'); -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var validator = require('../../../../lib/optimizer/validator'); function _optimize(source, compat) { @@ -14,7 +14,7 @@ function _optimize(source, compat) { options: {}, warnings: [] }); - compat = compatibility(compat); + compat = compatibilityFrom(compat); var options = { compatibility: compat, diff --git a/test/optimizer/level-2/properties/overrides-non-component-shorthand-test.js b/test/optimizer/level-2/properties/overrides-non-component-shorthand-test.js index 181b3869..52d71528 100644 --- a/test/optimizer/level-2/properties/overrides-non-component-shorthand-test.js +++ b/test/optimizer/level-2/properties/overrides-non-component-shorthand-test.js @@ -2,7 +2,7 @@ var assert = require('assert'); var vows = require('vows'); var wrapForOptimizing = require('../../../../lib/optimizer/wrap-for-optimizing').all; -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var populateComponents = require('../../../../lib/optimizer/level-2/properties/populate-components'); var validator = require('../../../../lib/optimizer/validator'); @@ -27,7 +27,7 @@ vows.describe(overridesNonComponentShorthand) ] ])[0]; - populateComponents([left], validator(compatibility({})), []); + populateComponents([left], validator(compatibilityFrom({})), []); return [right, left]; }, @@ -54,7 +54,7 @@ vows.describe(overridesNonComponentShorthand) ] ])[0]; - populateComponents([left], validator(compatibility({})), []); + populateComponents([left], validator(compatibilityFrom({})), []); return [right, left]; }, @@ -83,7 +83,7 @@ vows.describe(overridesNonComponentShorthand) ] ])[0]; - populateComponents([left], validator(compatibility({})), []); + populateComponents([left], validator(compatibilityFrom({})), []); return [right, left]; }, diff --git a/test/optimizer/level-2/properties/populate-components-test.js b/test/optimizer/level-2/properties/populate-components-test.js index e950126d..bb9e7f3b 100644 --- a/test/optimizer/level-2/properties/populate-components-test.js +++ b/test/optimizer/level-2/properties/populate-components-test.js @@ -2,7 +2,7 @@ var assert = require('assert'); var vows = require('vows'); var wrapForOptimizing = require('../../../../lib/optimizer/wrap-for-optimizing').all; -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var validator = require('../../../../lib/optimizer/validator'); var populateComponents = require('../../../../lib/optimizer/level-2/properties/populate-components'); @@ -22,7 +22,7 @@ vows.describe(populateComponents) ] ]); - populateComponents(wrapped, validator(compatibility({})), []); + populateComponents(wrapped, validator(compatibilityFrom({})), []); return wrapped; }, 'has one': function (wrapped) { @@ -66,7 +66,7 @@ vows.describe(populateComponents) ] ]); - populateComponents(wrapped, validator(compatibility({})), []); + populateComponents(wrapped, validator(compatibilityFrom({})), []); return wrapped; }, 'has one': function (wrapped) { @@ -143,7 +143,7 @@ vows.describe(populateComponents) ] ]); - populateComponents(wrapped, validator(compatibility({})), []); + populateComponents(wrapped, validator(compatibilityFrom({})), []); return wrapped; }, 'has one': function (wrapped) { @@ -162,7 +162,7 @@ vows.describe(populateComponents) ] ]); - populateComponents(wrapped, validator(compatibility({})), []); + populateComponents(wrapped, validator(compatibilityFrom({})), []); return wrapped; }, 'has one': function (wrapped) { diff --git a/test/optimizer/level-2/properties/understandable-test.js b/test/optimizer/level-2/properties/understandable-test.js index 0ebe9a1f..acc297cc 100644 --- a/test/optimizer/level-2/properties/understandable-test.js +++ b/test/optimizer/level-2/properties/understandable-test.js @@ -1,7 +1,7 @@ var assert = require('assert'); var vows = require('vows'); -var compatibility = require('../../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../../lib/options/compatibility'); var validator = require('../../../../lib/optimizer/validator'); var understandable = require('../../../../lib/optimizer/level-2/properties/understandable'); @@ -10,7 +10,7 @@ vows.describe(understandable) .addBatch({ 'same vendor prefixes': { 'topic': function () { - return [validator(compatibility({})), '-moz-calc(100% / 2)', '-moz-calc(50% / 2)', 0, true]; + return [validator(compatibilityFrom({})), '-moz-calc(100% / 2)', '-moz-calc(50% / 2)', 0, true]; }, 'is understandable': function (topic) { assert.isTrue(understandable.apply(null, topic)); @@ -18,7 +18,7 @@ vows.describe(understandable) }, 'different vendor prefixes': { 'topic': function () { - return [validator(compatibility({})), '-moz-calc(100% / 2)', 'calc(50% / 2)', 0, true]; + return [validator(compatibilityFrom({})), '-moz-calc(100% / 2)', 'calc(50% / 2)', 0, true]; }, 'is not understandable': function (topic) { assert.isFalse(understandable.apply(null, topic)); @@ -26,7 +26,7 @@ vows.describe(understandable) }, 'different vendor prefixes when comparing non-pair values': { 'topic': function () { - return [validator(compatibility({})), '-moz-calc(100% / 2)', 'calc(50% / 2)', 0, false]; + return [validator(compatibilityFrom({})), '-moz-calc(100% / 2)', 'calc(50% / 2)', 0, false]; }, 'is not understandable': function (topic) { assert.isFalse(understandable.apply(null, topic)); @@ -34,7 +34,7 @@ vows.describe(understandable) }, 'variables': { 'topic': function () { - return [validator(compatibility({})), 'var(--x)', 'var(--y)', 0, true]; + return [validator(compatibilityFrom({})), 'var(--x)', 'var(--y)', 0, true]; }, 'is understandable': function (topic) { assert.isTrue(understandable.apply(null, topic)); @@ -42,7 +42,7 @@ vows.describe(understandable) }, 'variable and value': { 'topic': function () { - return [validator(compatibility({})), 'var(--x)', 'block', 0, true]; + return [validator(compatibilityFrom({})), 'var(--x)', 'block', 0, true]; }, 'is not understandable': function (topic) { assert.isFalse(understandable.apply(null, topic)); @@ -50,7 +50,7 @@ vows.describe(understandable) }, 'variable and value when comparing non-pair values': { 'topic': function () { - return [validator(compatibility({})), 'var(--x)', 'block', 0, false]; + return [validator(compatibilityFrom({})), 'var(--x)', 'block', 0, false]; }, 'is understandable': function (topic) { assert.isTrue(understandable.apply(null, topic)); diff --git a/test/optimizer/level-2/restore-test.js b/test/optimizer/level-2/restore-test.js index b57463d6..27f42036 100644 --- a/test/optimizer/level-2/restore-test.js +++ b/test/optimizer/level-2/restore-test.js @@ -3,7 +3,7 @@ var assert = require('assert'); var wrapForOptimizing = require('../../../lib/optimizer/wrap-for-optimizing').single; var compactable = require('../../../lib/optimizer/level-2/compactable'); -var compatibility = require('../../../lib/utils/compatibility'); +var compatibilityFrom = require('../../../lib/options/compatibility'); var validator = require('../../../lib/optimizer/validator'); var restore = require('../../../lib/optimizer/level-2/restore'); @@ -11,7 +11,7 @@ var restore = require('../../../lib/optimizer/level-2/restore'); function _breakUp(property) { var descriptor = compactable[property[1][1]]; var _property = wrapForOptimizing(property); - _property.components = descriptor.breakUp(_property, compactable, validator(compatibility())); + _property.components = descriptor.breakUp(_property, compactable, validator(compatibilityFrom())); _property.multiplex = _property.components[0].multiplex; return _property; } diff --git a/test/optimizer/restore-from-optimizing-test.js b/test/optimizer/restore-from-optimizing-test.js index a7fccc41..43cdf7ff 100644 --- a/test/optimizer/restore-from-optimizing-test.js +++ b/test/optimizer/restore-from-optimizing-test.js @@ -10,7 +10,7 @@ var restoreWithComponents = require('../../lib/optimizer/level-2/restore-with-co var populateComponents = require('../../lib/optimizer/level-2/properties/populate-components'); var validator = require('../../lib/optimizer/validator'); -var compatibility = require('../../lib/utils/compatibility'); +var compatibilityFrom = require('../../lib/options/compatibility'); vows.describe(restoreFromOptimizing) .addBatch({ @@ -78,7 +78,7 @@ vows.describe(restoreFromOptimizing) ] ]; var wrapped = wrapForOptimizing(properties); - populateComponents(wrapped, validator(compatibility())); + populateComponents(wrapped, validator(compatibilityFrom())); restoreFromOptimizing(wrapped); return properties; @@ -107,7 +107,7 @@ vows.describe(restoreFromOptimizing) ] ]; var wrapped = wrapForOptimizing(properties); - populateComponents(wrapped, validator(compatibility())); + populateComponents(wrapped, validator(compatibilityFrom())); wrapped[0].dirty = true; @@ -162,7 +162,7 @@ vows.describe(restoreFromOptimizing) ] ]; var wrapped = wrapForOptimizing(properties); - populateComponents(wrapped, validator(compatibility())); + populateComponents(wrapped, validator(compatibilityFrom())); wrapped[0].value = []; wrapped[0].dirty = true; @@ -190,7 +190,7 @@ vows.describe(restoreFromOptimizing) ] ]; var wrapped = wrapForOptimizing(properties); - populateComponents(wrapped, validator(compatibility())); + populateComponents(wrapped, validator(compatibilityFrom())); var cloned = shallowClone(wrapped[0]); cloned.components = wrapped[0].components; diff --git a/test/utils/compatibility-test.js b/test/options/compatibility-test.js similarity index 93% rename from test/utils/compatibility-test.js rename to test/options/compatibility-test.js index 362d9efc..af35fdad 100644 --- a/test/utils/compatibility-test.js +++ b/test/options/compatibility-test.js @@ -1,12 +1,12 @@ var vows = require('vows'); var assert = require('assert'); -var compatibility = require('../../lib/utils/compatibility'); +var compatibilityFrom = require('../../lib/options/compatibility'); -vows.describe(compatibility) +vows.describe(compatibilityFrom) .addBatch({ 'as an empty hash': { 'topic': function () { - return compatibility({}); + return compatibilityFrom({}); }, 'gets default compatibility': function (compat) { assert.isTrue(compat.colors.opacity); @@ -39,15 +39,15 @@ vows.describe(compatibility) }, 'not given': { 'topic': function () { - return compatibility(); + return compatibilityFrom(); }, 'gets default compatibility': function (compat) { - assert.deepEqual(compat, compatibility({})); + assert.deepEqual(compat, compatibilityFrom({})); } }, 'as a populated hash': { 'topic': function () { - return compatibility({ units: { rem: false, vmax: false }, properties: { prefix: true } }); + return compatibilityFrom({ units: { rem: false, vmax: false }, properties: { prefix: true } }); }, 'gets merged compatibility': function (compat) { assert.isTrue(compat.colors.opacity); @@ -81,7 +81,7 @@ vows.describe(compatibility) .addBatch({ 'as an ie9 template': { 'topic': function () { - return compatibility('ie9'); + return compatibilityFrom('ie9'); }, 'gets template compatibility': function (compat) { assert.isTrue(compat.colors.opacity); @@ -114,7 +114,7 @@ vows.describe(compatibility) }, 'as an ie8 template': { 'topic': function () { - return compatibility('ie8'); + return compatibilityFrom('ie8'); }, 'gets template compatibility': function (compat) { assert.isFalse(compat.colors.opacity); @@ -147,7 +147,7 @@ vows.describe(compatibility) }, 'as an ie7 template': { 'topic': function () { - return compatibility('ie7'); + return compatibilityFrom('ie7'); }, 'gets template compatibility': function (compat) { assert.isFalse(compat.colors.opacity); @@ -180,17 +180,17 @@ vows.describe(compatibility) }, 'as an unknown template': { 'topic': function () { - return compatibility(''); + return compatibilityFrom(''); }, 'gets default compatibility': function (compat) { - assert.deepEqual(compat, compatibility({})); + assert.deepEqual(compat, compatibilityFrom({})); } } }) .addBatch({ 'as a complex string value with group': { 'topic': function () { - return compatibility('ie8,-properties.iePrefixHack,+colors.opacity'); + return compatibilityFrom('ie8,-properties.iePrefixHack,+colors.opacity'); }, 'gets calculated compatibility': function (compat) { assert.isTrue(compat.colors.opacity); @@ -223,7 +223,7 @@ vows.describe(compatibility) }, 'as a single string value without group': { 'topic': function () { - return compatibility('+properties.iePrefixHack'); + return compatibilityFrom('+properties.iePrefixHack'); }, 'gets calculated compatibility': function (compat) { assert.isTrue(compat.colors.opacity); @@ -256,7 +256,7 @@ vows.describe(compatibility) }, 'as a complex string value without group': { 'topic': function () { - return compatibility('+properties.iePrefixHack,-units.rem'); + return compatibilityFrom('+properties.iePrefixHack,-units.rem'); }, 'gets calculated compatibility': function (compat) { assert.isTrue(compat.colors.opacity); diff --git a/test/options/optimization-level-test.js b/test/options/optimization-level-test.js index ae3805b3..a2c9f3a7 100644 --- a/test/options/optimization-level-test.js +++ b/test/options/optimization-level-test.js @@ -2,8 +2,8 @@ var assert = require('assert'); var vows = require('vows'); -var roundingPrecisionFrom = require('../../lib/utils/rounding-precision').roundingPrecisionFrom; var optimizationLevelFrom = require('../../lib/options/optimization-level').optimizationLevelFrom; +var roundingPrecisionFrom = require('../../lib/options/rounding-precision').roundingPrecisionFrom; vows.describe(optimizationLevelFrom) .addBatch({ diff --git a/test/utils/rounding-precision-test.js b/test/options/rounding-precision-test.js similarity index 98% rename from test/utils/rounding-precision-test.js rename to test/options/rounding-precision-test.js index e9ebbb3b..e26144f3 100644 --- a/test/utils/rounding-precision-test.js +++ b/test/options/rounding-precision-test.js @@ -2,7 +2,7 @@ var assert = require('assert'); var vows = require('vows'); -var roundingPrecisionFrom = require('../../lib/utils/rounding-precision').roundingPrecisionFrom; +var roundingPrecisionFrom = require('../../lib/options/rounding-precision').roundingPrecisionFrom; vows.describe(roundingPrecisionFrom) .addBatch({ -- 2.34.1