UNPKG

@polkadot/dev

Version:

A collection of shared CI scripts and development environment used by @polkadot projects

54 lines (38 loc) 1.46 kB
#!/usr/bin/env node // Copyright 2017-2025 @polkadot/dev authors & contributors // SPDX-License-Identifier: Apache-2.0 import fs from 'node:fs'; import path from 'node:path'; import { copyDirSync, execPm, exitFatal, logBin, mkdirpSync, rimrafSync } from './util.mjs'; const args = process.argv.slice(2); logBin('polkadot-dev-copy-to'); if (args.length !== 1) { exitFatal('Expected one <destination> argument'); } const dest = path.join(process.cwd(), '..', args[0], 'node_modules'); if (!fs.existsSync(dest)) { exitFatal('Destination node_modules folder does not exist'); } // build to ensure we actually have latest execPm('build'); // map across what is available and copy it fs .readdirSync('packages') .map((dir) => { const pkgPath = path.join(process.cwd(), 'packages', dir); return [pkgPath, path.join(pkgPath, 'package.json')]; }) .filter(([, jsonPath]) => fs.existsSync(jsonPath)) .map(([pkgPath, json]) => [JSON.parse(fs.readFileSync(json, 'utf8')).name, pkgPath]) .forEach(([name, pkgPath]) => { console.log(`*** Copying ${name} to ${dest}`); const outDest = path.join(dest, name); // remove the destination rimrafSync(outDest); // create the root mkdirpSync(outDest); // copy the build output copyDirSync(path.join(pkgPath, 'build'), outDest); // copy node_modules, as available copyDirSync(path.join(pkgPath, 'node_modules'), path.join(outDest, 'node_modules')); });