condenser 1.2 → 1.4
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.
- checksums.yaml +4 -4
- data/lib/condenser/asset.rb +69 -35
- data/lib/condenser/build_cache.rb +22 -9
- data/lib/condenser/context.rb +9 -25
- data/lib/condenser/helpers/parse_helpers.rb +8 -1
- data/lib/condenser/manifest.rb +3 -1
- data/lib/condenser/pipeline.rb +8 -3
- data/lib/condenser/processors/babel_processor.rb +9 -15
- data/lib/condenser/processors/css_media_combiner_processor.rb +81 -0
- data/lib/condenser/processors/js_analyzer.rb +41 -8
- data/lib/condenser/processors/node_processor.rb +1 -0
- data/lib/condenser/processors/purgecss_processor.rb +6 -4
- data/lib/condenser/processors/rollup_processor.rb +38 -36
- data/lib/condenser/resolve.rb +27 -6
- data/lib/condenser/templating_engine/ejs.rb +1 -1
- data/lib/condenser/transformers/dart_sass_transformer.rb +285 -0
- data/lib/condenser/transformers/jst_transformer.rb +67 -17
- data/lib/condenser/transformers/sass/functions.rb +133 -0
- data/lib/condenser/transformers/sass/importer.rb +48 -0
- data/lib/condenser/transformers/sass.rb +4 -0
- data/lib/condenser/transformers/sass_transformer.rb +124 -281
- data/lib/condenser/transformers/svg_transformer/base.rb +26 -0
- data/lib/condenser/transformers/svg_transformer/tag.rb +54 -0
- data/lib/condenser/transformers/svg_transformer/template.rb +151 -0
- data/lib/condenser/transformers/svg_transformer/template_error.rb +2 -0
- data/lib/condenser/transformers/svg_transformer/value.rb +13 -0
- data/lib/condenser/transformers/svg_transformer/var_generator.rb +10 -0
- data/lib/condenser/transformers/svg_transformer.rb +19 -0
- data/lib/condenser/version.rb +1 -1
- data/lib/condenser.rb +17 -5
- data/test/cache_test.rb +157 -18
- data/test/dependency_test.rb +51 -2
- data/test/manifest_test.rb +34 -0
- data/test/minifiers/terser_minifier_test.rb +0 -1
- data/test/minifiers/uglify_minifier_test.rb +0 -1
- data/test/postprocessors/css_media_combiner_test.rb +107 -0
- data/test/postprocessors/purgecss_test.rb +62 -0
- data/test/preprocessor/babel_test.rb +703 -298
- data/test/preprocessor/js_analyzer_test.rb +35 -2
- data/test/processors/rollup_test.rb +50 -20
- data/test/resolve_test.rb +18 -9
- data/test/server_test.rb +15 -10
- data/test/templates/ejs_test.rb +2 -11
- data/test/templates/erb_test.rb +0 -5
- data/test/test_helper.rb +8 -3
- data/test/transformers/dart_scss_test.rb +139 -0
- data/test/transformers/jst_test.rb +165 -21
- data/test/transformers/scss_test.rb +14 -0
- data/test/transformers/svg_test.rb +40 -0
- metadata +23 -6
- data/lib/condenser/transformers/sass_transformer/importer.rb +0 -50
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class MediaCombinerTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
super
|
7
|
+
@env.register_postprocessor('text/css', Condenser::CSSMediaCombinerProcessor)
|
8
|
+
@env.unregister_minifier('text/css')
|
9
|
+
end
|
10
|
+
|
11
|
+
test 'combine media queries' do
|
12
|
+
file 'main.css', <<~CSS
|
13
|
+
.test{
|
14
|
+
display: block;
|
15
|
+
}
|
16
|
+
@media only screen and (max-width: 100px) {
|
17
|
+
.test {
|
18
|
+
display: inline-block;
|
19
|
+
color: blue;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
@media only screen and (max-width: 500px) {
|
23
|
+
.test {
|
24
|
+
display: inline;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
.test2{
|
29
|
+
display: block;
|
30
|
+
}
|
31
|
+
@media only screen and (max-width: 100px) {
|
32
|
+
.test2 {
|
33
|
+
display: inline-block;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
CSS
|
37
|
+
|
38
|
+
assert_exported_file 'main.css', 'text/css', <<~FILE
|
39
|
+
.test{
|
40
|
+
display: block;
|
41
|
+
}
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
.test2{
|
46
|
+
display: block;
|
47
|
+
}
|
48
|
+
@media only screen and (max-width: 100px) {
|
49
|
+
.test {
|
50
|
+
display: inline-block;
|
51
|
+
color: blue;
|
52
|
+
}
|
53
|
+
|
54
|
+
.test2 {
|
55
|
+
display: inline-block;
|
56
|
+
}
|
57
|
+
}@media only screen and (max-width: 500px) {
|
58
|
+
.test {
|
59
|
+
display: inline;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
FILE
|
63
|
+
end
|
64
|
+
|
65
|
+
test 'single line css' do
|
66
|
+
file 'main.css', <<~CSS
|
67
|
+
.test{display: block;} @media only screen and (max-width: 100px) {.test {display: inline-block;}}@media only screen and (max-width: 500px) {.test {display: inline;}}.test2{display: block;}@media only screen and (max-width: 100px) {.test2 {display: inline-block;}}
|
68
|
+
CSS
|
69
|
+
|
70
|
+
assert_exported_file 'main.css', 'text/css', <<~FILE
|
71
|
+
.test{display: block;} .test2{display: block;}@media only screen and (max-width: 100px) {.test {display: inline-block;}.test2 {display: inline-block;}}@media only screen and (max-width: 500px) {.test {display: inline;}}
|
72
|
+
FILE
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
test 'keyframes' do
|
77
|
+
file 'main.css', <<~CSS
|
78
|
+
.trobber {
|
79
|
+
animation: throb 1s infinite;
|
80
|
+
}
|
81
|
+
@keyframes throb {
|
82
|
+
0% {
|
83
|
+
opacity: 1;
|
84
|
+
}
|
85
|
+
100%{
|
86
|
+
opacity: 0;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
CSS
|
90
|
+
|
91
|
+
assert_exported_file 'main.css', 'text/css', <<~FILE
|
92
|
+
.trobber {
|
93
|
+
animation: throb 1s infinite;
|
94
|
+
}
|
95
|
+
@keyframes throb {
|
96
|
+
0% {
|
97
|
+
opacity: 1;
|
98
|
+
}
|
99
|
+
100%{
|
100
|
+
opacity: 0;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
FILE
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
end
|
@@ -79,5 +79,67 @@ class PurgeCSSTest < ActiveSupport::TestCase
|
|
79
79
|
}
|
80
80
|
FILE
|
81
81
|
end
|
82
|
+
|
83
|
+
test 'purge from html with class with /' do
|
84
|
+
file 'main.css', <<~CSS
|
85
|
+
.test{
|
86
|
+
display: block;
|
87
|
+
}
|
88
|
+
.test2-1\\/2{
|
89
|
+
display: inline;
|
90
|
+
}
|
91
|
+
CSS
|
92
|
+
file 'index.html', <<~HTML
|
93
|
+
<div class="test2-1/2"></div>
|
94
|
+
HTML
|
95
|
+
|
96
|
+
assert_exported_file 'main.css', 'text/css', <<~FILE
|
97
|
+
.test2-1\\/2{
|
98
|
+
display: inline;
|
99
|
+
}
|
100
|
+
FILE
|
101
|
+
end
|
102
|
+
|
103
|
+
test 'purge from html with nested tag' do
|
104
|
+
file 'main.css', <<~CSS
|
105
|
+
.test pre{
|
106
|
+
display: block;
|
107
|
+
}
|
108
|
+
CSS
|
109
|
+
file 'index.html', <<~HTML
|
110
|
+
<div class="test">
|
111
|
+
<pre>Test</pre>
|
112
|
+
</div>
|
113
|
+
HTML
|
114
|
+
|
115
|
+
assert_exported_file 'main.css', 'text/css', <<~FILE
|
116
|
+
.test pre{
|
117
|
+
display: block;
|
118
|
+
}
|
119
|
+
FILE
|
120
|
+
end
|
121
|
+
|
122
|
+
test 'purge from html with nested tags' do
|
123
|
+
file 'main.css', <<~CSS
|
124
|
+
code {
|
125
|
+
background: gray;
|
126
|
+
}
|
127
|
+
pre code{
|
128
|
+
background: none;
|
129
|
+
}
|
130
|
+
CSS
|
131
|
+
file 'index.html', <<~HTML
|
132
|
+
<pre><code>Test</code></pre>
|
133
|
+
HTML
|
134
|
+
|
135
|
+
assert_exported_file 'main.css', 'text/css', <<~FILE
|
136
|
+
code {
|
137
|
+
background: gray;
|
138
|
+
}
|
139
|
+
pre code{
|
140
|
+
background: none;
|
141
|
+
}
|
142
|
+
FILE
|
143
|
+
end
|
82
144
|
|
83
145
|
end
|