nyc 13.2.0 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/lib/commands/report.js +40 -0
  3. package/lib/instrumenters/istanbul.js +6 -12
  4. package/lib/instrumenters/noop.js +5 -5
  5. package/node_modules/arrify/package.json +1 -2
  6. package/node_modules/async/CHANGELOG.md +3 -0
  7. package/node_modules/async/package.json +11 -11
  8. package/node_modules/handlebars/dist/amd/handlebars/base.js +2 -2
  9. package/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js +4 -1
  10. package/node_modules/handlebars/dist/amd/handlebars/compiler/parser.js +3 -5
  11. package/node_modules/handlebars/dist/cjs/handlebars/base.js +2 -2
  12. package/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js +4 -1
  13. package/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js +3 -5
  14. package/node_modules/handlebars/dist/handlebars.amd.js +10 -9
  15. package/node_modules/handlebars/dist/handlebars.amd.min.js +4 -4
  16. package/node_modules/handlebars/dist/handlebars.js +7 -6
  17. package/node_modules/handlebars/dist/handlebars.min.js +4 -4
  18. package/node_modules/handlebars/dist/handlebars.runtime.amd.js +3 -3
  19. package/node_modules/handlebars/dist/handlebars.runtime.amd.min.js +2 -2
  20. package/node_modules/handlebars/dist/handlebars.runtime.js +2 -2
  21. package/node_modules/handlebars/dist/handlebars.runtime.min.js +2 -2
  22. package/node_modules/handlebars/lib/handlebars/base.js +1 -1
  23. package/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js +3 -0
  24. package/node_modules/handlebars/lib/handlebars/compiler/parser.js +9 -9
  25. package/node_modules/handlebars/lib/handlebars.d.ts +356 -0
  26. package/node_modules/handlebars/package.json +12 -11
  27. package/node_modules/handlebars/release-notes.md +38 -1
  28. package/node_modules/istanbul-reports/CHANGELOG.md +11 -0
  29. package/node_modules/istanbul-reports/package.json +12 -12
  30. package/node_modules/mem/index.js +5 -1
  31. package/node_modules/mem/package.json +14 -14
  32. package/node_modules/normalize-package-data/README.md +1 -1
  33. package/node_modules/normalize-package-data/lib/fixer.js +3 -2
  34. package/node_modules/normalize-package-data/package.json +13 -13
  35. package/node_modules/p-is-promise/index.d.ts +13 -0
  36. package/node_modules/p-is-promise/index.js +10 -6
  37. package/node_modules/p-is-promise/license +4 -16
  38. package/node_modules/p-is-promise/package.json +17 -18
  39. package/node_modules/p-is-promise/readme.md +1 -1
  40. package/node_modules/path-parse/.travis.yml +9 -0
  41. package/node_modules/{is-builtin-module/license → path-parse/LICENSE} +5 -5
  42. package/node_modules/path-parse/README.md +42 -0
  43. package/node_modules/path-parse/index.js +93 -0
  44. package/node_modules/path-parse/package.json +64 -0
  45. package/node_modules/path-parse/test.js +77 -0
  46. package/node_modules/resolve/.editorconfig +20 -0
  47. package/node_modules/resolve/.eslintignore +1 -0
  48. package/node_modules/resolve/.eslintrc +31 -0
  49. package/node_modules/resolve/.travis.yml +269 -0
  50. package/node_modules/resolve/CHANGELOG.md +629 -0
  51. package/node_modules/resolve/LICENSE +18 -0
  52. package/node_modules/resolve/appveyor.yml +47 -0
  53. package/node_modules/resolve/changelog.hbs +36 -0
  54. package/node_modules/resolve/example/async.js +5 -0
  55. package/node_modules/resolve/example/sync.js +3 -0
  56. package/node_modules/resolve/index.js +8 -0
  57. package/node_modules/resolve/lib/async.js +229 -0
  58. package/node_modules/resolve/lib/caller.js +8 -0
  59. package/node_modules/resolve/lib/core.js +53 -0
  60. package/node_modules/resolve/lib/core.json +73 -0
  61. package/node_modules/resolve/lib/node-modules-paths.js +42 -0
  62. package/node_modules/resolve/lib/normalize-options.js +10 -0
  63. package/node_modules/resolve/lib/sync.js +154 -0
  64. package/node_modules/resolve/package.json +77 -0
  65. package/node_modules/resolve/readme.markdown +179 -0
  66. package/node_modules/resolve/test/.eslintrc +5 -0
  67. package/node_modules/resolve/test/core.js +82 -0
  68. package/node_modules/resolve/test/dotdot/abc/index.js +2 -0
  69. package/node_modules/resolve/test/dotdot/index.js +1 -0
  70. package/node_modules/resolve/test/dotdot.js +29 -0
  71. package/node_modules/resolve/test/faulty_basedir.js +29 -0
  72. package/node_modules/resolve/test/filter.js +34 -0
  73. package/node_modules/resolve/test/filter_sync.js +26 -0
  74. package/node_modules/resolve/test/mock.js +143 -0
  75. package/node_modules/resolve/test/mock_sync.js +67 -0
  76. package/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +1 -0
  77. package/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +1 -0
  78. package/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +1 -0
  79. package/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +3 -0
  80. package/node_modules/resolve/test/module_dir.js +56 -0
  81. package/node_modules/resolve/test/node-modules-paths.js +121 -0
  82. package/node_modules/resolve/test/node_path/x/aaa/index.js +1 -0
  83. package/node_modules/resolve/test/node_path/x/ccc/index.js +1 -0
  84. package/node_modules/resolve/test/node_path/y/bbb/index.js +1 -0
  85. package/node_modules/resolve/test/node_path/y/ccc/index.js +1 -0
  86. package/node_modules/resolve/test/node_path.js +70 -0
  87. package/node_modules/resolve/test/nonstring.js +9 -0
  88. package/node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0
  89. package/node_modules/resolve/test/pathfilter.js +75 -0
  90. package/node_modules/resolve/test/precedence/aaa/index.js +1 -0
  91. package/node_modules/resolve/test/precedence/aaa/main.js +1 -0
  92. package/node_modules/resolve/test/precedence/aaa.js +1 -0
  93. package/node_modules/resolve/test/precedence/bbb/main.js +1 -0
  94. package/node_modules/resolve/test/precedence/bbb.js +1 -0
  95. package/node_modules/resolve/test/precedence.js +23 -0
  96. package/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  97. package/node_modules/resolve/test/resolver/baz/package.json +3 -0
  98. package/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  99. package/node_modules/resolve/test/resolver/browser_field/a.js +0 -0
  100. package/node_modules/resolve/test/resolver/browser_field/b.js +0 -0
  101. package/node_modules/resolve/test/resolver/browser_field/package.json +5 -0
  102. package/node_modules/resolve/test/resolver/cup.coffee +1 -0
  103. package/node_modules/resolve/test/resolver/dot_main/index.js +1 -0
  104. package/node_modules/resolve/test/resolver/dot_main/package.json +3 -0
  105. package/node_modules/resolve/test/resolver/dot_slash_main/index.js +1 -0
  106. package/node_modules/resolve/test/resolver/dot_slash_main/package.json +3 -0
  107. package/node_modules/resolve/test/resolver/foo.js +1 -0
  108. package/node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0
  109. package/node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0
  110. package/node_modules/resolve/test/resolver/invalid_main/package.json +7 -0
  111. package/node_modules/resolve/test/resolver/mug.coffee +0 -0
  112. package/node_modules/resolve/test/resolver/mug.js +0 -0
  113. package/node_modules/resolve/test/resolver/multirepo/lerna.json +6 -0
  114. package/node_modules/resolve/test/resolver/multirepo/package.json +20 -0
  115. package/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js +35 -0
  116. package/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json +14 -0
  117. package/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js +0 -0
  118. package/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json +14 -0
  119. package/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  120. package/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  121. package/node_modules/resolve/test/resolver/quux/foo/index.js +1 -0
  122. package/node_modules/resolve/test/resolver/same_names/foo/index.js +1 -0
  123. package/node_modules/resolve/test/resolver/same_names/foo.js +1 -0
  124. package/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js +0 -0
  125. package/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep +0 -0
  126. package/node_modules/resolve/test/resolver/without_basedir/main.js +5 -0
  127. package/node_modules/resolve/test/resolver.js +429 -0
  128. package/node_modules/resolve/test/resolver_sync.js +340 -0
  129. package/node_modules/resolve/test/subdirs.js +13 -0
  130. package/node_modules/resolve/test/symlinks.js +56 -0
  131. package/package.json +3 -3
  132. package/node_modules/builtin-modules/builtin-modules.json +0 -35
  133. package/node_modules/builtin-modules/index.js +0 -10
  134. package/node_modules/builtin-modules/license +0 -21
  135. package/node_modules/builtin-modules/package.json +0 -75
  136. package/node_modules/builtin-modules/readme.md +0 -41
  137. package/node_modules/builtin-modules/static.js +0 -2
  138. package/node_modules/is-builtin-module/index.js +0 -10
  139. package/node_modules/is-builtin-module/package.json +0 -78
  140. package/node_modules/is-builtin-module/readme.md +0 -33
