OurBigBook
heroku-prebuild.js
#!/usr/bin/env node

const fs = require('fs')
const path = require('path')

// Hax: https://github.com/ourbigbook/ourbigbook/issues/156
function deleteProps(obj, props) {
  for (const prop of props) {
    if (!(prop in obj)) {
      throw `prop not in obj: ${prop}`
    }
    delete obj[prop]
  }
}

function writeJson(outpath, jsonObj) {
  fs.writeFileSync(outpath, JSON.stringify(jsonObj, null, '  ') + '\n')
}

{
  const packageJson = JSON.parse(fs.readFileSync('package.json').toString())
  const dependencies = packageJson.dependencies
  deleteProps(dependencies, [
    'sqlite3',
    'chokidar',
    'commander',
    'fs-extra',
    'git-url-parse',
    'is-installed-globally',
  ])
  const devDependencies = packageJson.devDependencies
  deleteProps(devDependencies, [
    'mocha',
    'mocha-list-tests',
    'parse5',
    'webpack-dev-server',
    'xmldom',
    'xmlserializer',
    'xpath',
  ])
  writeJson('package.json', packageJson)
}

{
  const inpath = path.join('web', 'package.json')
  const packageJson = JSON.parse(fs.readFileSync(inpath).toString())
  const devDependencies = packageJson.devDependencies
  deleteProps(devDependencies, [
    'mocha',
    'nodemon',
    'sqlite3',
  ])
  writeJson(inpath, packageJson)
}