Socket
Socket
Sign inDemoInstall

postcss-property-lookup

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postcss-property-lookup - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

97

build/index.js

@@ -13,23 +13,96 @@ 'use strict';

exports['default'] = _postcss2['default'].plugin('postcss-property-lookup', propertyLookup);
var plugin = 'postcss-property-lookup';
var lookupPattern = /@([a-z-]+)(\s?)/g;
var defaultOptions = {
logLevel: 'warn'
};
exports['default'] = _postcss2['default'].plugin(plugin, propertyLookup);
function propertyLookup() {
var _this = this;
var options = arguments[0] === undefined ? defaultOptions : arguments[0];
var errorContext = { plugin: plugin };
var log = ({
warn: function warn(message, rule, result) {
rule.warn(result, message);
},
error: function error(message, rule) {
throw rule.error(message, errorContext);
}
})[options.logLevel];
if (!log) {
throw new Error('Invalid logLevel: ' + options.logLevel);
}
return function (root, result) {
root.walkRules(function (rule) {
rule.replaceValues(/@([a-z-]+)(\s?)/g, { fast: '@' }, function (orig, prop, space) {
var replacementVal = undefined;
rule.walkDecls(prop, function (decl) {
return replacementVal = decl.value;
});
eachDecl(rule, function (decl) {
if (decl.value.indexOf('@') === -1) {
return;
}
decl.value = decl.value.replace(lookupPattern, resolveLookup.bind(_this, rule));
});
});
if (replacementVal) {
return replacementVal + space;
} else {
result.warn('Unable to find property ' + orig + ' in ' + rule.selector, { node: rule });
function resolveLookup(rule, orig, prop, space) {
var resolvedValue = closest(rule, prop);
if (!resolvedValue) {
log('Unable to find property ' + orig + ' in ' + rule.selector, rule, result);
}
return resolvedValue + space;
}
function closest(_x2, _x3) {
var _this2 = this;
var _again = true;
_function: while (_again) {
var container = _x2,
prop = _x3;
resolvedValue = undefined;
_again = false;
if (!container) {
return '';
}
});
});
var resolvedValue = undefined;
eachDecl(container, function (decl) {
if (decl.prop === prop) {
resolvedValue = decl.value;
}
});
if (!resolvedValue) {
_x2 = container.parent;
_x3 = prop;
_again = true;
continue _function;
}
if (resolvedValue.indexOf('@') === -1) {
return resolvedValue;
}
return resolvedValue.replace(lookupPattern, resolveLookup.bind(_this2, container));
}
}
};
}
function eachDecl(container, callback) {
container.nodes.forEach(function (node) {
if (node.type === 'decl') {
callback(node);
}
});
}
module.exports = exports['default'];

2

package.json
{
"name": "postcss-property-lookup",
"version": "1.0.0",
"version": "1.1.0",
"description": "PostCSS plugin that allows referencing property values without a variable",

@@ -5,0 +5,0 @@ "keywords": [

@@ -37,1 +37,11 @@ # postcss-property-lookup [![Build Status][ci-img]][ci]

See [PostCSS] docs for examples for your environment.
## Options
### logLevel
Type: `string: <error|warn>`<br>
Required: `false`<br>
Default: `warn`
When a lookup cannot be resolved, this specifies whether to throw an error or log a warning. In the case of a warning, the invalid lookup value will be replaced with an empty string.

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc