UNPKG

1.25 kBJavaScriptView Raw
1/**
2 * Copyright (c) 2013-present, Facebook, Inc.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8'use strict';
9
10const assert = require('assert');
11const fs = require('fs');
12const path = require('path');
13
14const EXTRACT_MODULE_NAME_REGEX = /'\.\/(.+)'/;
15
16let didError = false;
17
18// Make sure we have a lib to read files from. Take it as the first argument.
19assert(
20 process.argv.length >= 3,
21 'Expected to receive an argument to a lib directory'
22);
23
24const pathToLib = path.resolve(process.cwd(), process.argv[2]);
25
26fs.readdir(pathToLib, (err, files) => {
27 files = files.filter((filename) => path.parse(filename).ext === '.js');
28
29 files.forEach((filename) => {
30 const requirePath = path.join(pathToLib, filename);
31 const moduleName = path.parse(filename).name;
32
33 try {
34 require(requirePath);
35 } catch (e) {
36 if (e.code === 'MODULE_NOT_FOUND') {
37 const missingModule = e.toString().match(EXTRACT_MODULE_NAME_REGEX)[1];
38 console.error(moduleName, 'is missing a dependency:', missingModule);
39 } else {
40 console.error('UNKNOWN ERROR', e);
41 }
42 didError = true;
43 }
44 });
45
46 process.exit(didError ? 1 : 0);
47});