summaryrefslogtreecommitdiff
path: root/node_modules/doiuse/lib/stream/SourceMapTransform.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/doiuse/lib/stream/SourceMapTransform.js')
-rw-r--r--node_modules/doiuse/lib/stream/SourceMapTransform.js74
1 files changed, 0 insertions, 74 deletions
diff --git a/node_modules/doiuse/lib/stream/SourceMapTransform.js b/node_modules/doiuse/lib/stream/SourceMapTransform.js
deleted file mode 100644
index 6295b1d3..00000000
--- a/node_modules/doiuse/lib/stream/SourceMapTransform.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/* eslint-disable no-underscore-dangle */
-import { Transform } from 'node:stream';
-
-const NEW_LINE_CHAR = '\n'.codePointAt(0);
-
-/**
- * @typedef {Object} SourceMapTransformation
- * @prop {number} line
- * @prop {number} column
- * @prop {string} content
- */
-
-export default class SourceMapTransform extends Transform {
- constructor() {
- super({ objectMode: true });
- }
-
- /**
- * @type {?{location:[number,number], buffers: Buffer[]}}
- * buffer for the current incoming rule.
- */
- #current = null;
-
- /** track depth to handle rules nested in at-rules. */
- #depth = 0;
-
- /** track this and pass it downstream for source mapping. */
- #line = 1;
-
- /** track this and pass it downstream for source mapping. */
- #column = 1;
-
- /**
- * @param {[string,Buffer]} chunk
- * @param {any} encoding
- * @param {Function} callback
- */
- _transform([type, buf], encoding, callback) {
- if ((type === 'rule_start' || type === 'atrule_start')) {
- this.#depth += 1;
- }
- if (this.#depth > 0 && !this.#current) {
- this.#current = { location: [this.#line, this.#column], buffers: [] };
- }
- if (type === 'rule_end' || type === 'atrule_end') {
- this.#depth -= 1;
- }
-
- if (this.#current) {
- this.#current.buffers.push(buf);
- if (this.#depth === 0) {
- // Push rule
- this.push({
- line: this.#current.location[0],
- column: this.#current.location[1],
- content: Buffer.concat(this.#current.buffers).toString(),
- });
- this.#current = null;
- }
- }
-
- // Update position
- for (const char of buf) {
- if (char === NEW_LINE_CHAR) {
- this.#line += 1;
- this.#column = 1;
- } else {
- this.#column += 1;
- }
- }
-
- callback();
- }
-}