diff --git a/.circleci/config.yml b/.circleci/config.yml index 64d32ae7..595c05f7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,6 +49,7 @@ jobs: at: ~/project - run: | yarn lerna run prepare + node scripts/check-types-path.js workflows: version: 2 diff --git a/scripts/check-types-path.js b/scripts/check-types-path.js new file mode 100644 index 00000000..af9591b5 --- /dev/null +++ b/scripts/check-types-path.js @@ -0,0 +1,31 @@ +#!/usr/bin/env node + +/* eslint-disable import/no-commonjs */ + +const fs = require('fs'); +const path = require('path'); + +const packages = path.join(__dirname, '..', 'packages'); + +const invalid = []; + +fs.readdirSync(packages).forEach(name => { + const dir = path.join(packages, name); + + if (fs.statSync(path.join(packages, name)).isDirectory()) { + const pak = JSON.parse( + fs.readFileSync(path.join(dir, 'package.json'), 'utf8') + ); + + if (pak.types && !fs.existsSync(path.join(dir, pak.types))) { + invalid.push(pak); + } + } +}); + +if (invalid.length) { + console.log( + 'Found invalid path to type definitions in the following packages:\n', + invalid.map(p => `- ${p.name} (${p.types})`).join('\n') + ); +}