@@ -0,0 +1 @@
1
+ module.exports = function (n) { return n * 111; };
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "main.js"
3
+ }
@@ -0,0 +1,56 @@
1
+ var path = require('path');
2
+ var test = require('tape');
3
+ var resolve = require('../');
4
+
5
+ test('moduleDirectory strings', function (t) {
6
+ t.plan(4);
7
+ var dir = path.join(__dirname, 'module_dir');
8
+ var xopts = {
9
+ basedir: dir,
10
+ moduleDirectory: 'xmodules'
11
+ };
12
+ resolve('aaa', xopts, function (err, res, pkg) {
13
+ t.ifError(err);
14
+ t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
15
+ });
16
+
17
+ var yopts = {
18
+ basedir: dir,
19
+ moduleDirectory: 'ymodules'
20
+ };
21
+ resolve('aaa', yopts, function (err, res, pkg) {
22
+ t.ifError(err);
23
+ t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
24
+ });
25
+ });
26
+
27
+ test('moduleDirectory array', function (t) {
28
+ t.plan(6);
29
+ var dir = path.join(__dirname, 'module_dir');
30
+ var aopts = {
31
+ basedir: dir,
32
+ moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
33
+ };
34
+ resolve('aaa', aopts, function (err, res, pkg) {
35
+ t.ifError(err);
36
+ t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
37
+ });
38
+
39
+ var bopts = {
40
+ basedir: dir,
41
+ moduleDirectory: ['zmodules', 'ymodules', 'xmodules']
42
+ };
43
+ resolve('aaa', bopts, function (err, res, pkg) {
44
+ t.ifError(err);
45
+ t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
46
+ });
47
+
48
+ var copts = {
49
+ basedir: dir,
50
+ moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
51
+ };
52
+ resolve('bbb', copts, function (err, res, pkg) {
53
+ t.ifError(err);
54
+ t.equal(res, path.join(dir, '/zmodules/bbb/main.js'));
55
+ });
56
+ });
@@ -0,0 +1,121 @@
1
+ var test = require('tape');
2
+ var path = require('path');
3
+ var parse = path.parse || require('path-parse');
4
+ var keys = require('object-keys');
5
+
6
+ var nodeModulesPaths = require('../lib/node-modules-paths');
7
+
8
+ var verifyDirs = function verifyDirs(t, start, dirs, moduleDirectories, paths) {
9
+ var moduleDirs = [].concat(moduleDirectories || 'node_modules');
10
+ if (paths) {
11
+ for (var k = 0; k < paths.length; ++k) {
12
+ moduleDirs.push(path.basename(paths[k]));
13
+ }
14
+ }
15
+
16
+ var foundModuleDirs = {};
17
+ var uniqueDirs = {};
18
+ var parsedDirs = {};
19
+ for (var i = 0; i < dirs.length; ++i) {
20
+ var parsed = parse(dirs[i]);
21
+ if (!foundModuleDirs[parsed.base]) { foundModuleDirs[parsed.base] = 0; }
22
+ foundModuleDirs[parsed.base] += 1;
23
+ parsedDirs[parsed.dir] = true;
24
+ uniqueDirs[dirs[i]] = true;
25
+ }
26
+ t.equal(keys(parsedDirs).length >= start.split(path.sep).length, true, 'there are >= dirs than "start" has');
27
+ var foundModuleDirNames = keys(foundModuleDirs);
28
+ t.deepEqual(foundModuleDirNames, moduleDirs, 'all desired module dirs were found');
29
+ t.equal(keys(uniqueDirs).length, dirs.length, 'all dirs provided were unique');
30
+
31
+ var counts = {};
32
+ for (var j = 0; j < foundModuleDirNames.length; ++j) {
33
+ counts[foundModuleDirs[j]] = true;
34
+ }
35
+ t.equal(keys(counts).length, 1, 'all found module directories had the same count');
36
+ };
37
+
38
+ test('node-modules-paths', function (t) {
39
+ t.test('no options', function (t) {
40
+ var start = path.join(__dirname, 'resolver');
41
+ var dirs = nodeModulesPaths(start);
42
+
43
+ verifyDirs(t, start, dirs);
44
+
45
+ t.end();
46
+ });
47
+
48
+ t.test('empty options', function (t) {
49
+ var start = path.join(__dirname, 'resolver');
50
+ var dirs = nodeModulesPaths(start, {});
51
+
52
+ verifyDirs(t, start, dirs);
53
+
54
+ t.end();
55
+ });
56
+
57
+ t.test('with paths=array option', function (t) {
58
+ var start = path.join(__dirname, 'resolver');
59
+ var paths = ['a', 'b'];
60
+ var dirs = nodeModulesPaths(start, { paths: paths });
61
+
62
+ verifyDirs(t, start, dirs, null, paths);
63
+
64
+ t.end();
65
+ });
66
+
67
+ t.test('with paths=function option', function (t) {
68
+ var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) {
69
+ return getNodeModulesDirs().concat(path.join(absoluteStart, 'not node modules', request));
70
+ };
71
+
72
+ var start = path.join(__dirname, 'resolver');
73
+ var dirs = nodeModulesPaths(start, { paths: paths }, 'pkg');
74
+
75
+ verifyDirs(t, start, dirs, null, [path.join(start, 'not node modules', 'pkg')]);
76
+
77
+ t.end();
78
+ });
79
+
80
+ t.test('with paths=function skipping node modules resolution', function (t) {
81
+ var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) {
82
+ return [];
83
+ };
84
+ var start = path.join(__dirname, 'resolver');
85
+ var dirs = nodeModulesPaths(start, { paths: paths });
86
+ t.deepEqual(dirs, [], 'no node_modules was computed');
87
+ t.end();
88
+ });
89
+
90
+ t.test('with moduleDirectory option', function (t) {
91
+ var start = path.join(__dirname, 'resolver');
92
+ var moduleDirectory = 'not node modules';
93
+ var dirs = nodeModulesPaths(start, { moduleDirectory: moduleDirectory });
94
+
95
+ verifyDirs(t, start, dirs, moduleDirectory);
96
+
97
+ t.end();
98
+ });
99
+
100
+ t.test('with 1 moduleDirectory and paths options', function (t) {
101
+ var start = path.join(__dirname, 'resolver');
102
+ var paths = ['a', 'b'];
103
+ var moduleDirectory = 'not node modules';
104
+ var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectory });
105
+
106
+ verifyDirs(t, start, dirs, moduleDirectory, paths);
107
+
108
+ t.end();
109
+ });
110
+
111
+ t.test('with 1+ moduleDirectory and paths options', function (t) {
112
+ var start = path.join(__dirname, 'resolver');
113
+ var paths = ['a', 'b'];
114
+ var moduleDirectories = ['not node modules', 'other modules'];
115
+ var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
116
+
117
+ verifyDirs(t, start, dirs, moduleDirectories, paths);
118
+
119
+ t.end();
120
+ });
121
+ });
@@ -0,0 +1 @@
1
+ module.exports = 'A';
@@ -0,0 +1 @@
1
+ module.exports = 'C';
@@ -0,0 +1 @@
1
+ module.exports = 'B';
@@ -0,0 +1 @@
1
+ module.exports = 'CY';
@@ -0,0 +1,70 @@
1
+ var fs = require('fs');
2
+ var path = require('path');
3
+ var test = require('tape');
4
+ var resolve = require('../');
5
+
6
+ test('$NODE_PATH', function (t) {
7
+ t.plan(8);
8
+
9
+ var isDir = function (dir, cb) {
10
+ if (dir === '/node_path' || dir === 'node_path/x') {
11
+ return cb(null, true);
12
+ }
13
+ fs.stat(dir, function (err, stat) {
14
+ if (!err) {
15
+ return cb(null, stat.isDirectory());
16
+ }
17
+ if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
18
+ return cb(err);
19
+ });
20
+ };
21
+
22
+ resolve('aaa', {
23
+ paths: [
24
+ path.join(__dirname, '/node_path/x'),
25
+ path.join(__dirname, '/node_path/y')
26
+ ],
27
+ basedir: __dirname,
28
+ isDirectory: isDir
29
+ }, function (err, res) {
30
+ t.error(err);
31
+ t.equal(res, path.join(__dirname, '/node_path/x/aaa/index.js'), 'aaa resolves');
32
+ });
33
+
34
+ resolve('bbb', {
35
+ paths: [
36
+ path.join(__dirname, '/node_path/x'),
37
+ path.join(__dirname, '/node_path/y')
38
+ ],
39
+ basedir: __dirname,
40
+ isDirectory: isDir
41
+ }, function (err, res) {
42
+ t.error(err);
43
+ t.equal(res, path.join(__dirname, '/node_path/y/bbb/index.js'), 'bbb resolves');
44
+ });
45
+
46
+ resolve('ccc', {
47
+ paths: [
48
+ path.join(__dirname, '/node_path/x'),
49
+ path.join(__dirname, '/node_path/y')
50
+ ],
51
+ basedir: __dirname,
52
+ isDirectory: isDir
53
+ }, function (err, res) {
54
+ t.error(err);
55
+ t.equal(res, path.join(__dirname, '/node_path/x/ccc/index.js'), 'ccc resolves');
56
+ });
57
+
58
+ // ensure that relative paths still resolve against the regular `node_modules` correctly
59
+ resolve('tap', {
60
+ paths: [
61
+ 'node_path'
62
+ ],
63
+ basedir: path.join(__dirname, 'node_path/x'),
64
+ isDirectory: isDir
65
+ }, function (err, res) {
66
+ var root = require('tap/package.json').main;
67
+ t.error(err);
68
+ t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root), 'tap resolves');
69
+ });
70
+ });
@@ -0,0 +1,9 @@
1
+ var test = require('tape');
2
+ var resolve = require('../');
3
+
4
+ test('nonstring', function (t) {
5
+ t.plan(1);
6
+ resolve(555, function (err, res, pkg) {
7
+ t.ok(err);
8
+ });
9
+ });
@@ -0,0 +1,75 @@
1
+ var path = require('path');
2
+ var test = require('tape');
3
+ var resolve = require('../');
4
+
5
+ var resolverDir = path.join(__dirname, '/pathfilter/deep_ref');
6
+
7
+ var pathFilterFactory = function (t) {
8
+ return function (pkg, x, remainder) {
9
+ t.equal(pkg.version, '1.2.3');
10
+ t.equal(x, path.join(resolverDir, 'node_modules/deep/ref'));
11
+ t.equal(remainder, 'ref');
12
+ return 'alt';
13
+ };
14
+ };
15
+
16
+ test('#62: deep module references and the pathFilter', function (t) {
17
+ t.test('deep/ref.js', function (st) {
18
+ st.plan(3);
19
+
20
+ resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) {
21
+ if (err) st.fail(err);
22
+
23
+ st.equal(pkg.version, '1.2.3');
24
+ st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
25
+ });
26
+
27
+ var res = resolve.sync('deep/ref', { basedir: resolverDir });
28
+ st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
29
+ });
30
+
31
+ t.test('deep/deeper/ref', function (st) {
32
+ st.plan(4);
33
+
34
+ resolve(
35
+ 'deep/deeper/ref',
36
+ { basedir: resolverDir },
37
+ function (err, res, pkg) {
38
+ if (err) t.fail(err);
39
+ st.notEqual(pkg, undefined);
40
+ st.equal(pkg.version, '1.2.3');
41
+ st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
42
+ }
43
+ );
44
+
45
+ var res = resolve.sync(
46
+ 'deep/deeper/ref',
47
+ { basedir: resolverDir }
48
+ );
49
+ st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
50
+ });
51
+
52
+ t.test('deep/ref alt', function (st) {
53
+ st.plan(8);
54
+
55
+ var pathFilter = pathFilterFactory(st);
56
+
57
+ var res = resolve.sync(
58
+ 'deep/ref',
59
+ { basedir: resolverDir, pathFilter: pathFilter }
60
+ );
61
+ st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
62
+
63
+ resolve(
64
+ 'deep/ref',
65
+ { basedir: resolverDir, pathFilter: pathFilter },
66
+ function (err, res, pkg) {
67
+ if (err) st.fail(err);
68
+ st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
69
+ st.end();
70
+ }
71
+ );
72
+ });
73
+
74
+ t.end();
75
+ });
@@ -0,0 +1 @@
1
+ module.exports = 'okok';
@@ -0,0 +1 @@
1
+ console.log(require('./'));
@@ -0,0 +1 @@
1
+ module.exports = 'wtf';
@@ -0,0 +1 @@
1
+ console.log(require('./')); // should throw
@@ -0,0 +1 @@
1
+ module.exports = '>_<';
@@ -0,0 +1,23 @@
1
+ var path = require('path');
2
+ var test = require('tape');
3
+ var resolve = require('../');
4
+
5
+ test('precedence', function (t) {
6
+ t.plan(3);
7
+ var dir = path.join(__dirname, 'precedence/aaa');
8
+
9
+ resolve('./', { basedir: dir }, function (err, res, pkg) {
10
+ t.ifError(err);
11
+ t.equal(res, path.join(dir, 'index.js'));
12
+ t.equal(pkg.name, 'resolve');
13
+ });
14
+ });
15
+
16
+ test('./ should not load ${dir}.js', function (t) { // eslint-disable-line no-template-curly-in-string
17
+ t.plan(1);
18
+ var dir = path.join(__dirname, 'precedence/bbb');
19
+
20
+ resolve('./', { basedir: dir }, function (err, res, pkg) {
21
+ t.ok(err);
22
+ });
23
+ });
File without changes
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "quux.js"
3
+ }
@@ -0,0 +1 @@
1
+ module.exports = 1;
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "browser_field",
3
+ "main": "a",
4
+ "browser": "b"
5
+ }
@@ -0,0 +1 @@
1
+ module.exports = 1;
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "."
3
+ }
@@ -0,0 +1 @@
1
+ module.exports = 1;
@@ -0,0 +1 @@
1
+ module.exports = 1;
@@ -0,0 +1,2 @@
1
+ // this is the actual main file 'index.js', not 'wrong.js' like the package.json would indicate
2
+ module.exports = 1;
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "wrong.js"
3
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "invalid main",
3
+ "main": [
4
+ "why is this a thing",
5
+ "srsly omg wtf"
6
+ ]
7
+ }
File without changes
File without changes
@@ -0,0 +1,6 @@
1
+ {
2
+ "packages": [
3
+ "packages/*"
4
+ ],
5
+ "version": "0.0.0"
6
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "monorepo-symlink-test",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "description": "",
6
+ "main": "index.js",
7
+ "scripts": {
8
+ "postinstall": "lerna bootstrap",
9
+ "test": "node packages/package-a"
10
+ },
11
+ "author": "",
12
+ "license": "MIT",
13
+ "dependencies": {
14
+ "jquery": "^3.3.1",
15
+ "resolve": "../../../"
16
+ },
17
+ "devDependencies": {
18
+ "lerna": "^3.4.3"
19
+ }
20
+ }
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var assert = require('assert');
4
+ var path = require('path');
5
+ var resolve = require('resolve');
6
+
7
+ var basedir = __dirname + '/node_modules/@my-scope/package-b';
8
+
9
+ var expected = path.join(__dirname, '../../node_modules/jquery/dist/jquery.js');
10
+
11
+ /*
12
+ * preserveSymlinks === false
13
+ * will search NPM package from
14
+ * - packages/package-b/node_modules
15
+ * - packages/node_modules
16
+ * - node_modules
17
+ */
18
+ assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: false }), expected);
19
+ assert.equal(resolve.sync('../../node_modules/jquery', { basedir: basedir, preserveSymlinks: false }), expected);
20
+
21
+ /*
22
+ * preserveSymlinks === true
23
+ * will search NPM package from
24
+ * - packages/package-a/node_modules/@my-scope/packages/package-b/node_modules
25
+ * - packages/package-a/node_modules/@my-scope/packages/node_modules
26
+ * - packages/package-a/node_modules/@my-scope/node_modules
27
+ * - packages/package-a/node_modules/node_modules
28
+ * - packages/package-a/node_modules
29
+ * - packages/node_modules
30
+ * - node_modules
31
+ */
32
+ assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: true }), expected);
33
+ assert.equal(resolve.sync('../../../../../node_modules/jquery', { basedir: basedir, preserveSymlinks: true }), expected);
34
+
35
+ console.log(' * all monorepo paths successfully resolved through symlinks');
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@my-scope/package-a",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "description": "",
6
+ "license": "MIT",
7
+ "main": "index.js",
8
+ "scripts": {
9
+ "test": "echo \"Error: run tests from root\" && exit 1"
10
+ },
11
+ "dependencies": {
12
+ "@my-scope/package-b": "^0.0.0"
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@my-scope/package-b",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "description": "",
6
+ "license": "MIT",
7
+ "main": "index.js",
8
+ "scripts": {
9
+ "test": "echo \"Error: run tests from root\" && exit 1"
10
+ },
11
+ "dependencies": {
12
+ "@my-scope/package-a": "^0.0.0"
13
+ }
14
+ }
@@ -0,0 +1 @@
1
+ module.exports = 1;
@@ -0,0 +1 @@
1
+ module.exports = 1;
@@ -0,0 +1 @@
1
+ module.exports = 42;
@@ -0,0 +1,5 @@
1
+ var resolve = require('../../../');
2
+
3
+ module.exports = function (t, cb) {
4
+ resolve('mymodule', null, cb);
5
+ };