12345678910111213141516171819202122232425262728293031323334353637383940 |
- const exec = require('shell-utils').exec;
- const includes = require('lodash/includes')
- const split = require('lodash/split')
- const filter = require('lodash/filter')
-
- const flow = require('lodash/fp/flow')
- const map = require('lodash/fp/map')
- const join = require('lodash/fp/join')
-
- const fix = includes(process.argv, '--fix') ? '--fix' : '';
-
- const dirs = [
- 'lib/src',
- 'integration',
- 'e2e',
- 'scripts',
- 'playground/src'
- ];
-
- run();
-
- function run() {
- const paths = flow(
- map((d) => d === 'e2e' ? `${d}/**/*.[tj]s` : `${d}/**/*.[tj]sx?`),
- join(' ')
- )(dirs)
- exec.execSync(`tslint ${paths} ${fix} --format verbose`);
- assertAllTsFilesInSrc();
- exec.execSync(`jest --coverage`);
- }
-
- function assertAllTsFilesInSrc() {
- const allFiles = exec.execSyncRead('find ./lib/src -type f');
- const lines = split(allFiles, '\n');
- const offenders = filter(lines, (f) => !f.endsWith('.ts') && !f.endsWith('.tsx'));
- if (offenders.length) {
- throw new Error(`\n\nOnly ts/tsx files are allowed:\n${offenders.join('\n')}\n\n\n`);
- }
- }
|