definition-tester
Version:
DefinitelyTyped repository testing infrastructure
85 lines • 2.73 kB
JavaScript
;
var os = require('os');
var path = require('path');
var opt = require('optimist');
var Promise = require('bluebird');
var findup = require('findup-sync');
var TestRunner_1 = require('./test/TestRunner');
Promise.longStackTraces();
var testerPkgPath = path.resolve(findup('package.json', { cwd: process.cwd() }));
var optimist = opt(process.argv);
optimist.boolean('single-thread');
optimist.boolean('changes');
optimist.default('changes', false);
optimist.boolean('dry');
optimist.default('dry', false);
optimist.boolean('headers');
optimist.default('headers', true);
optimist.boolean('tests');
optimist.default('tests', true);
optimist.boolean('lint');
optimist.default('lint', false);
optimist.boolean('tscparams');
optimist.default('tscparams', false);
optimist.default('print-files', false);
optimist.default('print-refmap', false);
optimist.string('path');
optimist.default('path', process.cwd());
optimist.string('tsc-path');
try {
var tscDir = path.dirname(require.resolve('typescript'));
var tscPath = path.join(tscDir, 'tsc.js');
optimist.default('tsc-path', tscPath);
}
catch (e) {
}
optimist.boolean('debug');
optimist.describe('help', 'print help');
optimist.alias('h', 'help');
var argv = optimist.argv;
if (argv['debug']) {
var sms = void 0;
try {
sms = require('source-map-support');
}
catch (e) {
}
if (sms) {
sms.install();
}
Promise.longStackTraces();
}
var dtPath = path.resolve(argv['path']);
var cpuCores = os.cpus().length;
if (argv.help) {
optimist.help();
process.exit(0);
}
Promise.onPossiblyUnhandledRejection(function (reason) {
console.error('Error: Promise.possiblyUnhandledRejection:');
console.dir(reason);
throw reason;
});
var testFull = (process.env['TRAVIS_BRANCH'] ? /\w\/full$/.test(process.env['TRAVIS_BRANCH']) : false);
new TestRunner_1.default({
testerPath: path.dirname(testerPkgPath),
dtPath: dtPath,
concurrent: (argv['single-thread'] ? 1 : Math.round(cpuCores * .75)),
tscPath: argv['tsc-path'],
tslintConfig: path.join(path.dirname(testerPkgPath), 'conf', 'tslint.json'),
changes: (testFull ? false : argv['changes']),
tests: argv['dry'] ? false : argv['tests'],
lint: argv['dry'] ? false : argv['lint'],
headers: argv['dry'] ? false : argv['headers'],
tscparams: argv['dry'] ? false : argv['tscparams'],
debug: argv['debug'],
printFiles: argv['print-files'],
printRefMap: argv['print-refmap']
}).run().then(function (success) {
if (!success) {
process.exit(1);
}
}).catch(function (err) {
throw err;
});
//# sourceMappingURL=index.js.map