diff --git a/lib/SourceMapSource.js b/lib/SourceMapSource.js index fd4a8f2..88a7cb8 100644 --- a/lib/SourceMapSource.js +++ b/lib/SourceMapSource.js @@ -158,6 +158,11 @@ class SourceMapSource extends Source { ]; } + buffer() { + this._ensureValueBuffer(); + return this._valueAsBuffer; + } + source() { this._ensureValueString(); return this._valueAsString; diff --git a/test/SourceMapSource.js b/test/SourceMapSource.js index 0c5b878..875c6b8 100644 --- a/test/SourceMapSource.js +++ b/test/SourceMapSource.js @@ -426,4 +426,27 @@ describe("SourceMapSource", () => { } `); }); + + it("provides buffer when backed by string", () => { + const sourceMapSource = new SourceMapSource("source", "name"); + + const buffer1 = sourceMapSource.buffer(); + expect(buffer1.length).toBe(6); + + const buffer2 = sourceMapSource.buffer(); + expect(buffer2).toBe(buffer1); + }); + + it("provides buffer when backed by buffer", () => { + const sourceMapSource = new SourceMapSource( + Buffer.from("source", "utf-8"), + "name" + ); + + const buffer1 = sourceMapSource.buffer(); + expect(buffer1.length).toBe(6); + + const buffer2 = sourceMapSource.buffer(); + expect(buffer2).toBe(buffer1); + }); });