aboutsummaryrefslogtreecommitdiff
path: root/node_modules/postcss-minify-font-values/lib/minify-family.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/postcss-minify-font-values/lib/minify-family.js')
-rw-r--r--node_modules/postcss-minify-font-values/lib/minify-family.js101
1 files changed, 0 insertions, 101 deletions
diff --git a/node_modules/postcss-minify-font-values/lib/minify-family.js b/node_modules/postcss-minify-font-values/lib/minify-family.js
deleted file mode 100644
index 3ad601f5..00000000
--- a/node_modules/postcss-minify-font-values/lib/minify-family.js
+++ /dev/null
@@ -1,101 +0,0 @@
-var stringify = require('postcss-value-parser').stringify;
-var uniqs = require('./uniqs')('monospace');
-
-// Note that monospace is missing intentionally from this list; we should not
-// remove instances of duplicated monospace keywords, it causes the font to be
-// rendered smaller in Chrome.
-
-var keywords = [
- 'sans-serif',
- 'serif',
- 'fantasy',
- 'cursive'
-];
-
-function intersection(haystack, array) {
- return array.some(function (v) {
- return ~haystack.indexOf(v);
- });
-};
-
-module.exports = function (nodes, opts) {
- var family = [];
- var last = null;
- var i, max;
-
- nodes.forEach(function (node, index, nodes) {
- var value = node.value;
-
- if (node.type === 'string' || node.type === 'function') {
- family.push(node);
- } else if (node.type === 'word') {
- if (!last) {
- last = { type: 'word', value: '' };
- family.push(last);
- }
-
- last.value += node.value;
- } else if (node.type === 'space') {
- if (last && index !== nodes.length - 1) {
- last.value += ' ';
- }
- } else {
- last = null;
- }
- });
-
- family = family.map(function (node) {
- if (node.type === 'string') {
- if (
- !opts.removeQuotes ||
- intersection(node.value, keywords) ||
- /[0-9]/.test(node.value.slice(0, 1))
- ) {
- return stringify(node);
- }
-
- var escaped = node.value.split(/\s/).map(function (word, index, words) {
- var next = words[index + 1];
- if (next && /^[^a-z]/i.test(next)) {
- return word + '\\';
- }
-
- if (!/^[^a-z\d\xa0-\uffff_-]/i.test(word)) {
- return word.replace(/([^a-z\d\xa0-\uffff_-])/gi, '\\$1');
- }
-
- if (/^[^a-z]/i.test(word) && index < 1) {
- return '\\' + word;
- }
-
- return word;
- }).join(' ');
-
- if (escaped.length < node.value.length + 2) {
- return escaped;
- }
- }
-
- return stringify(node);
- });
-
- if (opts.removeAfterKeyword) {
- for (i = 0, max = family.length; i < max; i += 1) {
- if (~keywords.indexOf(family[i])) {
- family = family.slice(0, i + 1);
- break;
- }
- }
- }
-
- if (opts.removeDuplicates) {
- family = uniqs(family);
- }
-
- return [
- {
- type: 'word',
- value: family.join()
- }
- ];
-};