summaryrefslogtreecommitdiffstats
path: root/scripts/bump.js
blob: 2a4d59221c43b3b7096423555b40c585f7ff517a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#! /usr/bin/env node

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

const lernaConfig = require('../lerna.json');

// List all the packages
const PACKAGES_DIR = path.resolve(__dirname, '../packages');
const packages = fs.readdirSync(PACKAGES_DIR);

function updateDependencies(dependencies) {
    if (!dependencies) {
        return;
    }

    Object.keys(dependencies).map((key) => {
        if (!packages.includes(key)) {
            return;
        }

        dependencies[key] = lernaConfig.version;
    });
}

packages.forEach((name) => {
    // Avoid .DS_Store
    if (name[0] === '.') {
        return;
    }

    const pkgPath = path.resolve(PACKAGES_DIR, name, 'package.json');
    const pkg = require(pkgPath);

    pkg.version = lernaConfig.version;
    updateDependencies(pkg.dependencies);
    updateDependencies(pkg.devDependencies);

    const json = JSON.stringify(pkg, null, 2);

    fs.writeFileSync(pkgPath, `${json}\n`, 'utf-8');
});