Skip to content

Commit 5102e43

Browse files
authored
list counts per selectors/rule or declarations/rule, closes #237 (#238)
1 parent 214b6bf commit 5102e43

14 files changed

+619
-39
lines changed

benchmark/run.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ import byteSize from './format-filesize.js'
22
import { analyze as analyzeCss } from '../dist/analyzer.modern.js'
33
import * as fs from 'fs'
44
const files = [
5-
['bol-com-20190617', 'Bol.com', 117],
6-
['bootstrap-5.0.0', 'Bootstrap 5.0.0', 49],
7-
['cnn-20220403', 'CNN', 370],
8-
['css-tricks-20190319', 'CSS-Tricks', 54],
9-
['facebook-20190319', 'Facebook.com', 73],
10-
['github-20210501', 'GitHub.com', 93],
11-
['gazelle-20210905', 'Gazelle.nl', 303],
12-
['lego-20190617', 'Lego.com', 59],
13-
['smashing-magazine-20190319', 'Smashing Magazine.com', 290],
14-
['trello-20190617', 'Trello.com', 82]
5+
['bol-com-20190617', 'Bol.com', 115],
6+
['bootstrap-5.0.0', 'Bootstrap 5.0.0', 47],
7+
['cnn-20220403', 'CNN', 352],
8+
['css-tricks-20190319', 'CSS-Tricks', 51],
9+
['facebook-20190319', 'Facebook.com', 69],
10+
['github-20210501', 'GitHub.com', 91],
11+
['gazelle-20210905', 'Gazelle.nl', 300],
12+
['lego-20190617', 'Lego.com', 53],
13+
['smashing-magazine-20190319', 'Smashing Magazine.com', 285],
14+
['trello-20190617', 'Trello.com', 80],
1515
]
1616

1717
let maxLen = -1

