# vinyl-source-stream

> Use conventional text streams at the start of your gulp or vinyl pipelines

Latest version **2.0.0** (published 2017-12-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install vinyl-source-stream
pnpm add vinyl-source-stream
yarn add vinyl-source-stream
bun add vinyl-source-stream
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2017-12-23 |
| First published | 2014-01-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/vinyl-source-stream) |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 332 |
| Author | Hugh Kennedy |
| Maintainers | phated, hughsk |
| Keywords | vinyl, gulp, gulpfriendly, vanilla, stream, string, text, classic |

## Links

- npm: https://www.npmjs.com/package/vinyl-source-stream
- Repository: https://github.com/hughsk/vinyl-source-stream
- Issues: https://github.com/hughsk/vinyl-source-stream/issues
- npm.io page: https://npm.io/package/vinyl-source-stream

## Dependencies (2)

- [vinyl](https://npm.io/package/vinyl.md) ^2.1.0
- [through2](https://npm.io/package/through2.md) ^2.0.3

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 2.0.0 (latest) — 2017-12-23
- 1.1.2 — 2017-12-23
- 1.1.1 — 2017-12-22
- 1.1.0 — 2015-03-06
- 1.0.0 — 2014-09-07
- 0.1.1 — 2014-02-15
- 0.1.0 — 2014-02-15
- 0.0.0 — 2014-01-11

## README

# vinyl-source-stream [![Flattr this!](https://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=hughskennedy&url=http://github.com/hughsk/vinyl-source-stream&title=vinyl-source-stream&description=hughsk/vinyl-source-stream%20on%20GitHub&language=en_GB&tags=flattr,github,javascript&category=software)[![experimental](http://hughsk.github.io/stability-badges/dist/experimental.svg)](http://github.com/hughsk/stability-badges) #

Use conventional text streams at the start of your
[gulp](http://github.com/gulpjs/gulp) or
[vinyl](http://github.com/wearefractal/vinyl) pipelines, making for nicer
interoperability with the existing npm stream ecosystem.

Take, for example, [browserify](http://browserify.org/). There are the
[gulp-browserify](https://github.com/deepak1556/gulp-browserify) and
[gulpify](https://github.com/hughsk/gulpify) plugins, which you can use in
combination with gulp to get browserify working in your build. Unfortunately,
these plugins come with additional overhead: an extra GitHub repository, npm
module, maintainer, tests, semantics, etc. It's much simpler
in this case to use the original module directly where you can, which is what
`vinyl-source-stream` handles for you.

## Usage ##

[![vinyl-source-stream](https://nodei.co/npm/vinyl-source-stream.png?mini=true)](https://nodei.co/npm/vinyl-source-stream)

Our previous example, browserify, has a streaming API for its output bundles
which you can use directly. This module is just a bridge that makes it
simple to use conventional text streams such as this in combination with gulp.
Here's an example of using `vinyl-source-stream` and `browserify`, compared to
using `gulpify`:

``` javascript
var source = require('vinyl-source-stream')
var streamify = require('gulp-streamify')
var browserify = require('browserify')
var uglify = require('gulp-uglify')
var gulpify = require('gulpify')
var rename = require('gulp-rename')
var gulp = require('gulp')

// using gulpify:
gulp.task('gulpify', function() {
  gulp.src('index.js')
    .pipe(gulpify())
    .pipe(uglify())
    .pipe(rename('bundle.js'))
    .pipe(gulp.dest('./'))
})

// using vinyl-source-stream:
gulp.task('browserify', function() {
  var bundleStream = browserify('./index.js').bundle()

  bundleStream
    .pipe(source('index.js'))
    .pipe(streamify(uglify()))
    .pipe(rename('bundle.js'))
    .pipe(gulp.dest('./'))
})
```

Not all that different, really! The nice thing here is that you're getting the
up-to-date browserify API and don't have to worry about the plugin's available
functionality. Of course, these same benefits apply for any readable text
stream you can find on npm.

## API ##

### `stream = sourceStream([filename])` ###

Creates a through stream which takes text as input, and emits a single
vinyl file instance for streams down the pipeline to consume.

`filename` is a "pretend" filename to use for your file, which some streams
might use to determine various factors such as the final filename of your file.
It should be a string, and though recommended, using this argument is optional.

## License ##

MIT. See [LICENSE.md](http://github.com/hughsk/vinyl-source-stream/blob/master/LICENSE.md) for details.

---
_Source: https://npm.io/package/vinyl-source-stream · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
