1.1.0 • Published 8 years ago

streaming-object-transform v1.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
8 years ago

streaming-object-transform

NPM version Build status Test coverage Dependency Status License Downloads

Apply a series of promise-returning transform functions on an object stream.

const transform = require('streaming-object-transform')([
  obj => {
    // sort object alphabetically
    return require('deep-object-sort')(obj)
  },
  async => {
    // asynchronously populate the user
    if (obj.user_id) obj.user = await Users.getById(obj.user_id)
    return obj
  }
])

app.use((req, res, next) => {
  res.setHeader('Content-Type', 'application/json')
  db.query({})
    .stream()
    .on('error', next)
    .pipe(transform())
    .on('error', next)
    .pipe(require('JSONStream').stringify())
    .on('error', next)
    .pipe(res)
})