@projectwallace/format-css 2.2.1 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/format-css.js +134 -120
- package/package.json +2 -2
package/dist/format-css.js
CHANGED
|
@@ -1,64 +1,77 @@
|
|
|
1
|
-
import { parse as X, NODE_TYPES as
|
|
2
|
-
const
|
|
3
|
-
function
|
|
1
|
+
import { parse as X, NODE_TYPES as u, ATTR_FLAG_CASE_INSENSITIVE as z, ATTR_FLAG_CASE_SENSITIVE as tt, ATTR_OPERATOR_EQUAL as et, ATTR_OPERATOR_STAR_EQUAL as rt, ATTR_OPERATOR_DOLLAR_EQUAL as st, ATTR_OPERATOR_CARET_EQUAL as it, ATTR_OPERATOR_PIPE_EQUAL as lt, ATTR_OPERATOR_TILDE_EQUAL as nt } from "@projectwallace/css-parser";
|
|
2
|
+
const _ = " ", p = "", k = ":", b = ";", w = '"', P = "(", N = ")", ut = "[", pt = "]", d = "{", g = "}", D = ",";
|
|
3
|
+
function ct(R, { minify: O = !1, tab_size: L = void 0 } = /* @__PURE__ */ Object.create(null)) {
|
|
4
4
|
if (L !== void 0 && Number(L) < 1)
|
|
5
5
|
throw new TypeError("tab_size must be a number greater than 0");
|
|
6
|
-
const E = O ?
|
|
7
|
-
`,
|
|
8
|
-
let A = [],
|
|
6
|
+
const E = O ? p : `
|
|
7
|
+
`, c = O ? p : _, M = O ? p : b;
|
|
8
|
+
let A = [], Q = X(R, {
|
|
9
9
|
on_comment: ({ start: t, end: e }) => {
|
|
10
10
|
A.push(t, e);
|
|
11
11
|
}
|
|
12
12
|
}), a = 0;
|
|
13
13
|
function o(t) {
|
|
14
|
-
return O === !0 ?
|
|
14
|
+
return O === !0 ? p : L !== void 0 ? _.repeat(L * t) : " ".repeat(t);
|
|
15
15
|
}
|
|
16
|
-
function
|
|
16
|
+
function f(t, e, s = a) {
|
|
17
17
|
if (O || t === void 0 || e === void 0)
|
|
18
|
-
return
|
|
19
|
-
let
|
|
20
|
-
for (let
|
|
21
|
-
let
|
|
22
|
-
if (
|
|
23
|
-
let
|
|
24
|
-
if (
|
|
25
|
-
|
|
18
|
+
return p;
|
|
19
|
+
let r = p;
|
|
20
|
+
for (let l = 0; l < A.length; l += 2) {
|
|
21
|
+
let i = A[l];
|
|
22
|
+
if (i === void 0 || i < t) continue;
|
|
23
|
+
let n = A[l + 1];
|
|
24
|
+
if (n === void 0 || n > e) break;
|
|
25
|
+
r.length > 0 && (r += E + o(s)), r += R.slice(i, n);
|
|
26
26
|
}
|
|
27
|
-
return
|
|
27
|
+
return r;
|
|
28
28
|
}
|
|
29
|
-
function
|
|
30
|
-
return t.replace(/(?:^['"])|(?:['"]$)/g,
|
|
29
|
+
function I(t) {
|
|
30
|
+
return t.replace(/(?:^['"])|(?:['"]$)/g, p);
|
|
31
31
|
}
|
|
32
|
-
function
|
|
33
|
-
return t = (t == null ? void 0 : t.toString()) || "",
|
|
32
|
+
function S(t) {
|
|
33
|
+
return t = (t == null ? void 0 : t.toString()) || "", w + I(t) + w;
|
|
34
34
|
}
|
|
35
35
|
function B(t) {
|
|
36
|
-
let e = [],
|
|
37
|
-
return
|
|
36
|
+
let e = [], s = t.text, r = s.charCodeAt(0);
|
|
37
|
+
return r === 43 || r === 45 ? e.push(_) : r !== 44 && e.push(c), e.push(s), r === 43 || r === 45 ? e.push(_) : e.push(c), e.join(p);
|
|
38
38
|
}
|
|
39
|
-
function
|
|
40
|
-
var r,
|
|
39
|
+
function m(t) {
|
|
40
|
+
var s, r, l;
|
|
41
41
|
let e = [];
|
|
42
42
|
for (let i of t) {
|
|
43
|
-
if (i.type ===
|
|
44
|
-
let n = i.name.toLowerCase();
|
|
45
|
-
e.push(n, P), e.push(
|
|
46
|
-
} else
|
|
47
|
-
|
|
43
|
+
if (i.type === u.FUNCTION) {
|
|
44
|
+
let n = (s = i.name) == null ? void 0 : s.toLowerCase();
|
|
45
|
+
e.push(n, P), e.push(m(i.children)), e.push(N);
|
|
46
|
+
} else if (i.type === u.DIMENSION)
|
|
47
|
+
e.push(i.value, (r = i.unit) == null ? void 0 : r.toLowerCase());
|
|
48
|
+
else if (i.type === u.STRING)
|
|
49
|
+
e.push(S(i.text));
|
|
50
|
+
else if (i.type === u.OPERATOR)
|
|
51
|
+
e.push(B(i));
|
|
52
|
+
else if (i.type === u.PARENTHESIS)
|
|
53
|
+
e.push(P, m(i.children), N);
|
|
54
|
+
else if (i.type === u.URL && typeof i.value == "string") {
|
|
55
|
+
e.push("url(");
|
|
56
|
+
let { value: n } = i;
|
|
57
|
+
/^['"]?data:/i.test(n) ? e.push(I(n)) : e.push(S(n)), e.push(N);
|
|
58
|
+
} else
|
|
59
|
+
e.push(i.text);
|
|
60
|
+
i.type !== u.OPERATOR && i.has_next && ((l = i.next_sibling) == null ? void 0 : l.type) !== u.OPERATOR && e.push(_);
|
|
48
61
|
}
|
|
49
|
-
return e.join(
|
|
62
|
+
return e.join(p);
|
|
50
63
|
}
|
|
51
64
|
function H(t) {
|
|
52
|
-
return t === null ?
|
|
65
|
+
return t === null ? p : m(t);
|
|
53
66
|
}
|
|
54
67
|
function F(t) {
|
|
55
68
|
let e = [];
|
|
56
69
|
if (t.is_important) {
|
|
57
|
-
let
|
|
58
|
-
e.push(
|
|
70
|
+
let l = t.text, i = l.endsWith(b), n = l.lastIndexOf("!"), T = i ? -1 : void 0;
|
|
71
|
+
e.push(c, l.slice(n, T).toLowerCase());
|
|
59
72
|
}
|
|
60
|
-
let
|
|
61
|
-
return
|
|
73
|
+
let s = H(t.value), r = t.property;
|
|
74
|
+
return r === "font" && (s = s.replace(/\s*\/\s*/, "/")), s === p && O === !0 && (s += _), r.startsWith("--") || (r = r.toLowerCase()), r + k + c + s + e.join(p);
|
|
62
75
|
}
|
|
63
76
|
function G(t) {
|
|
64
77
|
switch (t) {
|
|
@@ -77,142 +90,143 @@ function pt(R, { minify: O = !1, tab_size: L = void 0 } = /* @__PURE__ */ Object
|
|
|
77
90
|
return "=";
|
|
78
91
|
}
|
|
79
92
|
}
|
|
80
|
-
function
|
|
81
|
-
let e = [],
|
|
82
|
-
return
|
|
93
|
+
function v(t) {
|
|
94
|
+
let e = [], s = t.nth_a, r = t.nth_b;
|
|
95
|
+
return s && e.push(s), s && r && e.push(c), r && (s && !r.startsWith("-") && e.push("+", c), e.push(parseFloat(r))), e.join(p);
|
|
83
96
|
}
|
|
84
97
|
function Y(t) {
|
|
85
|
-
var
|
|
98
|
+
var s, r;
|
|
86
99
|
let e = [];
|
|
87
|
-
return ((
|
|
100
|
+
return ((s = t.children[0]) == null ? void 0 : s.type) === u.NTH_SELECTOR && (e.push(v(t.children[0])), e.push(_, "of", _)), ((r = t.children[1]) == null ? void 0 : r.type) === u.SELECTOR_LIST && e.push(y(t.children[1])), e.join(p);
|
|
88
101
|
}
|
|
89
102
|
function W(t, e = !1) {
|
|
103
|
+
let s = t.name ?? "";
|
|
90
104
|
switch (t.type) {
|
|
91
|
-
case
|
|
92
|
-
return
|
|
93
|
-
case
|
|
105
|
+
case u.TYPE_SELECTOR:
|
|
106
|
+
return s.toLowerCase() ?? "";
|
|
107
|
+
case u.COMBINATOR: {
|
|
94
108
|
let r = t.text;
|
|
95
|
-
return /^\s+$/.test(r) ?
|
|
109
|
+
return /^\s+$/.test(r) ? _ : (e ? p : c) + r + c;
|
|
96
110
|
}
|
|
97
|
-
case
|
|
98
|
-
case
|
|
99
|
-
let r = [k]
|
|
100
|
-
return (s === "before" || s === "after" || t.type ===
|
|
111
|
+
case u.PSEUDO_ELEMENT_SELECTOR:
|
|
112
|
+
case u.PSEUDO_CLASS_SELECTOR: {
|
|
113
|
+
let r = [k];
|
|
114
|
+
return s = s.toLowerCase(), (s === "before" || s === "after" || t.type === u.PSEUDO_ELEMENT_SELECTOR) && r.push(k), r.push(s), t.has_children && (r.push(P), t.children.length > 0 && (s === "highlight" ? r.push(m(t.children)) : r.push(y(t))), r.push(N)), r.join(p);
|
|
101
115
|
}
|
|
102
|
-
case
|
|
103
|
-
let r = [ut,
|
|
104
|
-
return t.attr_operator && (r.push(G(t.attr_operator)), typeof t.value == "string" && r.push(
|
|
116
|
+
case u.ATTRIBUTE_SELECTOR: {
|
|
117
|
+
let r = [ut, s.toLowerCase()];
|
|
118
|
+
return t.attr_operator && (r.push(G(t.attr_operator)), typeof t.value == "string" && r.push(S(t.value)), t.attr_flags === z ? r.push(_, "i") : t.attr_flags === tt && r.push(_, "s")), r.push(pt), r.join(p);
|
|
105
119
|
}
|
|
106
120
|
default:
|
|
107
121
|
return t.text;
|
|
108
122
|
}
|
|
109
123
|
}
|
|
110
|
-
function
|
|
111
|
-
if (t.type ===
|
|
112
|
-
return
|
|
113
|
-
if (t.type ===
|
|
124
|
+
function x(t) {
|
|
125
|
+
if (t.type === u.NTH_SELECTOR)
|
|
126
|
+
return v(t);
|
|
127
|
+
if (t.type === u.NTH_OF_SELECTOR)
|
|
114
128
|
return Y(t);
|
|
115
|
-
if (t.type ===
|
|
129
|
+
if (t.type === u.SELECTOR_LIST)
|
|
116
130
|
return y(t);
|
|
117
|
-
if (t.type ===
|
|
118
|
-
return
|
|
131
|
+
if (t.type === u.LANG_SELECTOR)
|
|
132
|
+
return S(t.text);
|
|
119
133
|
let e = [];
|
|
120
|
-
return t.children.forEach((
|
|
121
|
-
const
|
|
122
|
-
e.push(
|
|
123
|
-
}), e.join(
|
|
134
|
+
return t.children.forEach((s, r) => {
|
|
135
|
+
const l = W(s, r === 0);
|
|
136
|
+
e.push(l);
|
|
137
|
+
}), e.join(p);
|
|
124
138
|
}
|
|
125
139
|
function y(t) {
|
|
126
140
|
let e = [];
|
|
127
|
-
for (let
|
|
128
|
-
e.push(
|
|
129
|
-
return e.join(
|
|
141
|
+
for (let s of t)
|
|
142
|
+
e.push(x(s)), s.has_next && e.push(D, c);
|
|
143
|
+
return e.join(p);
|
|
130
144
|
}
|
|
131
145
|
function K(t) {
|
|
132
|
-
let e = [],
|
|
133
|
-
for (let
|
|
134
|
-
if (
|
|
135
|
-
let
|
|
136
|
-
|
|
146
|
+
let e = [], s;
|
|
147
|
+
for (let r of t) {
|
|
148
|
+
if (s !== void 0) {
|
|
149
|
+
let i = f(s, r.start);
|
|
150
|
+
i && e.push(o(a) + i);
|
|
137
151
|
}
|
|
138
|
-
let
|
|
139
|
-
|
|
152
|
+
let l = x(r);
|
|
153
|
+
r.has_next && (l += D), e.push(o(a) + l), s = r.end;
|
|
140
154
|
}
|
|
141
155
|
return e.join(E);
|
|
142
156
|
}
|
|
143
|
-
function
|
|
157
|
+
function j(t) {
|
|
144
158
|
var T;
|
|
145
159
|
let e = [];
|
|
146
160
|
a++;
|
|
147
|
-
let
|
|
148
|
-
if (
|
|
149
|
-
let h =
|
|
161
|
+
let s = t.children;
|
|
162
|
+
if (s.length === 0) {
|
|
163
|
+
let h = f(t.start, t.end);
|
|
150
164
|
if (h)
|
|
151
165
|
return e.push(o(a) + h), a--, e.push(o(a) + g), e.join(E);
|
|
152
166
|
}
|
|
153
|
-
let
|
|
154
|
-
|
|
155
|
-
let
|
|
156
|
-
for (let h of
|
|
157
|
-
if (
|
|
158
|
-
let C =
|
|
167
|
+
let r = s[0], l = f(t.start, r == null ? void 0 : r.start);
|
|
168
|
+
l && e.push(o(a) + l);
|
|
169
|
+
let i;
|
|
170
|
+
for (let h of s) {
|
|
171
|
+
if (i !== void 0) {
|
|
172
|
+
let C = f(i, h.start);
|
|
159
173
|
C && e.push(o(a) + C);
|
|
160
174
|
}
|
|
161
|
-
let Z = ((T = h.next_sibling) == null ? void 0 : T.type) !==
|
|
162
|
-
if (h.type ===
|
|
175
|
+
let Z = ((T = h.next_sibling) == null ? void 0 : T.type) !== u.DECLARATION;
|
|
176
|
+
if (h.type === u.DECLARATION) {
|
|
163
177
|
let C = F(h), J = Z ? M : b;
|
|
164
178
|
e.push(o(a) + C + J);
|
|
165
|
-
} else h.type ===
|
|
166
|
-
|
|
179
|
+
} else h.type === u.STYLE_RULE ? (i !== void 0 && e.length !== 0 && e.push(p), e.push(U(h))) : h.type === u.AT_RULE && (i !== void 0 && e.length !== 0 && e.push(p), e.push(o(a) + $(h)));
|
|
180
|
+
i = h.end;
|
|
167
181
|
}
|
|
168
|
-
let
|
|
169
|
-
return
|
|
182
|
+
let n = f(i, t.end);
|
|
183
|
+
return n && e.push(o(a) + n), a--, e.push(o(a) + g), e.join(E);
|
|
170
184
|
}
|
|
171
|
-
function
|
|
172
|
-
var
|
|
185
|
+
function U(t) {
|
|
186
|
+
var s, r;
|
|
173
187
|
let e = [];
|
|
174
|
-
if (((
|
|
175
|
-
let
|
|
176
|
-
|
|
188
|
+
if (((s = t.first_child) == null ? void 0 : s.type) === u.SELECTOR_LIST) {
|
|
189
|
+
let l = K(t.first_child), i = f(t.first_child.end, (r = t.block) == null ? void 0 : r.start);
|
|
190
|
+
i && (l += E + o(a) + i), l += c + d, t.block && (t.block.has_children || f(t.block.start, t.block.end)) || (l += g), e.push(l);
|
|
177
191
|
}
|
|
178
|
-
return t.block && (t.block.has_children ||
|
|
192
|
+
return t.block && (t.block.has_children || f(t.block.start, t.block.end)) && e.push(j(t.block)), e.join(E);
|
|
179
193
|
}
|
|
180
194
|
function V(t) {
|
|
181
|
-
return t.replace(/\s*([:,])/g, t.toLowerCase().includes("selector(") ? "$1" : "$1 ").replace(/\)([a-zA-Z])/g, ") $1").replace(/\s*(=>|<=)\s*/g, " $1 ").replace(/([^<>=\s])([<>])([^<>=\s])/g, `$1${
|
|
182
|
-
let
|
|
183
|
-
return `calc(${
|
|
195
|
+
return t.replace(/\s*([:,])/g, t.toLowerCase().includes("selector(") ? "$1" : "$1 ").replace(/\)([a-zA-Z])/g, ") $1").replace(/\s*(=>|<=)\s*/g, " $1 ").replace(/([^<>=\s])([<>])([^<>=\s])/g, `$1${c}$2${c}$3`).replace(/\s+/g, c).replace(/calc\(\s*([^()+\-*/]+)\s*([*/+-])\s*([^()+\-*/]+)\s*\)/g, (e, s, r, l) => {
|
|
196
|
+
let i = r === "+" || r === "-" ? _ : c;
|
|
197
|
+
return `calc(${s.trim()}${i}${r}${i}${l.trim()})`;
|
|
184
198
|
}).replace(/selector|url|supports|layer\(/gi, (e) => e.toLowerCase());
|
|
185
199
|
}
|
|
186
|
-
function
|
|
187
|
-
let e = [],
|
|
188
|
-
return t.prelude &&
|
|
200
|
+
function $(t) {
|
|
201
|
+
let e = [], s = ["@", t.name.toLowerCase()];
|
|
202
|
+
return t.prelude && s.push(_, V(t.prelude.text)), t.block === null ? s.push(b) : (s.push(c, d), !t.block.is_empty || f(t.block.start, t.block.end) || s.push(g)), e.push(s.join(p)), t.block !== null && (!t.block.is_empty || f(t.block.start, t.block.end)) && e.push(j(t.block)), e.join(E);
|
|
189
203
|
}
|
|
190
204
|
function q(t) {
|
|
191
|
-
let e = [],
|
|
192
|
-
if (
|
|
193
|
-
return
|
|
194
|
-
let
|
|
195
|
-
if (
|
|
196
|
-
let
|
|
197
|
-
|
|
205
|
+
let e = [], s = t.children;
|
|
206
|
+
if (s.length === 0)
|
|
207
|
+
return f(0, t.end, 0);
|
|
208
|
+
let r = s[0];
|
|
209
|
+
if (r) {
|
|
210
|
+
let n = f(0, r.start, 0);
|
|
211
|
+
n && e.push(n);
|
|
198
212
|
}
|
|
199
|
-
let
|
|
200
|
-
for (let
|
|
201
|
-
if (
|
|
202
|
-
let T =
|
|
213
|
+
let l;
|
|
214
|
+
for (let n of t) {
|
|
215
|
+
if (l !== void 0) {
|
|
216
|
+
let T = f(l, n.start, 0);
|
|
203
217
|
T && e.push(T);
|
|
204
218
|
}
|
|
205
|
-
|
|
219
|
+
n.type === u.STYLE_RULE ? e.push(U(n)) : n.type === u.AT_RULE && e.push($(n)), l = n.end, n.has_next && (n.next_sibling && f(n.end, n.next_sibling.start, 0) || e.push(p));
|
|
206
220
|
}
|
|
207
|
-
let
|
|
208
|
-
return
|
|
221
|
+
let i = f(l, t.end, 0);
|
|
222
|
+
return i && e.push(i), e.join(E);
|
|
209
223
|
}
|
|
210
|
-
return q(
|
|
224
|
+
return q(Q).trimEnd();
|
|
211
225
|
}
|
|
212
|
-
function
|
|
213
|
-
return
|
|
226
|
+
function ft(R) {
|
|
227
|
+
return ct(R, { minify: !0 });
|
|
214
228
|
}
|
|
215
229
|
export {
|
|
216
|
-
|
|
217
|
-
|
|
230
|
+
ct as format,
|
|
231
|
+
ft as minify
|
|
218
232
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@projectwallace/format-css",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"description": "Fast, small, zero-config library to format or minify CSS with basic rules.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -60,6 +60,6 @@
|
|
|
60
60
|
"singleQuote": true
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@projectwallace/css-parser": "^0.
|
|
63
|
+
"@projectwallace/css-parser": "^0.13.0"
|
|
64
64
|
}
|
|
65
65
|
}
|