const { spawn } = require('child_process');
const tsc = require.resolve('typescript/bin/tsc');
const tscjs = require.resolve('typescript/lib/tsc.js');
const cwd = __dirname;

if (!tsc.endsWith('tsc')) {
  throw new Error('Expected tsc cli but found ' + tsc);
}

if (!tscjs.endsWith('tsc.js')) {
  throw new Error('Expected tsc.js but found ' + tscjs);
}

const child = spawn('node', [tscjs, '--version'], { cwd });
child.stdout.on('data', data => {
  if (!data || data.toString().length === 0) {
    throw new Error('Expected stdout output but found none');
  }
});
child.stderr.on('data', data => {
  throw new Error('Unexpected stderr output: ' + data.toString());
});
