Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    mtime-reducepublic

    mtime-reduce

    Run a reduce over a collection of files, and save the result in another file.

    If there is not more recent mtime than the reduction file, the reduce won't run.

    example - npm reverse deps

    Iterate over all npm docs in your npm cache, and construct a table of reverse dependencies. ({$dependencie: {$dependant: count}} - count is the number of versions of $dependant than depend on $dependency)

    var mtr = require('mtime-reduce')
     
    var reduce = mtr({
      //selection of files you wish to reduce over. 
      glob: process.env.HOME +'/.npm/*/*package.json',
      //file to save the accumulation in 
      filename: '/tmp/reverse-deps.json',
      //encodign 
      encoding: 'json', //DON'T FORGET THIS IF IT'S JSON! 
      //initial value passed to reduce function. 
      initial: {},
      //a reduce function - the same api as Array#reduce 
      reduce: function (acc, pkg) {
        for(var dep in pkg.dependencies || {}) {
          acc[dep] = acc[dep] || {}
          acc[dep][pkg.name] = (acc[dep][pkg.name] || 0) + 1
        }
        return acc
      }
    })
     
    //an async reduce function is returned. 
    //pass it a callback! 
     
    reduce (function (err, data) {
      if(err) throw err
      console.log(JSON.stringify(data, null, 2))
    })
     

    License

    MIT

    Keywords

    none

    install

    npm i mtime-reduce

    Downloadslast 7 days

    0

    version

    1.0.0

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar