Example #1
0
module.exports = function () {
  return split().pipe(pull.map(function (line) {
    var parts = line.split(/\s+/)
    if(parts.shift() !== '!') return
    var event = parts.shift()
    var module = parts.shift()
    if(!/^([\w\-_.0-9]+\/)*[\w\-_.0-9]+@\d+\.\d+\.\d+$/.test(module))
      return console.error('invalid version:', module)

    var m = module.split('@')
    var name = m.shift()
    var version = m.shift()

    var instance = parts.shift()
    data = JSON.parse(parts.join(' '))


    return {
      key: event,
      id: instance,
      module: name,
      version: version,
      value: data
    }

  }))
}
Example #2
0
test('stringify delimits after value', function (t) {
  const pushable = Pushable()

  var i = 0
  pull(
    pushable,
    stringify(),
    split('\n\n', function (value) {
      return value ? JSON.parse(value) : null
    }),
    pull.drain(function (actual) {
      const expected = values[i++]
      t.deepEqual(actual, expected)

      if (i === values.length) {
        pushable.end()
        t.end()
      }
    })
  )

  Object.keys(values).forEach(function (index) {
    pushable.push(values[index])
  })
})
Example #3
0
	movies.load = function() { return function(cb) {
		if(!cb) cb = function(err) { if(err) throw err }
		
		movies.reset()

		debug.movies('loading')

		pull(
			stps.source(fs.createReadStream(data.path)),
			split(),
			pull.filter(function(line) {
				return line.length > 0
			}),
			pull.map(function(entry) {
				return {
					name: entry
				}
			}),
			pull.drain(function(movie) {
				movie.id = movies.length
				movies.push(movie)
			}, function() {
				debug.movies('loaded')
				movies.emit('loaded')
				cb(null, data)
			})
		)
	} }
Example #4
0
      fs.stat(file, function (err, stat) {
        if(err)
          return done(err.code == 'ENOENT' ? null : err)

        //if there is already a file, start writing to end
        position = stat.size

        pull(
          toPull.source(fs.createReadStream(file)),
          split(/\r?\n/, function (e) { if (e) return JSON.parse(e) }),
          pull.through(function (data) {
            if(data) store[data.key] = data.value
          }),
          pull.drain(null, done)
        )
      })
function filteredTSVStream (path, parse, predicate) {
  return pull(
    readFile(path),
    decodeUTF8(),
    split(
      '\n',
      false, // Do not map.
      false, // Do not reverse.
      true // Skip the last.
    ),
    map(function (line) {
      return parse(line.split('\t'))
    }),
    filter(predicate),
    suppressENOENT
  )
}
Example #6
0
  var tbr = LTBR(db, function (since) {
    var u = url.format({
        protocol: 'http',
        hostname: config.megaHost,
        port: config.megaPort,
        pathname: '/query',
        search: qs.encode({gt: since})
      })

    console.error('GET', u)
    return pull(
      toPull(hyperquest(u)),
      split(),
      pull.filter(function (e) {
        return e && e.length
      }),
      pull.map(csvLine.decode)
    )
  })
Example #7
0
var parse = require('irc-parser')

var socket = net.connect({
	host: '127.0.0.1',
	port: 6667
}, function() {
	console.log('Connected')
})

var output = pushable()
output.push('NICK cbotn')
output.push('USER cbotn 8 * :cbotn')

pull(
	toPullStream.source(socket),
	split(),
	pull.Through(function(read) {
		read(null, function next(end, data) {
			if(!end) {
				var input = parse(data)
				console.log('IN: ', data, input)
				if(input.command == 'PING') {
					output.push('PONG :' + input.params[0])
				}
				read(null, next)
			}
		})
		return output
	})(),
	pull.map(function(data) {
		console.log('OUT: %s', data)

var cp = require('child_process')
var toPull = require('../')
var pull = require('pull-stream')
var split = require('pull-split')


console.log(process.execPath, [require.resolve('./stdout')])
var child = cp.spawn(process.execPath, [require.resolve('./stdout')])
child.on('exit', function () {
  console.log('ended')
})
pull(
  toPull.source(child.stdout),
  split('\n\n'),
  pull.filter(),
  pull.map(function (e) {
    try {
      return JSON.parse(e)
    } catch (err) {
      console.log(JSON.stringify(e))
      //throw err
    }

  }),
  pull.asyncMap(function (data, cb) {
    setTimeout(function () {
      cb(null, data)
    }, 10)
  }),