feat: init
This commit is contained in:
71
node_modules/postcss-normalize-display-values/src/index.js
generated
vendored
Normal file
71
node_modules/postcss-normalize-display-values/src/index.js
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
'use strict';
|
||||
const valueParser = require('postcss-value-parser');
|
||||
const mappings = require('./lib/map.js');
|
||||
|
||||
/**
|
||||
* @param {string} value
|
||||
* @return {string}
|
||||
*/
|
||||
function transform(value) {
|
||||
const { nodes } = valueParser(value);
|
||||
|
||||
if (nodes.length === 1) {
|
||||
return value;
|
||||
}
|
||||
|
||||
const values = nodes
|
||||
.filter((list, index) => index % 2 === 0)
|
||||
.filter((node) => node.type === 'word')
|
||||
.map((n) => n.value.toLowerCase());
|
||||
|
||||
if (values.length === 0) {
|
||||
return value;
|
||||
}
|
||||
|
||||
const match = mappings.get(values.toString());
|
||||
|
||||
if (!match) {
|
||||
return value;
|
||||
}
|
||||
|
||||
return match;
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {import('postcss').PluginCreator<void>}
|
||||
* @return {import('postcss').Plugin}
|
||||
*/
|
||||
function pluginCreator() {
|
||||
return {
|
||||
postcssPlugin: 'postcss-normalize-display-values',
|
||||
|
||||
prepare() {
|
||||
const cache = new Map();
|
||||
return {
|
||||
OnceExit(css) {
|
||||
css.walkDecls(/^display$/i, (decl) => {
|
||||
const value = decl.value;
|
||||
|
||||
if (!value) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (cache.has(value)) {
|
||||
decl.value = cache.get(value);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const result = transform(value);
|
||||
|
||||
decl.value = result;
|
||||
cache.set(value, result);
|
||||
});
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
pluginCreator.postcss = true;
|
||||
module.exports = pluginCreator;
|
||||
Reference in New Issue
Block a user