diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:50:21 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:50:21 +0800 |
| commit | 0379526e20e1ff212df23e6326741aa9c06df204 (patch) | |
| tree | 340143b0c4dc4280c88ba1591d137b53477005b3 /node_modules/doiuse/lib/stream/CssUsageDuplex.js | |
| parent | 7aba14fb7c970c6e6af82c805db2aef6d70bfe2b (diff) | |
added doiuse plugin for postcss
Diffstat (limited to 'node_modules/doiuse/lib/stream/CssUsageDuplex.js')
| -rw-r--r-- | node_modules/doiuse/lib/stream/CssUsageDuplex.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/doiuse/lib/stream/CssUsageDuplex.js b/node_modules/doiuse/lib/stream/CssUsageDuplex.js new file mode 100644 index 00000000..063ed1dc --- /dev/null +++ b/node_modules/doiuse/lib/stream/CssUsageDuplex.js @@ -0,0 +1,36 @@ +/* eslint-disable no-underscore-dangle */ + +import { pipeline } from 'node:stream'; + +import Tokenize from 'css-tokenize'; +import Duplexify from 'duplexify'; + +import RuleUsageTransform from './RuleUsageTransform.js'; +import SourceMapTransform from './SourceMapTransform.js'; + +/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */ + +export default class CssUsageDuplex extends Duplexify { + /** + * @param {Object} options + * @param {string} options.browsers + * @param {FeatureKeys[]} [options.ignore] + * @param {boolean} [options.skipErrors] + * @param {string} [filename] Filename for outputting source code locations. + */ + constructor(options, filename) { + const streams = [ + new Tokenize(), + new SourceMapTransform(), + new RuleUsageTransform(options, filename), + ]; + pipeline( + // @ts-expect-error Bad typings + ...streams, + () => { + // noop (Error handled by Duplexify) + }, + ); + super(streams[0], streams.at(-1), { objectMode: true }); + } +} |
