New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

asset-pipe-js-reader

Package Overview
Dependencies
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

asset-pipe-js-reader - npm Package Compare versions

Comparing version 1.0.0-beta.1 to 1.0.0-beta.2

87

lib/reader.js

@@ -9,41 +9,74 @@ 'use strict';

const depsSort = require('deps-sort');
const pump = require('pump');
module.exports = class Reader {
/**
*
* We need to manipulate order in all bundles to make sure that the
* order is an increased value accross all bundles.
*
*/
class Order extends stream.Transform {
constructor () {
super({
objectMode: true
});
this.order = 0;
}
_transform (obj, encoding, next) {
if (!isUndefined(obj.order)) {
obj.order = this.order;
this.order += 1;
}
this.push(obj);
next();
}
}
module.exports = class Reader extends pack {
constructor (streams = []) {
super({ raw: true });
// Merge all file streams into one stream
const merged = mergeStream();
streams.forEach((strm) => {
merged.add(strm.pipe(JSONStream.parse('*')));
strm.on('error', (error) => {
this.emit('error', error);
});
strm.on('file found', () => {
this.emit('file found');
merged.add(strm.pipe(JSONStream.parse('*')));
});
strm.on('file not found', () => {
this.emit('file not found');
});
});
if (merged.isEmpty()) {
// console.log('stream empty');
}
// we need to manipulate order in all bundles to make sure that the
// order is an increased value accross all bundles.
let order = 0;
const fixOrder = new stream.Transform({
objectMode: true,
transform (obj, encoding, next) {
if (!isUndefined(obj.order)) {
obj.order = order;
order += 1;
}
this.push(obj);
next();
},
// If the merged file stream yelded empty, we can not continue
setImmediate(() => {
if (merged.isEmpty()) {
return this.emit('pipeline empty');
}
this.emit('pipeline ready');
});
// Set up the pipeline
const order = new Order();
const sort = depsSort({ dedupe: true });
const packer = pack({ raw: true });
return pump(merged, fixOrder, sort, packer, (error) => {
if (error) {
console.log(error);
}
});
merged.on('error', (error) => {
this.emit('error', error);
})
.pipe(order)
.on('error', (error) => {
this.emit('error', error);
})
.pipe(sort)
.on('error', (error) => {
this.emit('error', error);
})
.pipe(this);
}
};
{
"name": "asset-pipe-js-reader",
"version": "1.0.0-beta.1",
"version": "1.0.0-beta.2",
"author": {

@@ -34,9 +34,8 @@ "name": "Trygve Lie",

"merge-stream": "1.0.1",
"pump": "1.0.2",
"readable-stream": "2.2.6"
"readable-stream": "2.2.9"
},
"devDependencies": {
"eslint": "^3.15.0",
"eslint": "^3.19.0",
"eslint-config-finn": "^1.0.1",
"tap": "10.3.0"
"tap": "10.3.2"
},

@@ -43,0 +42,0 @@ "scripts": {

@@ -33,3 +33,3 @@ # asset-pipe-js-reader

```bash
$ npm install asset-pipe-js-writer
$ npm install asset-pipe-js-reader
```

@@ -40,13 +40,19 @@

Make an JavaScript bundle out of two asset feeds stored as JSON and save it as a file:
Make an JavaScript bundle out of two asset feeds stored on a filesystem:
```js
const Reader = require('asset-pipe-js-reader');
const fs = require('fs');
const SinkFs = require('asset-pipe-sink-fs');
const feedA = fs.createReadStream('./feed/a.json');
const feedB = fs.createReadStream('./feed/b.json');
const sink = new SinkFs({
path: './assets'
});
const feedA = sink.reader('a.json');
const feedB = sink.reader('b.json');
const reader = new Reader([feedA, feedB]);
reader.pipe(fs.createWriteStream('./build/browser.bundle.js'));
reader.on('pipeline ready', () => {
reader.pipe(fs.createWriteStream('./build/browser.bundle.js'));
});
```

@@ -64,3 +70,3 @@

* `streams` - Array - An Array of streams .
* `streams` - Array - An Array of file reader streams. Must be from one of the asset pipe sinks.

@@ -71,2 +77,14 @@ Returns a `Transform stream`.

## Events:
This module emit the following events:
- `error` - When an error occured in the pipeline. Emits with: `error`.
- `file found` - When a file we want to read is found.
- `file not saved` - When a file we want to read is not found. Emits with: `error`.
- `pipeline ready` - When the pipeline is ready to start bundling asset feeds.
- `pipeline empty` - When the pipeline is empty. Iow; it could not load any of the files its supposed to read so there it nothing to produce.
## License

@@ -73,0 +91,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc