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.
|
|
let fs = require('fs/promises') let { spawn } = require('child_process') let path = require('path') let root = process.cwd()
function npmInstall(cwd) { return new Promise((resolve) => { let childProcess = spawn('npm', ['install'], { cwd }) childProcess.on('exit', resolve) }) }
async function install() { let base = path.resolve(root, 'integrations') let ignoreFolders = ['node_modules'] let integrations = (await fs.readdir(base, { withFileTypes: true })) .filter((integration) => integration.isDirectory()) .filter((integration) => !ignoreFolders.includes(integration.name)) .map((folder) => path.resolve(base, folder.name)) .concat([base]) .map((integration) => npmInstall(integration))
await Promise.all(integrations) console.log('Done!') }
install()
|