37 lines
906 B
JavaScript
37 lines
906 B
JavaScript
|
/*
|
||
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
||
|
Author Tobias Koppers @sokra
|
||
|
*/
|
||
|
|
||
|
"use strict";
|
||
|
|
||
|
const streamChunksOfRawSource = require("./streamChunksOfRawSource");
|
||
|
const streamChunksOfSourceMap = require("./streamChunksOfSourceMap");
|
||
|
|
||
|
module.exports = (source, options, onChunk, onSource, onName) => {
|
||
|
if (typeof source.streamChunks === "function") {
|
||
|
return source.streamChunks(options, onChunk, onSource, onName);
|
||
|
} else {
|
||
|
const sourceAndMap = source.sourceAndMap(options);
|
||
|
if (sourceAndMap.map) {
|
||
|
return streamChunksOfSourceMap(
|
||
|
sourceAndMap.source,
|
||
|
sourceAndMap.map,
|
||
|
onChunk,
|
||
|
onSource,
|
||
|
onName,
|
||
|
!!(options && options.finalSource),
|
||
|
!!(options && options.columns !== false)
|
||
|
);
|
||
|
} else {
|
||
|
return streamChunksOfRawSource(
|
||
|
sourceAndMap.source,
|
||
|
onChunk,
|
||
|
onSource,
|
||
|
onName,
|
||
|
!!(options && options.finalSource)
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
};
|