Skip to content

Commit d322f64

Browse files
committed
feat(config): support file filter
1 parent 179661c commit d322f64

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

src/index.ts

+24-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ interface Compilation {
1313
assets: { [key: string]: Asset }
1414
}
1515

16+
interface Config {
17+
filter?(fileName: string): boolean
18+
}
19+
1620
export default class Plugin
1721
{
1822
static addStyle(html: string, style: string) {
@@ -26,17 +30,35 @@ export default class Plugin
2630
);
2731
}
2832

33+
private config: Config;
34+
2935
private css: File = {};
36+
3037
private html: File = {};
3138

39+
constructor(config: Config) {
40+
this.config = config;
41+
}
42+
43+
private filter(fileName: string): boolean {
44+
if (typeof this.config.filter === 'function') {
45+
return this.config.filter(fileName);
46+
} else {
47+
return true;
48+
}
49+
}
50+
3251
private prepare({ assets }: Compilation) {
3352
const isCSS = is('css');
3453
const isHTML = is('html');
3554

3655
Object.keys(assets).forEach((fileName) => {
3756
if (isCSS(fileName)) {
38-
this.css[fileName] = assets[fileName].source();
39-
delete assets[fileName];
57+
const isCurrentFileNeedsToBeInlined = this.filter(fileName);
58+
if (isCurrentFileNeedsToBeInlined) {
59+
this.css[fileName] = assets[fileName].source();
60+
delete assets[fileName];
61+
}
4062
} else if (isHTML(fileName)) {
4163
this.html[fileName] = assets[fileName].source();
4264
}

0 commit comments

Comments
 (0)