diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 38b617109..22c60ec9b 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -142,15 +142,15 @@ "from": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" }, - "regenerator": { - "version": "0.8.40", - "from": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz", - "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz" - }, "recast": { "version": "0.10.33", "from": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz", "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz" + }, + "regenerator": { + "version": "0.8.40", + "from": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz" } } }, @@ -223,36 +223,36 @@ "from": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.33.tgz", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.33.tgz" }, - "babylon": { - "version": "5.8.29", - "from": "https://registry.npmjs.org/babylon/-/babylon-5.8.29.tgz", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.29.tgz" - }, "ast-types": { "version": "0.8.12", "from": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz" }, - "js-tokens": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" + "babylon": { + "version": "5.8.29", + "from": "https://registry.npmjs.org/babylon/-/babylon-5.8.29.tgz", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.29.tgz" }, "globals": { "version": "6.4.1", "from": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" }, - "regenerator": { - "version": "0.8.40", - "from": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz", - "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz" + "js-tokens": { + "version": "1.0.1", + "from": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" }, "recast": { "version": "0.10.33", "from": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz", "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz" }, + "regenerator": { + "version": "0.8.40", + "from": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz" + }, "source-map": { "version": "0.5.3", "from": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz", @@ -1895,41 +1895,41 @@ } } }, - "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - }, "abbrev": { "version": "1.0.7", "from": "abbrev@1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" }, - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@^2.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" }, "ansi-regex": { "version": "2.0.0", "from": "ansi-regex@^2.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" }, + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, "are-we-there-yet": { "version": "1.0.4", "from": "are-we-there-yet@~1.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz" }, - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@^0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, "asn1": { "version": "0.1.11", "from": "asn1@0.1.11", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" }, + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@^0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, "async": { "version": "1.5.0", "from": "async@^1.4.0", @@ -1970,16 +1970,16 @@ "from": "chalk@^1.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" }, - "commander": { - "version": "2.9.0", - "from": "commander@^2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - }, "combined-stream": { "version": "1.0.5", "from": "combined-stream@~1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" }, + "commander": { + "version": "2.9.0", + "from": "commander@^2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + }, "concat-map": { "version": "0.0.1", "from": "concat-map@0.0.1", @@ -2000,16 +2000,16 @@ "from": "ctype@0.5.3", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" }, - "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, "debug": { "version": "0.7.4", "from": "debug@~0.7.2", "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" }, + "deep-extend": { + "version": "0.2.11", + "from": "deep-extend@~0.2.5", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" + }, "delayed-stream": { "version": "1.0.0", "from": "delayed-stream@~1.0.0", @@ -2055,41 +2055,41 @@ "from": "generate-function@^2.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, - "graceful-fs": { - "version": "4.1.2", - "from": "graceful-fs@4.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" - }, "generate-object-property": { "version": "1.2.0", "from": "generate-object-property@^1.1.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" }, - "har-validator": { - "version": "2.0.2", - "from": "har-validator@~2.0.2", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.2.tgz" + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@4.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" }, "graceful-readlink": { "version": "1.0.1", "from": "graceful-readlink@>= 1.0.0", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" }, + "har-validator": { + "version": "2.0.2", + "from": "har-validator@~2.0.2", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.2.tgz" + }, "has-ansi": { "version": "2.0.0", "from": "has-ansi@^2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" }, - "hawk": { - "version": "3.1.0", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz" - }, "has-unicode": { "version": "1.0.1", "from": "has-unicode@^1.0.0", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" }, + "hawk": { + "version": "3.1.0", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz" + }, "hoek": { "version": "2.16.3", "from": "hoek@2.x.x", @@ -2110,6 +2110,11 @@ "from": "ini@~1.3.0", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, + "is-my-json-valid": { + "version": "2.12.2", + "from": "is-my-json-valid@^2.12.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz" + }, "is-property": { "version": "1.0.2", "from": "is-property@^1.0.0", @@ -2120,26 +2125,21 @@ "from": "isarray@0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, - "is-my-json-valid": { - "version": "2.12.2", - "from": "is-my-json-valid@^2.12.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz" - }, "isstream": { "version": "0.1.2", "from": "isstream@~0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, "json-stringify-safe": { "version": "5.0.1", "from": "json-stringify-safe@~5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, "lodash._basetostring": { "version": "3.0.1", "from": "lodash._basetostring@^3.0.0", @@ -2150,26 +2150,26 @@ "from": "lodash._createpadding@^3.0.0", "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" }, - "lodash.padleft": { - "version": "3.1.1", - "from": "lodash.padleft@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" - }, "lodash.pad": { "version": "3.1.1", "from": "lodash.pad@^3.0.0", "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" }, - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" }, "lodash.padright": { "version": "3.1.1", "from": "lodash.padright@^3.0.0", "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" }, + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + }, "mime-db": { "version": "1.19.0", "from": "mime-db@~1.19.0", @@ -2190,16 +2190,16 @@ "from": "mkdirp@>=0.3.0 <0.4.0||>=0.4.0 <0.5.0||>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" }, - "npmlog": { - "version": "1.2.1", - "from": "npmlog@~1.2.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz" - }, "node-uuid": { "version": "1.4.3", "from": "node-uuid@~1.4.3", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" }, + "npmlog": { + "version": "1.2.1", + "from": "npmlog@~1.2.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz" + }, "oauth-sign": { "version": "0.8.0", "from": "oauth-sign@~0.8.0", @@ -2215,16 +2215,16 @@ "from": "path-is-absolute@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" }, - "pinkie-promise": { - "version": "1.0.0", - "from": "pinkie-promise@^1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz" - }, "pinkie": { "version": "1.0.0", "from": "pinkie@^1.0.0", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz" }, + "pinkie-promise": { + "version": "1.0.0", + "from": "pinkie-promise@^1.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz" + }, "qs": { "version": "5.2.0", "from": "qs@~5.2.0", @@ -2260,20 +2260,20 @@ "from": "stringstream@~0.0.4", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@^2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" }, "strip-json-comments": { "version": "0.1.3", "from": "strip-json-comments@0.1.x", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" }, "tar": { "version": "2.2.1", @@ -2290,16 +2290,16 @@ "from": "uid-number@0.0.3", "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" }, - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - }, "tunnel-agent": { "version": "0.4.1", "from": "tunnel-agent@~0.4.1", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" }, + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + }, "xtend": { "version": "4.0.1", "from": "xtend@^4.0.0", @@ -3933,8 +3933,9 @@ } }, "node-haste": { - "version": "2.0.0", - "from": "node-haste@*", + "version": "2.3.0", + "from": "node-haste@2.3.0", + "resolved": "https://registry.npmjs.org/node-haste/-/node-haste-2.3.0.tgz", "dependencies": { "graceful-fs": { "version": "4.1.3", @@ -3942,9 +3943,9 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" }, "sane": { - "version": "1.3.1", + "version": "1.3.3", "from": "sane@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/sane/-/sane-1.3.3.tgz", "dependencies": { "exec-sh": { "version": "0.2.0", @@ -4005,6 +4006,11 @@ "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz" } } + }, + "throat": { + "version": "2.0.2", + "from": "throat@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-2.0.2.tgz" } } }, diff --git a/package.json b/package.json index e69bcfbf6..aadb2436f 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "mkdirp": "^0.5.1", "module-deps": "^3.9.1", "node-fetch": "^1.3.3", - "node-haste": "~2.0.0", + "node-haste": "~2.3.0", "opn": "^3.0.2", "optimist": "^0.6.1", "progress": "^1.1.8", diff --git a/packager/react-packager/src/AssetServer/__tests__/AssetServer-test.js b/packager/react-packager/src/AssetServer/__tests__/AssetServer-test.js index 0172f39b4..15bfc0ce0 100644 --- a/packager/react-packager/src/AssetServer/__tests__/AssetServer-test.js +++ b/packager/react-packager/src/AssetServer/__tests__/AssetServer-test.js @@ -2,6 +2,7 @@ jest .dontMock('node-haste/lib/lib/getPlatformExtension') + .dontMock('node-haste/node_modules/throat') .dontMock('../'); jest diff --git a/packager/react-packager/src/Bundler/__tests__/Bundler-test.js b/packager/react-packager/src/Bundler/__tests__/Bundler-test.js index 5ed7d6587..1c72d0a42 100644 --- a/packager/react-packager/src/Bundler/__tests__/Bundler-test.js +++ b/packager/react-packager/src/Bundler/__tests__/Bundler-test.js @@ -10,6 +10,7 @@ jest .setMock('worker-farm', () => () => undefined) + .dontMock('node-haste/node_modules/throat') .dontMock('underscore') .dontMock('../../lib/ModuleTransport') .setMock('uglify-js') diff --git a/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js b/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js index ad4dc4d4e..cd73549c8 100644 --- a/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js +++ b/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js @@ -25,8 +25,7 @@ describe('Transformer', function() { var workers; beforeEach(function() { - Cache = require('node-haste').Cache; - + Cache = jest.genMockFn(); Cache.prototype.get = jest.genMockFn().mockImpl((a, b, c) => c()); workers = jest.genMockFn(); diff --git a/packager/react-packager/src/Resolver/__tests__/Resolver-test.js b/packager/react-packager/src/Resolver/__tests__/Resolver-test.js index 7b3a5616c..b12ebd48d 100644 --- a/packager/react-packager/src/Resolver/__tests__/Resolver-test.js +++ b/packager/react-packager/src/Resolver/__tests__/Resolver-test.js @@ -15,25 +15,37 @@ jest.mock('path'); const Promise = require('promise'); const Resolver = require('../'); -const DependencyGraph = require('node-haste'); const path = require('path'); const _ = require('underscore'); +let DependencyGraph = jest.genMockFn(); +jest.setMock('node-haste', DependencyGraph); let Module; let Polyfill; describe('Resolver', function() { beforeEach(function() { - Module = require('node-haste').Module; - Polyfill = require('node-haste').Polyfill; + DependencyGraph.mockClear(); + Module = jest.genMockFn().mockImpl(function() { + this.getName = jest.genMockFn(); + this.getDependencies = jest.genMockFn(); + this.isPolyfill = jest.genMockFn().mockReturnValue(false); + }); + Polyfill = jest.genMockFn().mockImpl(function() { + var polyfill = new Module(); + polyfill.isPolyfill.mockReturnValue(true); + return polyfill; + }); DependencyGraph.replacePatterns = require.requireActual('node-haste/lib/lib/replacePatterns'); + DependencyGraph.prototype.createPolyfill = jest.genMockFn(); + DependencyGraph.prototype.getDependencies = jest.genMockFn(); // For the polyfillDeps path.join = jest.genMockFn().mockImpl((a, b) => b); - DependencyGraph.prototype.load.mockImpl(() => Promise.resolve()); + DependencyGraph.prototype.load = jest.genMockFn().mockImpl(() => Promise.resolve()); }); class ResolutionResponseMock { @@ -60,9 +72,9 @@ describe('Resolver', function() { function createPolyfill(id, dependencies) { var polyfill = new Polyfill({}); - polyfill.getName.mockImpl(() => Promise.resolve(id)); - polyfill.getDependencies.mockImpl(() => Promise.resolve(dependencies)); - polyfill.isPolyfill.mockReturnValue(true); + polyfill.getName = jest.genMockFn().mockImpl(() => Promise.resolve(id)); + polyfill.getDependencies = + jest.genMockFn().mockImpl(() => Promise.resolve(dependencies)); return polyfill; } @@ -86,30 +98,26 @@ describe('Resolver', function() { .then(function(result) { expect(result.mainModuleId).toEqual('index'); expect(result.dependencies[result.dependencies.length - 1]).toBe(module); - expect(_.pluck(Polyfill.mock.calls, 0)).toEqual([ - { path: 'polyfills/polyfills.js', + expect(_.pluck(DependencyGraph.prototype.createPolyfill.mock.calls, 0)).toEqual([ + { file: 'polyfills/polyfills.js', id: 'polyfills/polyfills.js', - isPolyfill: true, dependencies: [] }, { id: 'polyfills/console.js', - isPolyfill: true, - path: 'polyfills/console.js', + file: 'polyfills/console.js', dependencies: [ 'polyfills/polyfills.js' ], }, { id: 'polyfills/error-guard.js', - isPolyfill: true, - path: 'polyfills/error-guard.js', + file: 'polyfills/error-guard.js', dependencies: [ 'polyfills/polyfills.js', 'polyfills/console.js' ], }, { id: 'polyfills/String.prototype.es6.js', - isPolyfill: true, - path: 'polyfills/String.prototype.es6.js', + file: 'polyfills/String.prototype.es6.js', dependencies: [ 'polyfills/polyfills.js', 'polyfills/console.js', @@ -117,8 +125,7 @@ describe('Resolver', function() { ], }, { id: 'polyfills/Array.prototype.es6.js', - isPolyfill: true, - path: 'polyfills/Array.prototype.es6.js', + file: 'polyfills/Array.prototype.es6.js', dependencies: [ 'polyfills/polyfills.js', 'polyfills/console.js', @@ -127,8 +134,7 @@ describe('Resolver', function() { ], }, { id: 'polyfills/Array.es6.js', - isPolyfill: true, - path: 'polyfills/Array.es6.js', + file: 'polyfills/Array.es6.js', dependencies: [ 'polyfills/polyfills.js', 'polyfills/console.js', @@ -138,8 +144,7 @@ describe('Resolver', function() { ], }, { id: 'polyfills/Object.es7.js', - isPolyfill: true, - path: 'polyfills/Object.es7.js', + file: 'polyfills/Object.es7.js', dependencies: [ 'polyfills/polyfills.js', 'polyfills/console.js', @@ -150,8 +155,7 @@ describe('Resolver', function() { ], }, { id: 'polyfills/babelHelpers.js', - isPolyfill: true, - path: 'polyfills/babelHelpers.js', + file: 'polyfills/babelHelpers.js', dependencies: [ 'polyfills/polyfills.js', 'polyfills/console.js', @@ -181,12 +185,14 @@ describe('Resolver', function() { })); }); + const polyfill = {}; + DependencyGraph.prototype.createPolyfill.mockReturnValueOnce(polyfill); return depResolver.getDependencies('/root/index.js', { dev: true }) .then(function(result) { expect(result.mainModuleId).toEqual('index'); expect(DependencyGraph.mock.instances[0].getDependencies) - .toBeCalledWith('/root/index.js', undefined, true); - expect(result.dependencies[0]).toBe(Polyfill.mock.instances[0]); + .toBeCalledWith({entryPath: '/root/index.js', recursive: true}); + expect(result.dependencies[0]).toBe(polyfill); expect(result.dependencies[result.dependencies.length - 1]) .toBe(module); }); @@ -211,10 +217,9 @@ describe('Resolver', function() { return depResolver.getDependencies('/root/index.js', { dev: false }) .then((result) => { expect(result.mainModuleId).toEqual('index'); - expect(Polyfill.mock.calls[result.dependencies.length - 2]).toEqual([ - { path: 'some module', + expect(DependencyGraph.prototype.createPolyfill.mock.calls[result.dependencies.length - 2]).toEqual([ + { file: 'some module', id: 'some module', - isPolyfill: true, dependencies: [ 'polyfills/polyfills.js', 'polyfills/console.js', diff --git a/packager/react-packager/src/Resolver/index.js b/packager/react-packager/src/Resolver/index.js index 5b9e89024..76d8d5af2 100644 --- a/packager/react-packager/src/Resolver/index.js +++ b/packager/react-packager/src/Resolver/index.js @@ -13,7 +13,6 @@ const path = require('path'); const Activity = require('../Activity'); const DependencyGraph = require('node-haste'); const replacePatterns = require('node-haste').replacePatterns; -const Polyfill = require('node-haste').Polyfill; const declareOpts = require('../lib/declareOpts'); const Promise = require('promise'); @@ -121,14 +120,13 @@ class Resolver { return this._depGraph.getModuleForPath(entryFile); } - getDependencies(main, options) { - const opts = getDependenciesValidateOpts(options); - - return this._depGraph.getDependencies( - main, - opts.platform, - opts.recursive, - ).then(resolutionResponse => { + getDependencies(entryPath, options) { + const {platform, recursive} = getDependenciesValidateOpts(options); + return this._depGraph.getDependencies({ + entryPath, + platform, + recursive, + }).then(resolutionResponse => { this._getPolyfillDependencies().reverse().forEach( polyfill => resolutionResponse.prependDependency(polyfill) ); @@ -151,11 +149,10 @@ class Resolver { return [ prelude, moduleSystem - ].map(moduleName => new Polyfill({ - path: moduleName, + ].map(moduleName => this._depGraph.createPolyfill({ + file: moduleName, id: moduleName, dependencies: [], - isPolyfill: true, })); } @@ -172,11 +169,10 @@ class Resolver { ].concat(this._polyfillModuleNames); return polyfillModuleNames.map( - (polyfillModuleName, idx) => new Polyfill({ - path: polyfillModuleName, + (polyfillModuleName, idx) => this._depGraph.createPolyfill({ + file: polyfillModuleName, id: polyfillModuleName, dependencies: polyfillModuleNames.slice(0, idx), - isPolyfill: true, }) ); } diff --git a/packager/react-packager/src/Server/__tests__/Server-test.js b/packager/react-packager/src/Server/__tests__/Server-test.js index 246397a2c..a22488423 100644 --- a/packager/react-packager/src/Server/__tests__/Server-test.js +++ b/packager/react-packager/src/Server/__tests__/Server-test.js @@ -9,6 +9,7 @@ 'use strict'; jest.setMock('worker-farm', function() { return () => {}; }) + .dontMock('node-haste/node_modules/throat') .dontMock('os') .dontMock('underscore') .dontMock('path') diff --git a/packager/react-packager/src/SocketInterface/__tests__/SocketServer-test.js b/packager/react-packager/src/SocketInterface/__tests__/SocketServer-test.js index c269a0e55..12512eedc 100644 --- a/packager/react-packager/src/SocketInterface/__tests__/SocketServer-test.js +++ b/packager/react-packager/src/SocketInterface/__tests__/SocketServer-test.js @@ -11,6 +11,7 @@ jest.setMock('uglify-js') .mock('net') .mock('fs') + .dontMock('node-haste/node_modules/throat') .dontMock('../SocketServer'); var PackagerServer = require('../../Server');