src/__fixtures__/bol-com-20190617.json

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3777,7 +3777,35 @@
37773777
1,
37783778
1,
37793779
151
3780-
]
3780+
],
3781+
"unique": {
3782+
"1": 2601,
3783+
"2": 404,
3784+
"3": 50,
3785+
"4": 226,
3786+
"5": 190,
3787+
"6": 20,
3788+
"7": 3,
3789+
"8": 15,
3790+
"9": 1,
3791+
"10": 12,
3792+
"12": 4,
3793+
"13": 1,
3794+
"18": 1,
3795+
"19": 1,
3796+
"20": 23,
3797+
"27": 1,
3798+
"28": 1,
3799+
"29": 1,
3800+
"36": 1,
3801+
"40": 4,
3802+
"42": 1,
3803+
"151": 1,
3804+
"160": 1,
3805+
"640": 1
3806+
},
3807+
"totalUnique": 24,
3808+
"uniquenessRatio": 0.006734006734006734
37813809
},
37823810
"declarations": {
37833811
"min": 0,
@@ -7352,7 +7380,31 @@
73527380
1,
73537381
1,
73547382
1
7355-
]
7383+
],
7384+
"unique": {
7385+
"0": 1,
7386+
"1": 2088,
7387+
"2": 595,
7388+
"3": 277,
7389+
"4": 161,
7390+
"5": 102,
7391+
"6": 80,
7392+
"7": 64,
7393+
"8": 51,
7394+
"9": 46,
7395+
"10": 33,
7396+
"11": 27,
7397+
"12": 6,
7398+
"13": 11,
7399+
"14": 10,
7400+
"15": 5,
7401+
"16": 4,
7402+
"17": 1,
7403+
"19": 1,
7404+
"23": 1
7405+
},
7406+
"totalUnique": 20,
7407+
"uniquenessRatio": 0.005611672278338945
73567408
}
73577409
},
73587410
"selectors": {

src/__fixtures__/bootstrap-5.0.0.json

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2430,7 +2430,19 @@
24302430
1,
24312431
1,
24322432
1
2433-
]
2433+
],
2434+
"unique": {
2435+
"1": 1976,
2436+
"2": 250,
2437+
"3": 12,
2438+
"4": 17,
2439+
"5": 34,
2440+
"6": 2,
2441+
"7": 3,
2442+
"12": 2
2443+
},
2444+
"totalUnique": 8,
2445+
"uniquenessRatio": 0.003484320557491289
24342446
},
24352447
"declarations": {
24362448
"min": 1,
@@ -4737,7 +4749,31 @@
47374749
1,
47384750
1,
47394751
1
4740-
]
4752+
],
4753+
"unique": {
4754+
"1": 1471,
4755+
"2": 503,
4756+
"3": 154,
4757+
"4": 59,
4758+
"5": 29,
4759+
"6": 12,
4760+
"7": 15,
4761+
"8": 7,
4762+
"9": 22,
4763+
"10": 4,
4764+
"11": 4,
4765+
"12": 2,
4766+
"13": 3,
4767+
"14": 3,
4768+
"15": 2,
4769+
"16": 1,
4770+
"17": 2,
4771+
"21": 1,
4772+
"24": 1,
4773+
"26": 1
4774+
},
4775+
"totalUnique": 20,
4776+
"uniquenessRatio": 0.008710801393728223
47414777
}
47424778
},
47434779
"selectors": {

src/__fixtures__/cnn-20220403.json

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11995,7 +11995,37 @@
1199511995
1,
1199611996
1,
1199711997
1
11998-
]
11998+
],
11999+
"unique": {
12000+
"1": 7760,
12001+
"2": 1470,
12002+
"3": 762,
12003+
"4": 298,
12004+
"5": 153,
12005+
"6": 209,
12006+
"7": 6,
12007+
"8": 74,
12008+
"9": 32,
12009+
"10": 20,
12010+
"11": 8,
12011+
"12": 36,
12012+
"13": 23,
12013+
"14": 8,
12014+
"15": 2,
12015+
"16": 25,
12016+
"17": 1,
12017+
"18": 7,
12018+
"20": 6,
12019+
"22": 3,
12020+
"24": 7,
12021+
"26": 8,
12022+
"30": 1,
12023+
"32": 2,
12024+
"42": 6,
12025+
"116": 1
12026+
},
12027+
"totalUnique": 26,
12028+
"uniquenessRatio": 0.0023792093704245974
1199912029
},
1200012030
"declarations": {
1200112031
"min": 0,
@@ -22934,7 +22964,38 @@
2293422964
1,
2293522965
1,
2293622966
3
22937-
]
22967+
],
22968+
"unique": {
22969+
"0": 6,
22970+
"1": 5880,
22971+
"2": 1621,
22972+
"3": 1017,
22973+
"4": 539,
22974+
"5": 703,
22975+
"6": 401,
22976+
"7": 242,
22977+
"8": 154,
22978+
"9": 108,
22979+
"10": 72,
22980+
"11": 48,
22981+
"12": 29,
22982+
"13": 34,
22983+
"14": 17,
22984+
"15": 21,
22985+
"16": 12,
22986+
"17": 6,
22987+
"18": 3,
22988+
"20": 4,
22989+
"21": 1,
22990+
"22": 5,
22991+
"24": 1,
22992+
"25": 1,
22993+
"26": 1,
22994+
"29": 1,
22995+
"31": 1
22996+
},
22997+
"totalUnique": 27,
22998+
"uniquenessRatio": 0.002470717423133236
2293822999
}
2293923000
},
2294023001
"selectors": {

src/__fixtures__/css-tricks-20190319.json

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1712,7 +1712,26 @@
17121712
1,
17131713
1,
17141714
4
1715-
]
1715+
],
1716+
"unique": {
1717+
"1": 1156,
1718+
"2": 236,
1719+
"3": 65,
1720+
"4": 47,
1721+
"5": 3,
1722+
"6": 15,
1723+
"7": 10,
1724+
"8": 15,
1725+
"10": 1,
1726+
"11": 1,
1727+
"12": 8,
1728+
"14": 2,
1729+
"16": 2,
1730+
"22": 1,
1731+
"24": 1
1732+
},
1733+
"totalUnique": 15,
1734+
"uniquenessRatio": 0.009596928982725527
17161735
},
17171736
"declarations": {
17181737
"min": 0,
@@ -3286,7 +3305,35 @@
32863305
10,
32873306
3,
32883307
5
3289-
]
3308+
],
3309+
"unique": {
3310+
"0": 2,
3311+
"1": 668,
3312+
"2": 330,
3313+
"3": 177,
3314+
"4": 106,
3315+
"5": 60,
3316+
"6": 50,
3317+
"7": 30,
3318+
"8": 39,
3319+
"9": 25,
3320+
"10": 26,
3321+
"11": 10,
3322+
"12": 5,
3323+
"13": 9,
3324+
"14": 2,
3325+
"15": 4,
3326+
"16": 4,
3327+
"17": 3,
3328+
"18": 3,
3329+
"19": 5,
3330+
"20": 1,
3331+
"21": 2,
3332+
"22": 1,
3333+
"24": 1
3334+
},
3335+
"totalUnique": 24,
3336+
"uniquenessRatio": 0.015355086372360844
32903337
}
32913338
},
32923339
"selectors": {

src/__fixtures__/facebook-20190319.json

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4390,7 +4390,21 @@
43904390
1,
43914391
1,
43924392
1
4393-
]
4393+
],
4394+
"unique": {
4395+
"1": 4016,
4396+
"2": 153,
4397+
"3": 42,
4398+
"4": 8,
4399+
"5": 5,
4400+
"6": 5,
4401+
"7": 3,
4402+
"9": 1,
4403+
"10": 1,
4404+
"12": 1
4405+
},
4406+
"totalUnique": 10,
4407+
"uniquenessRatio": 0.0023612750885478157
43944408
},
43954409
"declarations": {
43964410
"min": 1,
@@ -8636,7 +8650,27 @@
86368650
1,
86378651
1,
86388652
1
8639-
]
8653+
],
8654+
"unique": {
8655+
"1": 2871,
8656+
"2": 472,
8657+
"3": 496,
8658+
"4": 204,
8659+
"5": 49,
8660+
"6": 48,
8661+
"7": 40,
8662+
"8": 23,
8663+
"9": 10,
8664+
"10": 5,
8665+
"11": 5,
8666+
"12": 5,
8667+
"13": 2,
8668+
"14": 3,
8669+
"15": 1,
8670+
"16": 1
8671+
},
8672+
"totalUnique": 16,
8673+
"uniquenessRatio": 0.0037780401416765055
86408674
}
86418675
},
86428676
"selectors": {

0 commit comments

Comments
 (0)