/** * Try running an npm script for each of the samples. */ import * as child_process from 'child_process'; import * as fs from 'fs'; import * as path from 'path'; import { lspSamples, Sample, samples } from './samples'; function tryRun(scriptName: string, sample: Sample) { const packageJsonPath = path.join(sample.path, 'package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString()); if (Object.keys(packageJson['scripts'] || {}).includes(scriptName)) { console.log(`=== Running ${scriptName} on ${path.basename(sample.path)} ===`) child_process.execSync(`npm run ${scriptName}`, { cwd: sample.path, stdio: 'inherit' }); } } if (require.main === module) { const scriptName = process.argv[2]; for (const sample of [...samples, ...lspSamples]) { tryRun(scriptName, sample); } }