You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
841 B
30 lines
841 B
#! /usr/bin/env node
|
|
|
|
const { readdirSync, writeFileSync } = require('fs');
|
|
const { resolve, join } = require('path');
|
|
const { execSync } = require('child_process');
|
|
const clone = require('lodash.clonedeep');
|
|
|
|
function writeJson(destination, content) {
|
|
writeFileSync(destination, `${JSON.stringify(content, null, 2)}\n`);
|
|
}
|
|
|
|
const packages = resolve(__dirname, '../packages');
|
|
|
|
readdirSync(packages)
|
|
.map(name => {
|
|
const dir = join(packages, name);
|
|
const pkgPath = join(dir, 'package.json');
|
|
const pkg = require(pkgPath);
|
|
const original = clone(pkg);
|
|
|
|
Object
|
|
.keys(pkg.linkDependencies || {})
|
|
.map(key => {
|
|
pkg.dependencies[key] = pkg.linkDependencies[key];
|
|
});
|
|
|
|
writeJson(pkgPath, pkg);
|
|
execSync(`yarn publish ${dir}`, { stdio: 'inherit' });
|
|
writeJson(pkgPath, original);
|
|
});
|
|
|