1 var Stream = require('stream');
3 function prop(propName) {
4 return function (data) {
9 module.exports = unique;
10 function unique(propName) {
11 var keyfn = JSON.stringify;
12 if (typeof propName === 'string') {
13 keyfn = prop(propName);
14 } else if (typeof propName === 'function') {
23 s.write = function (data) {
24 var key = keyfn(data);
25 if (seen[key] === undefined) {
32 s.end = function (data) {
33 if (arguments.length) s.write(data);
35 if (ended === pipes || pipes === 0) {
41 s.destroy = function (data) {
45 s.on('pipe', function () {
49 s.on('unpipe', function () {