summaryrefslogtreecommitdiff
path: root/node_modules/doiuse/lib/stream/RuleUsageTransform.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:10:59 +0800
committerlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:41:44 +0800
commitfc87c009806dcc98867f6b58efe29b042aa01dee (patch)
tree8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/doiuse/lib/stream/RuleUsageTransform.js
parent3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff)
node: updatemain
Diffstat (limited to 'node_modules/doiuse/lib/stream/RuleUsageTransform.js')
-rw-r--r--node_modules/doiuse/lib/stream/RuleUsageTransform.js80
1 files changed, 0 insertions, 80 deletions
diff --git a/node_modules/doiuse/lib/stream/RuleUsageTransform.js b/node_modules/doiuse/lib/stream/RuleUsageTransform.js
deleted file mode 100644
index a2a79d4d..00000000
--- a/node_modules/doiuse/lib/stream/RuleUsageTransform.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/* eslint-disable no-underscore-dangle */
-import { Transform } from 'node:stream';
-
-import postcss from 'postcss';
-import sourcemap from 'source-map';
-
-import DoIUse from '../DoIUse.js';
-
-/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */
-/** @typedef {import('./SourceMapTransform.js').SourceMapTransformation} SourceMapTransformation */
-
-export default class RuleUsageTransform extends Transform {
- /** @type {import("postcss").Processor} */
- #processor;
-
- #skipErrors;
-
- #filename;
-
- /**
- * @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 = '<streaming css input>') {
- super({
- objectMode: true,
- });
- this.#processor = postcss([new DoIUse({
- browsers: options.browsers,
- ignore: options.ignore,
- onFeatureUsage: (usage) => {
- this.push(usage);
- },
- })]);
- this.#filename = filename;
- this.#skipErrors = options.skipErrors;
- }
-
- /**
- * @param {SourceMapTransformation} rule
- * @param {any} encoding
- * @param {Function} callback
- */
- async _transform(rule, encoding, callback) {
- let caughtError;
- try {
- const mapper = new sourcemap.SourceMapGenerator();
- const lines = rule.content.split('\n');
- let oline = rule.line;
- let ocol = rule.column;
- for (const [lineNumber, content] of lines.entries()) {
- mapper.addMapping({
- generated: { line: lineNumber + 1, column: 1 },
- original: { line: oline, column: ocol },
- source: this.#filename,
- });
- mapper.addMapping({
- generated: { line: lineNumber + 1, column: content.length },
- original: { line: oline, column: ocol + content.length },
- source: this.#filename,
- });
- oline += 1;
- ocol = 1;
- }
- await this.#processor.process(rule.content, {
- from: this.#filename, map: { prev: mapper.toString() },
- });
- } catch (error) {
- if (this.#skipErrors) {
- this.emit('warning', error);
- } else {
- caughtError = error;
- }
- }
- callback(caughtError);
- }
-}