styled-tools
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -0,1 +1,11 @@ | ||
<a name="1.1.0"></a> | ||
# [1.1.0](https://github.com/diegohaz/styled-tools/compare/v1.0.0...v1.1.0) (2018-08-08) | ||
### Performance Improvements | ||
* Remove lodash dependency ([#45](https://github.com/diegohaz/styled-tools/issues/45)) ([bd06455](https://github.com/diegohaz/styled-tools/commit/bd06455)) | ||
<a name="1.0.0"></a> | ||
@@ -2,0 +12,0 @@ # [1.0.0](https://github.com/diegohaz/styled-tools/compare/v0.6.2...v1.0.0) (2018-07-23) |
@@ -23,3 +23,2 @@ "use strict"; | ||
}; | ||
exports.default = ifNotProp; |
@@ -8,21 +8,36 @@ "use strict"; | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
/* eslint-disable no-use-before-define */ | ||
var _get = require("lodash/get"); | ||
var _get2 = _interopRequireDefault(_get); | ||
var _prop = require("./prop"); | ||
var _at = require("lodash/at"); | ||
var _prop2 = _interopRequireDefault(_prop); | ||
var _at2 = _interopRequireDefault(_at); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _values = require("lodash/values"); | ||
var parseFunction = function parseFunction(props, test) { | ||
return Boolean(test(props)); | ||
}; | ||
var _values2 = _interopRequireDefault(_values); | ||
var parseObject = function parseObject(props, test) { | ||
var keys = Object.keys(test); | ||
var length = keys.length; | ||
var _difference = require("lodash/difference"); | ||
var _difference2 = _interopRequireDefault(_difference); | ||
for (var index = 0; index < length; index += 1) { | ||
var key = keys[index]; | ||
var expected = test[key]; | ||
var value = (0, _prop2.default)(key)(props); | ||
if (expected !== value) { | ||
return false; | ||
} | ||
} | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
return true; | ||
}; | ||
var parseString = function parseString(props, test) { | ||
return Boolean((0, _prop2.default)(test)(props)); | ||
}; | ||
/** | ||
@@ -42,20 +57,27 @@ * Returns `pass` if prop is truthy. Otherwise returns `fail` | ||
*/ | ||
var ifProp = function ifProp(test, pass, fail) { | ||
var ifProp = function ifProp(test) { | ||
var pass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; | ||
var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ""; | ||
return function () { | ||
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
var result = void 0; | ||
if (Array.isArray(test)) { | ||
result = !(0, _at2.default)(props, test).filter(function (value) { | ||
return !value; | ||
}).length; | ||
} else if (typeof test === "function") { | ||
result = test(props); | ||
} else if ((typeof test === "undefined" ? "undefined" : _typeof(test)) === "object") { | ||
var testKeys = Object.keys(test); | ||
var testValues = (0, _values2.default)(test); | ||
result = !(0, _difference2.default)((0, _at2.default)(props, testKeys), testValues).length; | ||
} else { | ||
result = (0, _get2.default)(props, test); | ||
var length = test.length; | ||
var index = 0; | ||
var _value = pass; | ||
while (_value !== fail && index < length) { | ||
_value = ifProp(test[index], pass, fail)(props); | ||
index += 1; | ||
} | ||
return _value; | ||
} | ||
var parseMap = { | ||
function: parseFunction, | ||
object: parseObject, | ||
string: parseString | ||
}; | ||
var result = parseMap[typeof test === "undefined" ? "undefined" : _typeof(test)](props, test); | ||
var value = result ? pass : fail; | ||
@@ -62,0 +84,0 @@ return typeof value === "function" ? value(props) : value; |
@@ -7,8 +7,3 @@ "use strict"; | ||
var _get = require("lodash/get"); | ||
var _get2 = _interopRequireDefault(_get); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
@@ -24,5 +19,27 @@ * Returns the value of `props[path]` or `defaultValue` | ||
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
return (0, _get2.default)(props, path, defaultValue); | ||
if (typeof props[path] !== "undefined") { | ||
return props[path]; | ||
} | ||
if (path && path.indexOf(".") > 0) { | ||
var paths = path.split("."); | ||
var length = paths.length; | ||
var object = props[paths[0]]; | ||
var index = 1; | ||
while (object != null && index < length) { | ||
object = object[paths[index]]; | ||
index += 1; | ||
} | ||
if (typeof object !== "undefined") { | ||
return object; | ||
} | ||
} | ||
return defaultValue; | ||
}; | ||
}; | ||
exports.default = prop; |
@@ -7,5 +7,5 @@ "use strict"; | ||
var _get = require("lodash/get"); | ||
var _prop = require("./prop"); | ||
var _get2 = _interopRequireDefault(_get); | ||
var _prop2 = _interopRequireDefault(_prop); | ||
@@ -42,6 +42,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var value = typeof needle === "function" ? needle(props) : (0, _get2.default)(props, needle); | ||
return (0, _get2.default)(cases, value, defaultCase); | ||
var value = typeof needle === "function" ? needle(props) : (0, _prop2.default)(needle)(props); | ||
return (0, _prop2.default)(value, defaultCase)(cases); | ||
}; | ||
}; | ||
exports.default = switchProp; |
@@ -7,5 +7,5 @@ "use strict"; | ||
var _get = require("lodash/get"); | ||
var _prop = require("./prop"); | ||
var _get2 = _interopRequireDefault(_get); | ||
var _prop2 = _interopRequireDefault(_prop); | ||
@@ -45,3 +45,3 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
} | ||
return fn((0, _get2.default)(props, needle)); | ||
return fn((0, _prop2.default)(needle)(props)); | ||
}; | ||
@@ -48,0 +48,0 @@ }; |
@@ -1,4 +0,4 @@ | ||
import ifProp from "./ifProp"; | ||
/** | ||
@@ -11,3 +11,2 @@ * Returns `pass` if prop is falsy. Otherwise returns `fail` | ||
*/ | ||
var ifNotProp = function ifNotProp(test, pass, fail) { | ||
@@ -14,0 +13,0 @@ return ifProp(test, fail, pass); |
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
import get from "lodash/get"; | ||
import at from "lodash/at"; | ||
import values from "lodash/values"; | ||
import difference from "lodash/difference"; | ||
/* eslint-disable no-use-before-define */ | ||
import prop from "./prop"; | ||
var parseFunction = function parseFunction(props, test) { | ||
return Boolean(test(props)); | ||
}; | ||
var parseObject = function parseObject(props, test) { | ||
var keys = Object.keys(test); | ||
var length = keys.length; | ||
for (var index = 0; index < length; index += 1) { | ||
var key = keys[index]; | ||
var expected = test[key]; | ||
var value = prop(key)(props); | ||
if (expected !== value) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
}; | ||
var parseString = function parseString(props, test) { | ||
return Boolean(prop(test)(props)); | ||
}; | ||
/** | ||
@@ -23,20 +46,27 @@ * Returns `pass` if prop is truthy. Otherwise returns `fail` | ||
*/ | ||
var ifProp = function ifProp(test, pass, fail) { | ||
var ifProp = function ifProp(test) { | ||
var pass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; | ||
var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ""; | ||
return function () { | ||
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
var result = void 0; | ||
if (Array.isArray(test)) { | ||
result = !at(props, test).filter(function (value) { | ||
return !value; | ||
}).length; | ||
} else if (typeof test === "function") { | ||
result = test(props); | ||
} else if ((typeof test === "undefined" ? "undefined" : _typeof(test)) === "object") { | ||
var testKeys = Object.keys(test); | ||
var testValues = values(test); | ||
result = !difference(at(props, testKeys), testValues).length; | ||
} else { | ||
result = get(props, test); | ||
var length = test.length; | ||
var index = 0; | ||
var _value = pass; | ||
while (_value !== fail && index < length) { | ||
_value = ifProp(test[index], pass, fail)(props); | ||
index += 1; | ||
} | ||
return _value; | ||
} | ||
var parseMap = { | ||
function: parseFunction, | ||
object: parseObject, | ||
string: parseString | ||
}; | ||
var result = parseMap[typeof test === "undefined" ? "undefined" : _typeof(test)](props, test); | ||
var value = result ? pass : fail; | ||
@@ -43,0 +73,0 @@ return typeof value === "function" ? value(props) : value; |
@@ -1,3 +0,3 @@ | ||
import get from "lodash/get"; | ||
/** | ||
@@ -13,6 +13,29 @@ * Returns the value of `props[path]` or `defaultValue` | ||
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
return get(props, path, defaultValue); | ||
if (typeof props[path] !== "undefined") { | ||
return props[path]; | ||
} | ||
if (path && path.indexOf(".") > 0) { | ||
var paths = path.split("."); | ||
var length = paths.length; | ||
var object = props[paths[0]]; | ||
var index = 1; | ||
while (object != null && index < length) { | ||
object = object[paths[index]]; | ||
index += 1; | ||
} | ||
if (typeof object !== "undefined") { | ||
return object; | ||
} | ||
} | ||
return defaultValue; | ||
}; | ||
}; | ||
export default prop; |
@@ -1,2 +0,2 @@ | ||
import get from "lodash/get"; | ||
import prop from "./prop"; | ||
@@ -32,4 +32,4 @@ | ||
var value = typeof needle === "function" ? needle(props) : get(props, needle); | ||
return get(cases, value, defaultCase); | ||
var value = typeof needle === "function" ? needle(props) : prop(needle)(props); | ||
return prop(value, defaultCase)(cases); | ||
}; | ||
@@ -36,0 +36,0 @@ }; |
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
import get from "lodash/get"; | ||
import prop from "./prop"; | ||
@@ -35,3 +35,3 @@ | ||
} | ||
return fn(get(props, needle)); | ||
return fn(prop(needle)(props)); | ||
}; | ||
@@ -38,0 +38,0 @@ }; |
{ | ||
"name": "styled-tools", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Utilities for styled-components", | ||
@@ -24,5 +24,6 @@ "license": "MIT", | ||
"postcoverage": "opn coverage/lcov-report/index.html", | ||
"lint": "eslint src test", | ||
"lint": "eslint src test benchmark", | ||
"flow": "flow check", | ||
"flow-typed": "flow-typed install", | ||
"benchmark": "cross-env NODE_ENV=test babel-node benchmark", | ||
"docs": "documentation readme src --section=API --pe flow -c documentation.yml", | ||
@@ -44,5 +45,3 @@ "clean": "rimraf dist", | ||
], | ||
"dependencies": { | ||
"lodash": "^4.17.10" | ||
}, | ||
"dependencies": {}, | ||
"devDependencies": { | ||
@@ -56,2 +55,3 @@ "babel-cli": "^6.18.0", | ||
"babel-preset-stage-1": "^6.24.1", | ||
"benchmark": "^2.1.4", | ||
"cross-env": "^5.2.0", | ||
@@ -75,4 +75,5 @@ "documentation": "^8.0.0", | ||
"standard-changelog": "^2.0.0", | ||
"styled-components": "^3.3.3" | ||
"styled-components": "^3.3.3", | ||
"styled-tools": "^1.0.0" | ||
} | ||
} |
@@ -8,3 +8,3 @@ # styled-tools 💅 | ||
Useful interpolated functions for [styled-components](https://github.com/styled-components/styled-components) 💅 | ||
Useful interpolated functions for [styled-components](https://github.com/styled-components/styled-components) 💅, [emotion](https://github.com/emotion-js/emotion), [JSS](https://github.com/cssinjs/jss) and other CSS-in-JS libraries. | ||
@@ -116,3 +116,3 @@ ## Install | ||
Returns **any** | ||
Returns **PropsFn** | ||
@@ -125,5 +125,5 @@ ### ifProp | ||
- `test` **([Needle](#needle) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object))** | ||
- `pass` **any** | ||
- `fail` **any** | ||
- `test` **([Needle](#needle) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Needle](#needle)> | [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object))** | ||
- `pass` **any** (optional, default `""`) | ||
- `fail` **any** (optional, default `""`) | ||
@@ -145,3 +145,3 @@ #### Examples | ||
Returns **any** | ||
Returns **PropsFn** | ||
@@ -154,3 +154,3 @@ ### ifNotProp | ||
- `test` **([Needle](#needle) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object))** | ||
- `test` **([Needle](#needle) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Needle](#needle)> | [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object))** | ||
- `pass` **any** | ||
@@ -167,3 +167,3 @@ - `fail` **any** | ||
Returns **any** | ||
Returns **PropsFn** | ||
@@ -194,3 +194,3 @@ ### withProp | ||
Returns **any** | ||
Returns **PropsFn** | ||
@@ -232,3 +232,3 @@ ### switchProp | ||
Returns **any** | ||
Returns **PropsFn** | ||
@@ -235,0 +235,0 @@ ### Types |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
25104
0
389
28
- Removedlodash@^4.17.10
- Removedlodash@4.17.21(transitive)