import childProcess from 'node:child_process';
import fs from 'node:fs';
import path from 'node:path';
const { dependencies } = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));
const tsVersions = Object.keys(dependencies)
.filter((pkg) => pkg.startsWith('typescript-'))
.sort((a, b) => b.localeCompare(a));
for (const version of tsVersions) {
console.log(`Testing on node ${version} ...`);
childProcess.execSync(tscPath(version), { stdio: 'inherit' });
}
console.log('Testing on deno ...');
childProcess.execSync(
`docker run --rm --volume "$PWD":/usr/src/app -w /usr/src/app denoland/deno:alpine-"$DENO_VERSION" deno check`,
{ stdio: 'inherit' },
);
function tscPath(version) {
return path.join('node_modules', version, 'bin', 'tsc');
}