From 258c714cef87e275fc1e816a7e6e0fe71a3bf437 Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Mon, 2 Mar 2015 10:42:31 -0800 Subject: [PATCH] Updates from Wed Feb 25 - [react-packager] Fix lint errors | Amjad Masad - [react-packager] fix a typo s/pacakge/package | Chengyin Liu - [react-packager] Fix jest tests | Amjad Masad - [Image] Really improve the quality of mis-sized images w/trilinear filtering | James Ide --- react-packager/, | 0 react-packager/.jshintrc | 86 ------------------- react-packager/package.json | 14 --- .../src/Activity/__tests__/Activity-test.js | 2 + react-packager/src/Activity/index.js | 2 + .../DependencyResolver/ModuleDescriptor.js | 4 +- .../__tests__/DependencyGraph-test.js | 80 +++++++++++++---- .../haste/DependencyGraph/docblock.js | 10 ++- .../haste/DependencyGraph/example.js | 25 ------ .../haste/DependencyGraph/index.js | 9 +- .../__tests__/HasteDependencyResolver-test.js | 13 ++- .../src/DependencyResolver/haste/index.js | 24 +++--- .../haste/polyfills/console.js | 10 ++- .../haste/polyfills/error-guard.js | 2 +- .../haste/polyfills/polyfills.js | 2 +- .../haste/polyfills/prelude.js | 1 + .../haste/polyfills/prelude_dev.js | 1 + .../haste/polyfills/require.js | 1 + .../src/DependencyResolver/index.js | 2 + .../src/DependencyResolver/node/index.js | 13 +-- .../FileWatcher/__tests__/FileWatcher-test.js | 10 ++- react-packager/src/JSTransformer/Cache.js | 16 ++-- .../src/JSTransformer/__tests__/Cache-test.js | 1 - react-packager/src/JSTransformer/index.js | 7 +- react-packager/src/Packager/Package.js | 3 +- .../src/Packager/__mocks__/source-map.js | 5 -- .../src/Packager/__tests__/Package-test.js | 16 ++-- react-packager/src/Packager/base64-vlq.js | 9 +- .../src/Server/__tests__/Server-test.js | 78 +++++++++-------- react-packager/src/Server/index.js | 4 +- react-packager/src/fb-path-utils/index.js | 14 --- .../src/lib/__mocks__/declareOpts.js | 2 + .../src/lib/__tests__/declareOpts-test.js | 2 + react-packager/src/lib/declareOpts.js | 2 + 34 files changed, 200 insertions(+), 270 deletions(-) delete mode 100644 react-packager/, delete mode 100644 react-packager/.jshintrc delete mode 100644 react-packager/package.json delete mode 100644 react-packager/src/DependencyResolver/haste/DependencyGraph/example.js delete mode 100644 react-packager/src/Packager/__mocks__/source-map.js delete mode 100644 react-packager/src/fb-path-utils/index.js diff --git a/react-packager/, b/react-packager/, deleted file mode 100644 index e69de29b..00000000 diff --git a/react-packager/.jshintrc b/react-packager/.jshintrc deleted file mode 100644 index 7a3f79a7..00000000 --- a/react-packager/.jshintrc +++ /dev/null @@ -1,86 +0,0 @@ -{ - "-W093": true, - "asi": false, - "bitwise": true, - "boss": false, - "browser": false, - "camelcase": true, - "couch": false, - "curly": true, - "debug": false, - "devel": true, - "dojo": false, - "eqeqeq": true, - "eqnull": true, - "esnext": true, - "evil": false, - "expr": true, - "forin": false, - "freeze": true, - "funcscope": true, - "gcl": false, - "globals": { - "Promise": true, - "React": true, - "XMLHttpRequest": true, - "document": true, - "location": true, - "window": true - }, - "globalstrict": true, - "immed": false, - "indent": 2, - "iterator": false, - "jquery": false, - "lastsemic": false, - "latedef": false, - "laxbreak": true, - "laxcomma": false, - "loopfunc": false, - "maxcomplexity": false, - "maxdepth": false, - "maxerr": 50, - "maxlen": 80, - "maxparams": false, - "maxstatements": false, - "mootools": false, - "moz": false, - "multistr": false, - "newcap": true, - "noarg": true, - "node": true, - "noempty": false, - "nonbsp": true, - "nonew": true, - "nonstandard": false, - "notypeof": false, - "noyield": false, - "phantom": false, - "plusplus": false, - "predef": [ - "afterEach", - "beforeEach", - "describe", - "expect", - "it", - "jest", - "pit" - ], - "proto": false, - "prototypejs": false, - "quotmark": true, - "rhino": false, - "scripturl": false, - "shadow": false, - "smarttabs": false, - "strict": false, - "sub": false, - "supernew": false, - "trailing": true, - "undef": true, - "unused": true, - "validthis": false, - "worker": false, - "wsh": false, - "yui": false -} diff --git a/react-packager/package.json b/react-packager/package.json deleted file mode 100644 index 0ac47c25..00000000 --- a/react-packager/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "react-packager", - "version": "0.1.0", - "description": "", - "main": "index.js", - "jest": { - "unmockedModulePathPatterns": [ - "source-map" - ], - "testPathIgnorePatterns": [ - "JSAppServer/node_modules" - ] - } -} diff --git a/react-packager/src/Activity/__tests__/Activity-test.js b/react-packager/src/Activity/__tests__/Activity-test.js index 7a2bdf48..bd0265f9 100644 --- a/react-packager/src/Activity/__tests__/Activity-test.js +++ b/react-packager/src/Activity/__tests__/Activity-test.js @@ -1,3 +1,5 @@ +'use strict'; + jest.autoMockOff(); describe('Activity', function() { diff --git a/react-packager/src/Activity/index.js b/react-packager/src/Activity/index.js index a60f87b0..611ccb0b 100644 --- a/react-packager/src/Activity/index.js +++ b/react-packager/src/Activity/index.js @@ -1,3 +1,5 @@ +'use strict'; + var COLLECTION_PERIOD = 1000; var _endedEvents = Object.create(null); diff --git a/react-packager/src/DependencyResolver/ModuleDescriptor.js b/react-packager/src/DependencyResolver/ModuleDescriptor.js index 0898767a..f1a30545 100644 --- a/react-packager/src/DependencyResolver/ModuleDescriptor.js +++ b/react-packager/src/DependencyResolver/ModuleDescriptor.js @@ -1,3 +1,5 @@ +'use strict'; + function ModuleDescriptor(fields) { if (!fields.id) { throw new Error('Missing required fields id'); @@ -28,7 +30,7 @@ ModuleDescriptor.prototype.toJSON = function() { id: this.id, path: this.path, dependencies: this.dependencies - } + }; }; module.exports = ModuleDescriptor; diff --git a/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js b/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js index fe8a18b6..1c268c6b 100644 --- a/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js +++ b/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js @@ -9,8 +9,6 @@ jest .dontMock('../docblock') .setMock('../../../ModuleDescriptor', function(data) {return data;}); -var q = require('q'); - describe('DependencyGraph', function() { var DependencyGraph; var fileWatcher; @@ -46,7 +44,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -75,7 +76,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -105,7 +109,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -135,7 +142,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -175,7 +185,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/somedir/somefile.js')) .toEqual([ @@ -216,7 +229,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -245,7 +261,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -280,7 +299,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -320,7 +342,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -360,7 +385,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { expect(dgraph.getOrderedDependencies('/root/index.js')) .toEqual([ @@ -386,7 +414,6 @@ describe('DependencyGraph', function() { }); describe('file watch updating', function() { - var fileWatcher; var triggerFileChange; beforeEach(function() { @@ -428,7 +455,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { filesystem.root['index.js'] = filesystem.root['index.js'].replace('require("foo")', ''); @@ -476,7 +506,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { filesystem.root['index.js'] = filesystem.root['index.js'].replace('require("foo")', ''); @@ -524,7 +557,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { delete filesystem.root.foo; triggerFileChange('delete', 'foo.js', root); @@ -571,7 +607,10 @@ describe('DependencyGraph', function() { } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { filesystem.root['bar.js'] = [ '/**', @@ -679,7 +718,7 @@ describe('DependencyGraph', function() { pit('should ignore directory updates', function() { var root = '/root'; - var filesystem = fs.__setMockFilesystem({ + fs.__setMockFilesystem({ 'root': { 'index.js': [ '/**', @@ -703,7 +742,10 @@ describe('DependencyGraph', function() { } } }); - var dgraph = new DependencyGraph({roots: [root], fileWatcher: fileWatcher}); + var dgraph = new DependencyGraph({ + roots: [root], + fileWatcher: fileWatcher + }); return dgraph.load().then(function() { triggerFileChange('change', 'aPackage', '/root', { isDirectory: function(){ return true; } diff --git a/react-packager/src/DependencyResolver/haste/DependencyGraph/docblock.js b/react-packager/src/DependencyResolver/haste/DependencyGraph/docblock.js index 52cac03b..c2b6ac98 100644 --- a/react-packager/src/DependencyResolver/haste/DependencyGraph/docblock.js +++ b/react-packager/src/DependencyResolver/haste/DependencyGraph/docblock.js @@ -14,6 +14,7 @@ * limitations under the License. */ +'use strict'; var docblockRe = /^\s*(\/\*\*(.|\r?\n)*?\*\/)/; @@ -35,7 +36,8 @@ var commentStartRe = /^\/\*\*?/; var commentEndRe = /\*\/$/; var wsRe = /[\t ]+/g; var stringStartRe = /(\r?\n|^) *\*/g; -var multilineRe = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *([^@\r\n\s][^@\r\n]+?) *\r?\n/g; +var multilineRe = + /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *([^@\r\n\s][^@\r\n]+?) *\r?\n/g; var propertyRe = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g; /** @@ -51,15 +53,15 @@ function parse(docblock) { // Normalize multi-line directives var prev = ''; - while (prev != docblock) { + while (prev !== docblock) { prev = docblock; - docblock = docblock.replace(multilineRe, "\n$1 $2\n"); + docblock = docblock.replace(multilineRe, '\n$1 $2\n'); } docblock = docblock.trim(); var result = []; var match; - while (match = propertyRe.exec(docblock)) { + while ((match = propertyRe.exec(docblock))) { result.push([match[1], match[2]]); } diff --git a/react-packager/src/DependencyResolver/haste/DependencyGraph/example.js b/react-packager/src/DependencyResolver/haste/DependencyGraph/example.js deleted file mode 100644 index 02e6c592..00000000 --- a/react-packager/src/DependencyResolver/haste/DependencyGraph/example.js +++ /dev/null @@ -1,25 +0,0 @@ -var path = require('path'); -var DependecyGraph = require('./'); - -var example_project = path.resolve(__dirname, '../../../../example_project'); -var watcher = new (require('../../../FileWatcher'))({projectRoot: example_project}); -var graph = new DependecyGraph({ - fileWatcher: watcher, - root: example_project -}); - -graph.load().then(function() { - var index = path.join(example_project, 'index.js'); - console.log(graph.getOrderedDependencies(index)); -}).done(); - -watcher.getWatcher().then(function(watcher) { - watcher.on('all', function() { - setImmediate(function() { - graph.load().then(function() { - var index = path.join(example_project, 'index.js'); - console.log(graph.getOrderedDependencies(index)); - }); - }) - }); -}); diff --git a/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js b/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js index 6a7d8bba..ce631856 100644 --- a/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js +++ b/react-packager/src/DependencyResolver/haste/DependencyGraph/index.js @@ -139,7 +139,7 @@ DependecyGraph.prototype.resolveDependency = function( depModuleId, fromModule.id ); - return; + return null; } var main = packageJson.main || 'index'; @@ -147,7 +147,7 @@ DependecyGraph.prototype.resolveDependency = function( dep = this._graph[modulePath]; if (dep == null) { throw new Error( - 'Cannot find package main file for pacakge: ' + packageJson._root + 'Cannot find package main file for package: ' + packageJson._root ); } return dep; @@ -223,7 +223,7 @@ DependecyGraph.prototype._search = function() { .then(function(filePaths) { filePaths = filePaths.filter(function(filePath) { if (filePath == null) { - return false + return false; } return !self._ignoreFilePath(filePath); @@ -454,7 +454,8 @@ DependecyGraph.prototype._getAbsolutePath = function(filePath) { return filePath; } - for (var i = 0, root; root = this._roots[i]; i++) { + for (var i = 0; i < this._roots.length; i++) { + var root = this._roots[i]; var absPath = path.join(root, filePath); if (this._graph[absPath]) { return absPath; diff --git a/react-packager/src/DependencyResolver/haste/__tests__/HasteDependencyResolver-test.js b/react-packager/src/DependencyResolver/haste/__tests__/HasteDependencyResolver-test.js index d3c4a7d9..9704c5b5 100644 --- a/react-packager/src/DependencyResolver/haste/__tests__/HasteDependencyResolver-test.js +++ b/react-packager/src/DependencyResolver/haste/__tests__/HasteDependencyResolver-test.js @@ -1,3 +1,4 @@ +'use strict'; jest.dontMock('../') .dontMock('q') @@ -7,7 +8,6 @@ var q = require('q'); describe('HasteDependencyResolver', function() { var HasteDependencyResolver; - var DependencyGraph; beforeEach(function() { // For the polyfillDeps @@ -15,7 +15,6 @@ describe('HasteDependencyResolver', function() { return b; }); HasteDependencyResolver = require('../'); - DependencyGraph = require('../DependencyGraph'); }); describe('getDependencies', function() { @@ -223,7 +222,7 @@ describe('HasteDependencyResolver', function() { }); var depGraph = depResolver._depGraph; - var dependencies = ['x', 'y', 'z'] + var dependencies = ['x', 'y', 'z']; var code = [ 'require("x")', 'require("y")', @@ -248,10 +247,10 @@ describe('HasteDependencyResolver', function() { }, code); expect(processedCode).toEqual([ - "__d('test module',[\"changed\",\"y\"],function(global," + - " require, requireDynamic, requireLazy, module, exports) {" + - " require('changed')", - "require('y')", + '__d(\'test module\',["changed","y"],function(global,' + + ' require, requireDynamic, requireLazy, module, exports) {' + + ' require(\'changed\')', + 'require(\'y\')', 'require("z")});', ].join('\n')); }); diff --git a/react-packager/src/DependencyResolver/haste/index.js b/react-packager/src/DependencyResolver/haste/index.js index dc497649..9cb0661a 100644 --- a/react-packager/src/DependencyResolver/haste/index.js +++ b/react-packager/src/DependencyResolver/haste/index.js @@ -6,14 +6,15 @@ var DependencyGraph = require('./DependencyGraph'); var ModuleDescriptor = require('../ModuleDescriptor'); var declareOpts = require('../../lib/declareOpts'); -var DEFINE_MODULE_CODE = - '__d(' + - '\'_moduleName_\',' + - '_deps_,' + - 'function(global, require, requireDynamic, requireLazy, module, exports) {'+ - ' _code_' + - '}' + - ');'; +var DEFINE_MODULE_CODE = [ + '__d(', + '\'_moduleName_\',', + '_deps_,', + 'function(global, require, requireDynamic, requireLazy, module, exports) {', + ' _code_', + '}', + ');', +].join(''); var DEFINE_MODULE_REPLACE_RE = /_moduleName_|_code_|_deps_/g; @@ -116,7 +117,6 @@ HasteDependencyResolver.prototype.wrapModule = function(module, code) { return code; } - var depGraph = this._depGraph; var resolvedDeps = Object.create(null); var resolvedDepsArr = []; @@ -131,9 +131,9 @@ HasteDependencyResolver.prototype.wrapModule = function(module, code) { var relativizedCode = code.replace(REL_REQUIRE_STMT, function(codeMatch, depName) { - var dep = resolvedDeps[depName]; - if (dep != null) { - return 'require(\'' + dep + '\')'; + var depId = resolvedDeps[depName]; + if (depId != null) { + return 'require(\'' + depId + '\')'; } else { return codeMatch; } diff --git a/react-packager/src/DependencyResolver/haste/polyfills/console.js b/react-packager/src/DependencyResolver/haste/polyfills/console.js index 4c9ddce1..bb83822d 100644 --- a/react-packager/src/DependencyResolver/haste/polyfills/console.js +++ b/react-packager/src/DependencyResolver/haste/polyfills/console.js @@ -20,7 +20,9 @@ * @polyfill */ +/*eslint global-strict:0*/ (function(global) { + 'use strict'; var OBJECT_COLUMN_NAME = '(index)'; @@ -45,7 +47,7 @@ if (typeof arg.toString === 'function') { try { return arg.toString(); - } catch (e) { + } catch (E) { return 'unknown'; } } @@ -53,7 +55,7 @@ } }).join(', '); global.nativeLoggingHook(str); - }; + } var repeat = function(element, n) { return Array.apply(null, Array(n)).map(function() { return element; }); @@ -120,7 +122,7 @@ // logged string, which would shift the header and screw up // the table global.nativeLoggingHook('\n' + table.join('\n')); - }; + } global.console = { error: doNativeLog, @@ -130,7 +132,7 @@ table: consoleTablePolyfill }; - }; + } if (typeof module !== 'undefined') { module.exports = setupConsole; diff --git a/react-packager/src/DependencyResolver/haste/polyfills/error-guard.js b/react-packager/src/DependencyResolver/haste/polyfills/error-guard.js index 687a4a19..745d650e 100644 --- a/react-packager/src/DependencyResolver/haste/polyfills/error-guard.js +++ b/react-packager/src/DependencyResolver/haste/polyfills/error-guard.js @@ -39,7 +39,7 @@ return ErrorUtils._inGuard; }, guard: function(fun, name, context) { - if (typeof fun !== "function") { + if (typeof fun !== 'function') { console.warn('A function must be passed to ErrorUtils.guard, got ', fun); return null; } diff --git a/react-packager/src/DependencyResolver/haste/polyfills/polyfills.js b/react-packager/src/DependencyResolver/haste/polyfills/polyfills.js index 2fd32246..75f74279 100644 --- a/react-packager/src/DependencyResolver/haste/polyfills/polyfills.js +++ b/react-packager/src/DependencyResolver/haste/polyfills/polyfills.js @@ -22,7 +22,7 @@ // WARNING: This is an optimized version that fails on hasOwnProperty checks // and non objects. It's not spec-compliant. It's a perf optimization. - +/* eslint global-strict:0 */ Object.assign = function(target, sources) { if (__DEV__) { if (target == null) { diff --git a/react-packager/src/DependencyResolver/haste/polyfills/prelude.js b/react-packager/src/DependencyResolver/haste/polyfills/prelude.js index 95c66983..9f4db44e 100644 --- a/react-packager/src/DependencyResolver/haste/polyfills/prelude.js +++ b/react-packager/src/DependencyResolver/haste/polyfills/prelude.js @@ -1 +1,2 @@ +/* eslint global-strict:0 */ __DEV__ = false; diff --git a/react-packager/src/DependencyResolver/haste/polyfills/prelude_dev.js b/react-packager/src/DependencyResolver/haste/polyfills/prelude_dev.js index a5ca53b7..26b26a07 100644 --- a/react-packager/src/DependencyResolver/haste/polyfills/prelude_dev.js +++ b/react-packager/src/DependencyResolver/haste/polyfills/prelude_dev.js @@ -1 +1,2 @@ +/* eslint global-strict:0 */ __DEV__ = true; diff --git a/react-packager/src/DependencyResolver/haste/polyfills/require.js b/react-packager/src/DependencyResolver/haste/polyfills/require.js index 3b5d6d87..e7fdde25 100644 --- a/react-packager/src/DependencyResolver/haste/polyfills/require.js +++ b/react-packager/src/DependencyResolver/haste/polyfills/require.js @@ -1,3 +1,4 @@ +/* eslint global-strict:0,eqeqeq:0,no-bitwise:0,no-undef:0 */ (function(global) { // avoid redefining require() diff --git a/react-packager/src/DependencyResolver/index.js b/react-packager/src/DependencyResolver/index.js index 79eb48c1..f42ecb8a 100644 --- a/react-packager/src/DependencyResolver/index.js +++ b/react-packager/src/DependencyResolver/index.js @@ -1,3 +1,5 @@ +'use strict'; + var HasteDependencyResolver = require('./haste'); var NodeDependencyResolver = require('./node'); diff --git a/react-packager/src/DependencyResolver/node/index.js b/react-packager/src/DependencyResolver/node/index.js index 0d3b807e..da03cc7e 100644 --- a/react-packager/src/DependencyResolver/node/index.js +++ b/react-packager/src/DependencyResolver/node/index.js @@ -1,17 +1,12 @@ +'use strict'; + var Promise = require('q').Promise; var ModuleDescriptor = require('../ModuleDescriptor'); var mdeps = require('module-deps'); var path = require('path'); -var fs = require('fs'); -// var REQUIRE_RUNTIME = fs.readFileSync( -// path.join(__dirname, 'require.js') -// ).toString(); - -exports.getRuntimeCode = function() { - return REQUIRE_RUNTIME; -}; +exports.getRuntimeCode = function() {}; exports.wrapModule = function(id, source) { return Promise.resolve( @@ -21,7 +16,7 @@ exports.wrapModule = function(id, source) { }; exports.getDependencies = function(root, fileEntryPath) { - return new Promise(function(resolve, reject) { + return new Promise(function(resolve) { fileEntryPath = path.join(process.cwd(), root, fileEntryPath); var md = mdeps(); diff --git a/react-packager/src/FileWatcher/__tests__/FileWatcher-test.js b/react-packager/src/FileWatcher/__tests__/FileWatcher-test.js index 8baae9e1..fc8a7a41 100644 --- a/react-packager/src/FileWatcher/__tests__/FileWatcher-test.js +++ b/react-packager/src/FileWatcher/__tests__/FileWatcher-test.js @@ -1,8 +1,12 @@ 'use strict'; -jest.dontMock('../') - .dontMock('q') - .setMock('child_process', { exec: function(cmd, cb) { cb(null, '/usr/bin/watchman') } }); +jest + .dontMock('../') + .dontMock('q') + .setMock( + 'child_process', + { exec: function(cmd, cb) { cb(null, '/usr/bin/watchman'); } } + ); describe('FileWatcher', function() { var FileWatcher; diff --git a/react-packager/src/JSTransformer/Cache.js b/react-packager/src/JSTransformer/Cache.js index f04ffe9f..f43418e3 100644 --- a/react-packager/src/JSTransformer/Cache.js +++ b/react-packager/src/JSTransformer/Cache.js @@ -1,9 +1,9 @@ 'use strict'; var path = require('path'); -var version = require('../../package.json').version; +var version = require('../../../../package.json').version; var tmpdir = require('os').tmpDir(); -var pathUtils = require('../fb-path-utils'); +var isAbsolutePath = require('absolute-path'); var declareOpts = require('../lib/declareOpts'); var fs = require('fs'); var _ = require('underscore'); @@ -48,7 +48,7 @@ function Cache(options) { } Cache.prototype.get = function(filepath, loaderCb) { - if (!pathUtils.isAbsolutePath(filepath)) { + if (!isAbsolutePath(filepath)) { throw new Error('Use absolute paths'); } @@ -62,7 +62,7 @@ Cache.prototype.get = function(filepath, loaderCb) { }; Cache.prototype._set = function(filepath, loaderPromise) { - return this._data[filepath] = loaderPromise.then(function(data) { + this._data[filepath] = loaderPromise.then(function(data) { return [ data, q.nfbind(fs.stat)(filepath) @@ -74,10 +74,12 @@ Cache.prototype._set = function(filepath, loaderPromise) { mtime: stat.mtime.getTime(), }; }.bind(this)); + + return this._data[filepath]; }; Cache.prototype.invalidate = function(filepath){ - if(this._has(filepath)) { + if (this._has(filepath)) { delete this._data[filepath]; } }; @@ -94,7 +96,7 @@ Cache.prototype._persistCache = function() { var data = this._data; var cacheFilepath = this._cacheFilePath; - return this._persisting = q.all(_.values(data)) + this._persisting = q.all(_.values(data)) .then(function(values) { var json = Object.create(null); Object.keys(data).forEach(function(key, i) { @@ -106,6 +108,8 @@ Cache.prototype._persistCache = function() { this._persisting = null; return true; }.bind(this)); + + return this._persisting; }; function loadCacheSync(cacheFilepath) { diff --git a/react-packager/src/JSTransformer/__tests__/Cache-test.js b/react-packager/src/JSTransformer/__tests__/Cache-test.js index c77c6384..232d6ff4 100644 --- a/react-packager/src/JSTransformer/__tests__/Cache-test.js +++ b/react-packager/src/JSTransformer/__tests__/Cache-test.js @@ -5,7 +5,6 @@ jest .dontMock('path') .dontMock('q') .dontMock('absolute-path') - .dontMock('../../fb-path-utils') .dontMock('../Cache'); var q = require('q'); diff --git a/react-packager/src/JSTransformer/index.js b/react-packager/src/JSTransformer/index.js index ade206a7..4f98d588 100644 --- a/react-packager/src/JSTransformer/index.js +++ b/react-packager/src/JSTransformer/index.js @@ -7,6 +7,7 @@ var Cache = require('./Cache'); var _ = require('underscore'); var workerFarm = require('worker-farm'); var declareOpts = require('../lib/declareOpts'); +var util = require('util'); var readFile = q.nfbind(fs.readFile); @@ -75,9 +76,7 @@ Transformer.prototype.kill = function() { Transformer.prototype.invalidateFile = function(filePath) { this._cache.invalidate(filePath); - //TODO: We can read the file and put it into the cache right here - // This would simplify some caching logic as we can be sure that the cache is up to date -} +}; Transformer.prototype.loadFileAndTransform = function( transformSets, @@ -116,7 +115,7 @@ Transformer.prototype.loadFileAndTransform = function( }; function TransformError() {} -TransformError.__proto__ = SyntaxError.prototype; +util.inherits(TransformError, SyntaxError); function formatEsprimaError(err, filename, source) { if (!(err.lineNumber && err.column)) { diff --git a/react-packager/src/Packager/Package.js b/react-packager/src/Packager/Package.js index 787684bc..a4080d3b 100644 --- a/react-packager/src/Packager/Package.js +++ b/react-packager/src/Packager/Package.js @@ -1,7 +1,6 @@ 'use strict'; var _ = require('underscore'); -var SourceMapGenerator = require('source-map').SourceMapGenerator; var base64VLQ = require('./base64-vlq'); module.exports = Package; @@ -102,7 +101,7 @@ Package.prototype._getMappings = function() { mappings += ';'; } } - if (i != modules.length - 1) { + if (i !== modules.length - 1) { mappings += ';'; } } diff --git a/react-packager/src/Packager/__mocks__/source-map.js b/react-packager/src/Packager/__mocks__/source-map.js deleted file mode 100644 index 08c127f6..00000000 --- a/react-packager/src/Packager/__mocks__/source-map.js +++ /dev/null @@ -1,5 +0,0 @@ -var SourceMapGenerator = jest.genMockFn(); -SourceMapGenerator.prototype.addMapping = jest.genMockFn(); -SourceMapGenerator.prototype.setSourceContent = jest.genMockFn(); -SourceMapGenerator.prototype.toJSON = jest.genMockFn(); -exports.SourceMapGenerator = SourceMapGenerator; diff --git a/react-packager/src/Packager/__tests__/Package-test.js b/react-packager/src/Packager/__tests__/Package-test.js index d18bb4d6..d269eb57 100644 --- a/react-packager/src/Packager/__tests__/Package-test.js +++ b/react-packager/src/Packager/__tests__/Package-test.js @@ -50,13 +50,13 @@ describe('Package', function() { describe('sourcemap package', function() { it('should create sourcemap', function() { - var ppackage = new Package('test_url'); - ppackage.addModule('transformed foo;\n', 'source foo', 'foo path'); - ppackage.addModule('transformed bar;\n', 'source bar', 'bar path'); - ppackage.setMainModuleId('foo'); - ppackage.finalize({runMainModule: true}); - var s = ppackage.getSourceMap(); - expect(s).toEqual(genSourceMap(ppackage._modules)); + var p = new Package('test_url'); + p.addModule('transformed foo;\n', 'source foo', 'foo path'); + p.addModule('transformed bar;\n', 'source bar', 'bar path'); + p.setMainModuleId('foo'); + p.finalize({runMainModule: true}); + var s = p.getSourceMap(); + expect(s).toEqual(genSourceMap(p._modules)); }); }); }); @@ -92,4 +92,4 @@ describe('Package', function() { ); } return sourceMapGen.toJSON(); -}; + } diff --git a/react-packager/src/Packager/base64-vlq.js b/react-packager/src/Packager/base64-vlq.js index 91d490b7..4483a507 100644 --- a/react-packager/src/Packager/base64-vlq.js +++ b/react-packager/src/Packager/base64-vlq.js @@ -35,9 +35,11 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/*eslint no-bitwise:0,quotes:0,global-strict:0*/ + var charToIntMap = {}; var intToCharMap = {}; - + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' .split('') .forEach(function (ch, index) { @@ -55,7 +57,7 @@ base64.encode = function base64_encode(aNumber) { } throw new TypeError("Must be between 0 and 63: " + aNumber); }; - + /** * Decode a single base 64 digit to an integer. */ @@ -65,7 +67,7 @@ base64.decode = function base64_decode(aChar) { } throw new TypeError("Not a valid base 64 digit: " + aChar); }; - + // A single base 64 digit can contain 6 bits of data. For the base 64 variable @@ -165,4 +167,3 @@ exports.decode = function base64VLQ_decode(aStr, aOutParam) { aOutParam.value = fromVLQSigned(result); aOutParam.rest = aStr.slice(i); }; - diff --git a/react-packager/src/Server/__tests__/Server-test.js b/react-packager/src/Server/__tests__/Server-test.js index 690c7e06..a9951f60 100644 --- a/react-packager/src/Server/__tests__/Server-test.js +++ b/react-packager/src/Server/__tests__/Server-test.js @@ -1,4 +1,6 @@ -jest.setMock('worker-farm', function(){ return function(){}; }) +'use strict'; + +jest.setMock('worker-farm', function() { return function() {}; }) .dontMock('q') .dontMock('os') .dontMock('errno/custom') @@ -8,9 +10,8 @@ jest.setMock('worker-farm', function(){ return function(){}; }) var q = require('q'); -describe('processRequest', function(){ +describe('processRequest', function() { var server; - var Activity; var Packager; var FileWatcher; @@ -21,16 +22,16 @@ describe('processRequest', function(){ polyfillModuleNames: null }; - var makeRequest = function(requestHandler, requrl){ + var makeRequest = function(requestHandler, requrl) { var deferred = q.defer(); requestHandler({ url: requrl },{ - end: function(res){ + end: function(res) { deferred.resolve(res); } },{ - next: function(){} + next: function() {} } ); return deferred.promise; @@ -40,8 +41,7 @@ describe('processRequest', function(){ var watcherFunc = jest.genMockFunction(); var requestHandler; - beforeEach(function(){ - Activity = require('../../Activity'); + beforeEach(function() { Packager = require('../../Packager'); FileWatcher = require('../../FileWatcher'); @@ -50,7 +50,7 @@ describe('processRequest', function(){ getSource: function() { return 'this is the source'; }, - getSourceMap: function(){ + getSourceMap: function() { return 'this is the source map'; }, }); @@ -65,26 +65,32 @@ describe('processRequest', function(){ requestHandler = server.processRequest.bind(server); }); - pit('returns JS bundle source on request of *.bundle',function(){ - result = makeRequest(requestHandler,'mybundle.includeRequire.runModule.bundle'); - return result.then(function(response){ - expect(response).toEqual("this is the source"); + pit('returns JS bundle source on request of *.bundle',function() { + return makeRequest( + requestHandler, + 'mybundle.includeRequire.runModule.bundle' + ).then(function(response) { + expect(response).toEqual('this is the source'); }); }); - pit('returns sourcemap on request of *.map', function(){ - result = makeRequest(requestHandler,'mybundle.includeRequire.runModule.bundle.map'); - return result.then(function(response){ - expect(response).toEqual('"this is the source map"'); + pit('returns sourcemap on request of *.map', function() { + makeRequest( + requestHandler, + 'mybundle.includeRequire.runModule.bundle.map' + ).then(function(response) { + expect(response).toEqual('this is the source map'); }); }); - pit('watches all files in projectRoot', function(){ - result = makeRequest(requestHandler,'mybundle.includeRequire.runModule.bundle'); - return result.then(function(response){ + pit('watches all files in projectRoot', function() { + makeRequest( + requestHandler, + 'mybundle.includeRequire.runModule.bundle' + ).then(function(response) { expect(watcherFunc.mock.calls[0][0]).toEqual('all'); expect(watcherFunc.mock.calls[0][1]).not.toBe(null); - }) + }); }); @@ -101,8 +107,10 @@ describe('processRequest', function(){ }); pit('invalides files in package when file is updated', function() { - result = makeRequest(requestHandler,'mybundle.includeRequire.runModule.bundle'); - return result.then(function(response){ + makeRequest( + requestHandler, + 'mybundle.includeRequire.runModule.bundle' + ).then(function(response) { var onFileChange = watcherFunc.mock.calls[0][1]; onFileChange('all','path/file.js', options.projectRoots[0]); expect(invalidatorFunc.mock.calls[0][0]).toEqual('root/path/file.js'); @@ -114,41 +122,41 @@ describe('processRequest', function(){ packageFunc .mockReturnValueOnce( q({ - getSource: function(){ - return "this is the first source" + getSource: function() { + return 'this is the first source'; }, - getSourceMap: function(){}, + getSourceMap: function() {}, }) ) .mockReturnValue( q({ - getSource: function(){ - return "this is the rebuilt source" + getSource: function() { + return 'this is the rebuilt source'; }, - getSourceMap: function(){}, + getSourceMap: function() {}, }) ); Packager.prototype.package = packageFunc; var Server = require('../../Server'); - var server = new Server(options); + server = new Server(options); requestHandler = server.processRequest.bind(server); return makeRequest(requestHandler,'mybundle.includeRequire.runModule.bundle') - .then(function(response){ - expect(response).toEqual("this is the first source"); + .then(function(response) { + expect(response).toEqual('this is the first source'); expect(packageFunc.mock.calls.length).toBe(1); triggerFileChange('all','path/file.js', options.projectRoots[0]); jest.runAllTimers(); }) - .then(function(){ + .then(function() { expect(packageFunc.mock.calls.length).toBe(2); return makeRequest(requestHandler,'mybundle.includeRequire.runModule.bundle') - .then(function(response){ - expect(response).toEqual("this is the rebuilt source"); + .then(function(response) { + expect(response).toEqual('this is the rebuilt source'); }); }); }); diff --git a/react-packager/src/Server/index.js b/react-packager/src/Server/index.js index 611d703e..1f5b7ff1 100644 --- a/react-packager/src/Server/index.js +++ b/react-packager/src/Server/index.js @@ -1,3 +1,5 @@ +'use strict'; + var url = require('url'); var path = require('path'); var declareOpts = require('../lib/declareOpts'); @@ -154,7 +156,7 @@ Server.prototype.processRequest = function(req, res, next) { var startReqEventId = Activity.startEvent('request:' + req.url); var options = getOptionsFromPath(url.parse(req.url).pathname); - var building = this._packages[req.url] || this._buildPackage(options) + var building = this._packages[req.url] || this._buildPackage(options); this._packages[req.url] = building; building.then( function(p) { diff --git a/react-packager/src/fb-path-utils/index.js b/react-packager/src/fb-path-utils/index.js deleted file mode 100644 index b4a1cb96..00000000 --- a/react-packager/src/fb-path-utils/index.js +++ /dev/null @@ -1,14 +0,0 @@ -var absolutePath = require('absolute-path'); -var path = require('path'); -var pathIsInside = require('path-is-inside'); - -function isAbsolutePath(pathStr) { - return absolutePath(pathStr); -} - -function isChildPath(parentPath, childPath) { - return pathIsInside(parentPath, childPath); -} - -exports.isAbsolutePath = isAbsolutePath; -exports.isChildPath = isChildPath; diff --git a/react-packager/src/lib/__mocks__/declareOpts.js b/react-packager/src/lib/__mocks__/declareOpts.js index 2f7ae1f6..1afe4e29 100644 --- a/react-packager/src/lib/__mocks__/declareOpts.js +++ b/react-packager/src/lib/__mocks__/declareOpts.js @@ -1,3 +1,5 @@ +'use strict'; + module.exports = function(declared) { return function(opts) { for (var p in declared) { diff --git a/react-packager/src/lib/__tests__/declareOpts-test.js b/react-packager/src/lib/__tests__/declareOpts-test.js index 044e3a1c..66ae174f 100644 --- a/react-packager/src/lib/__tests__/declareOpts-test.js +++ b/react-packager/src/lib/__tests__/declareOpts-test.js @@ -1,3 +1,5 @@ +'use strict'; + jest.autoMockOff(); var declareOpts = require('../declareOpts'); diff --git a/react-packager/src/lib/declareOpts.js b/react-packager/src/lib/declareOpts.js index 2bac59f3..ddd06061 100644 --- a/react-packager/src/lib/declareOpts.js +++ b/react-packager/src/lib/declareOpts.js @@ -10,6 +10,8 @@ * var myOptions = validate(someOptions); */ +'use strict'; + var Joi = require('joi'); module.exports = function(descriptor) {