read-stream.js 690 B

12345678910111213141516171819202122232425262728293031
  1. 'use strict';
  2. var fs = require('graceful-fs');
  3. var removeBomStream = require('remove-bom-stream');
  4. var lazystream = require('lazystream');
  5. var createResolver = require('resolve-options');
  6. function streamFile(file, optResolver, onRead) {
  7. if (typeof optResolver === 'function') {
  8. onRead = optResolver;
  9. optResolver = createResolver();
  10. }
  11. var filePath = file.path;
  12. var removeBOM = optResolver.resolve('removeBOM', file);
  13. file.contents = new lazystream.Readable(function() {
  14. var contents = fs.createReadStream(filePath);
  15. if (removeBOM) {
  16. return contents.pipe(removeBomStream());
  17. }
  18. return contents;
  19. });
  20. onRead();
  21. }
  22. module.exports = streamFile;