UNPKG

1.7 kBJavaScriptView Raw
1'use strict';
2
3var _extract = require('./extract');
4
5var _extract2 = _interopRequireDefault(_extract);
6
7var _babelGenerator = require('babel-generator');
8
9var _babelGenerator2 = _interopRequireDefault(_babelGenerator);
10
11var _path = require('path');
12
13var _path2 = _interopRequireDefault(_path);
14
15var _transform = require('./transform');
16
17var _transform2 = _interopRequireDefault(_transform);
18
19function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21/*!
22 * Copyright (c) 2015-2017 Cisco Systems, Inc. See LICENSE file.
23 */
24
25/* eslint require-jsdoc: [0] */
26/* eslint no-console: [0] */
27
28function isNodeModule(filename) {
29 return filename.includes('node_modules') && !filename.includes('packages/node_modules');
30}
31
32function inject(module, filename) {
33 var code = (0, _babelGenerator2.default)((0, _extract2.default)(_transform2.default, filename), {
34 compact: false,
35 quotes: 'single'
36 }).code;
37
38 if (process.env.JSDOCTRINETEST_VERBOSE) {
39 console.log(filename);
40 console.log(code);
41 console.log();
42 }
43 module._compile(code, filename);
44}
45
46function enableSpecInjection() {
47 var dir = void 0;
48 var load = require.extensions['.js'];
49 require.extensions['.js'] = function loadWithSpecs(m, filename) {
50 if (isNodeModule(filename)) {
51 return load(m, filename);
52 }
53 // this is really janky, but so far seems to properly ensure we only load
54 // files in the directories specified to mocha
55 if (!dir) {
56 dir = _path2.default.dirname(filename);
57 }
58
59 if (!filename.includes(dir)) {
60 return load(m, filename);
61 }
62
63 return inject(m, filename);
64 };
65}
66
67enableSpecInjection();
68//# sourceMappingURL=index.js.map