From a641de41faaf6851cf9177ff87acd0d3e16494fb Mon Sep 17 00:00:00 2001 From: Jamie Mason Date: Wed, 23 Aug 2017 10:23:25 +0100 Subject: [PATCH] fix(copy-values): write results to disk --- src/copy-values.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/copy-values.js b/src/copy-values.js index 400d1864..dc72041a 100644 --- a/src/copy-values.js +++ b/src/copy-values.js @@ -2,26 +2,30 @@ import path from 'path'; import chalk from 'chalk'; import { get, set } from 'lodash'; import getFiles from './lib/get-files'; +import writeJson from './lib/write-json'; const getPackage = location => ({ location, json: require(location) }); -const formatValue = value => JSON.stringify(value); +const toJson = value => JSON.stringify(value); + +const reportChange = (key, previous, next) => { + if (toJson(previous) === toJson(next)) { + console.log(`${key}: ${chalk.green('✓ unchanged')}`); + } else { + console.log(`${key}: ${chalk.red(toJson(previous))} → ${chalk.green(toJson(next))}`); + } +}; export default async ({ keys, packagesPattern, sourcePattern }) => { const [source] = (await getFiles(sourcePattern)).map(getPackage); const packages = (await getFiles(packagesPattern)).map(getPackage); - packages.forEach(pkg => { console.log(chalk.grey.underline(path.relative(process.cwd(), pkg.location))); keys.forEach(key => { const value = get(source.json, key); - const previousValue = formatValue(get(pkg.json, key)); + const previousValue = get(pkg.json, key); set(pkg.json, key, value); - const nextValue = formatValue(value); - if (previousValue === nextValue) { - console.log(`${key}: ${chalk.green('✓ unchanged')}`); - } else { - console.log(`${key}: ${chalk.red(previousValue)} → ${chalk.green(nextValue)}`); - } + writeJson(pkg.location, pkg.json); + reportChange(key, previousValue, value); }); }); };