Skip to content

Commit 3808b07

Browse files
committed
track and return retained selectors: {css, sels}
1 parent acbb30a commit 3808b07

File tree

6 files changed

+33
-18
lines changed

6 files changed

+33
-18
lines changed

dist/dropcss.cjs.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ function stripEmptyAts(css) {
382382
return css.replace(/@[a-z-]+[^{]+\{\s*\}/gm, '');
383383
}
384384

385-
function generate(tokens) {
385+
function generate(tokens, kept) {
386386
var out = '', lastSelsLen = 0;
387387

388388
for (var i = 0; i < tokens.length; i++) {
@@ -393,8 +393,10 @@ function generate(tokens) {
393393
var sels = tokens[++i];
394394
lastSelsLen = sels.length;
395395

396-
if (lastSelsLen > 0)
397-
{ out += sels.join(); }
396+
if (lastSelsLen > 0) {
397+
sels.forEach(function (s) { return kept.add(s); });
398+
out += sels.join();
399+
}
398400
break;
399401
case PROPERTIES:
400402
if (lastSelsLen > 0)
@@ -986,7 +988,9 @@ function dropcss(opts) {
986988
}
987989
}
988990

989-
var out = generate(tokens);
991+
var kept = new Set();
992+
993+
var out = generate(tokens, kept);
990994

991995
out = dropKeyFrames(out, shouldDrop);
992996

@@ -995,7 +999,8 @@ function dropcss(opts) {
995999
// log.forEach(e => console.log(e[0], e[1]));
9961000

9971001
return {
998-
css: stripEmptyAts(out)
1002+
css: stripEmptyAts(out),
1003+
sels: kept,
9991004
};
10001005
}
10011006

dist/dropcss.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@
386386
return css.replace(/@[a-z-]+[^{]+\{\s*\}/gm, '');
387387
}
388388

389-
function generate(tokens) {
389+
function generate(tokens, kept) {
390390
var out = '', lastSelsLen = 0;
391391

392392
for (var i = 0; i < tokens.length; i++) {
@@ -397,8 +397,10 @@
397397
var sels = tokens[++i];
398398
lastSelsLen = sels.length;
399399

400-
if (lastSelsLen > 0)
401-
{ out += sels.join(); }
400+
if (lastSelsLen > 0) {
401+
sels.forEach(function (s) { return kept.add(s); });
402+
out += sels.join();
403+
}
402404
break;
403405
case PROPERTIES:
404406
if (lastSelsLen > 0)
@@ -990,7 +992,9 @@
990992
}
991993
}
992994

993-
var out = generate(tokens);
995+
var kept = new Set();
996+
997+
var out = generate(tokens, kept);
994998

995999
out = dropKeyFrames(out, shouldDrop);
9961000

@@ -999,7 +1003,8 @@
9991003
// log.forEach(e => console.log(e[0], e[1]));
10001004

10011005
return {
1002-
css: stripEmptyAts(out)
1006+
css: stripEmptyAts(out),
1007+
sels: kept,
10031008
};
10041009
}
10051010

dist/dropcss.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)