UNPKG

1.26 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const stream_1 = require("stream");
5const splitTaggedFilename_1 = tslib_1.__importDefault(require("./splitTaggedFilename"));
6class FilterResourceTag extends stream_1.Transform {
7 constructor(resourceFilterTag) {
8 super({ objectMode: true });
9 this.resourceFilterTag = resourceFilterTag;
10 this.files = new Map();
11 }
12 _transform(file, _, callback) {
13 if (file.isDirectory()) {
14 callback(undefined, file);
15 return;
16 }
17 const { basename, tag } = splitTaggedFilename_1.default(file.basename);
18 if (tag === this.resourceFilterTag ||
19 (tag === undefined && !this.files.has(file.path))) {
20 const newFile = file.clone({ contents: false });
21 newFile.basename = basename;
22 this.files.set(newFile.path, newFile);
23 }
24 callback();
25 }
26 _flush(callback) {
27 for (const file of this.files.values()) {
28 this.push(file);
29 }
30 this.files.clear();
31 callback();
32 }
33}
34function filterResourceTag(tagName) {
35 return new FilterResourceTag(tagName);
36}
37exports.default = filterResourceTag;