BVB Source Codes

reactide Show index.js Source code

Return Download reactide: download index.js Source code - Download reactide Source code - Type:.js
  1. "use strict";
  2.  
  3. exports.__esModule = true;
  4.  
  5. var _keys = require("babel-runtime/core-js/object/keys");
  6.  
  7. var _keys2 = _interopRequireDefault(_keys);
  8.  
  9. var _create = require("babel-runtime/core-js/object/create");
  10.  
  11. var _create2 = _interopRequireDefault(_create);
  12.  
  13. var _getIterator2 = require("babel-runtime/core-js/get-iterator");
  14.  
  15. var _getIterator3 = _interopRequireDefault(_getIterator2);
  16.  
  17. var _symbol = require("babel-runtime/core-js/symbol");
  18.  
  19. var _symbol2 = _interopRequireDefault(_symbol);
  20.  
  21. exports.default = function () {
  22.   var REASSIGN_REMAP_SKIP = (0, _symbol2.default)();
  23.  
  24.   var reassignmentVisitor = {
  25.     ReferencedIdentifier: function ReferencedIdentifier(path) {
  26.       var name = path.node.name;
  27.       var remap = this.remaps[name];
  28.       if (!remap) return;
  29.  
  30.       if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return;
  31.  
  32.       if (path.parentPath.isCallExpression({ callee: path.node })) {
  33.         path.replaceWith(t.sequenceExpression([t.numericLiteral(0), remap]));
  34.       } else if (path.isJSXIdentifier() && t.isMemberExpression(remap)) {
  35.         var object = remap.object,
  36.             property = remap.property;
  37.  
  38.         path.replaceWith(t.JSXMemberExpression(t.JSXIdentifier(object.name), t.JSXIdentifier(property.name)));
  39.       } else {
  40.         path.replaceWith(remap);
  41.       }
  42.       this.requeueInParent(path);
  43.     },
  44.     AssignmentExpression: function AssignmentExpression(path) {
  45.       var node = path.node;
  46.       if (node[REASSIGN_REMAP_SKIP]) return;
  47.  
  48.       var left = path.get("left");
  49.       if (!left.isIdentifier()) return;
  50.  
  51.       var name = left.node.name;
  52.       var exports = this.exports[name];
  53.       if (!exports) return;
  54.  
  55.       if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return;
  56.  
  57.       node[REASSIGN_REMAP_SKIP] = true;
  58.  
  59.       for (var _iterator = exports, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
  60.         var _ref;
  61.  
  62.         if (_isArray) {
  63.           if (_i >= _iterator.length) break;
  64.           _ref = _iterator[_i++];
  65.         } else {
  66.           _i = _iterator.next();
  67.           if (_i.done) break;
  68.           _ref = _i.value;
  69.         }
  70.  
  71.         var reid = _ref;
  72.  
  73.         node = buildExportsAssignment(reid, node).expression;
  74.       }
  75.  
  76.       path.replaceWith(node);
  77.       this.requeueInParent(path);
  78.     },
  79.     UpdateExpression: function UpdateExpression(path) {
  80.       var arg = path.get("argument");
  81.       if (!arg.isIdentifier()) return;
  82.  
  83.       var name = arg.node.name;
  84.       var exports = this.exports[name];
  85.       if (!exports) return;
  86.  
  87.       if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return;
  88.  
  89.       var node = t.assignmentExpression(path.node.operator[0] + "=", arg.node, t.numericLiteral(1));
  90.  
  91.       if (path.parentPath.isExpressionStatement() && !path.isCompletionRecord() || path.node.prefix) {
  92.         path.replaceWith(node);
  93.         this.requeueInParent(path);
  94.         return;
  95.       }
  96.  
  97.       var nodes = [];
  98.       nodes.push(node);
  99.  
  100.       var operator = void 0;
  101.       if (path.node.operator === "--") {
  102.         operator = "+";
  103.       } else {
  104.         operator = "-";
  105.       }
  106.       nodes.push(t.binaryExpression(operator, arg.node, t.numericLiteral(1)));
  107.  
  108.       path.replaceWithMultiple(t.sequenceExpression(nodes));
  109.     }
  110.   };
  111.  
  112.   return {
  113.     inherits: require("babel-plugin-transform-strict-mode"),
  114.  
  115.     visitor: {
  116.       ThisExpression: function ThisExpression(path, state) {
  117.         if (this.ranCommonJS) return;
  118.  
  119.         if (state.opts.allowTopLevelThis !== true && !path.findParent(function (path) {
  120.           return !path.is("shadow") && THIS_BREAK_KEYS.indexOf(path.type) >= 0;
  121.         })) {
  122.           path.replaceWith(t.identifier("undefined"));
  123.         }
  124.       },
  125.  
  126.  
  127.       Program: {
  128.         exit: function exit(path) {
  129.           this.ranCommonJS = true;
  130.  
  131.           var strict = !!this.opts.strict;
  132.           var noInterop = !!this.opts.noInterop;
  133.  
  134.           var scope = path.scope;
  135.  
  136.           scope.rename("module");
  137.           scope.rename("exports");
  138.           scope.rename("require");
  139.  
  140.           var hasExports = false;
  141.           var hasImports = false;
  142.  
  143.           var body = path.get("body");
  144.           var imports = (0, _create2.default)(null);
  145.           var exports = (0, _create2.default)(null);
  146.  
  147.           var nonHoistedExportNames = (0, _create2.default)(null);
  148.  
  149.           var topNodes = [];
  150.           var remaps = (0, _create2.default)(null);
  151.  
  152.           var requires = (0, _create2.default)(null);
  153.  
  154.           function addRequire(source, blockHoist) {
  155.             var cached = requires[source];
  156.             if (cached) return cached;
  157.  
  158.             var ref = path.scope.generateUidIdentifier((0, _path2.basename)(source, (0, _path2.extname)(source)));
  159.  
  160.             var varDecl = t.variableDeclaration("var", [t.variableDeclarator(ref, buildRequire(t.stringLiteral(source)).expression)]);
  161.  
  162.             if (imports[source]) {
  163.               varDecl.loc = imports[source].loc;
  164.             }
  165.  
  166.             if (typeof blockHoist === "number" && blockHoist > 0) {
  167.               varDecl._blockHoist = blockHoist;
  168.             }
  169.  
  170.             topNodes.push(varDecl);
  171.  
  172.             return requires[source] = ref;
  173.           }
  174.  
  175.           function addTo(obj, key, arr) {
  176.             var existing = obj[key] || [];
  177.             obj[key] = existing.concat(arr);
  178.           }
  179.  
  180.           for (var _iterator2 = body, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
  181.             var _ref2;
  182.  
  183.             if (_isArray2) {
  184.               if (_i2 >= _iterator2.length) break;
  185.               _ref2 = _iterator2[_i2++];
  186.             } else {
  187.               _i2 = _iterator2.next();
  188.               if (_i2.done) break;
  189.               _ref2 = _i2.value;
  190.             }
  191.  
  192.             var _path = _ref2;
  193.  
  194.             if (_path.isExportDeclaration()) {
  195.               hasExports = true;
  196.  
  197.               var specifiers = [].concat(_path.get("declaration"), _path.get("specifiers"));
  198.               for (var _iterator4 = specifiers, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : (0, _getIterator3.default)(_iterator4);;) {
  199.                 var _ref4;
  200.  
  201.                 if (_isArray4) {
  202.                   if (_i4 >= _iterator4.length) break;
  203.                   _ref4 = _iterator4[_i4++];
  204.                 } else {
  205.                   _i4 = _iterator4.next();
  206.                   if (_i4.done) break;
  207.                   _ref4 = _i4.value;
  208.                 }
  209.  
  210.                 var _specifier2 = _ref4;
  211.  
  212.                 var ids = _specifier2.getBindingIdentifiers();
  213.                 if (ids.__esModule) {
  214.                   throw _specifier2.buildCodeFrameError("Illegal export \"__esModule\"");
  215.                 }
  216.               }
  217.             }
  218.  
  219.             if (_path.isImportDeclaration()) {
  220.               var _importsEntry$specifi;
  221.  
  222.               hasImports = true;
  223.  
  224.               var key = _path.node.source.value;
  225.               var importsEntry = imports[key] || {
  226.                 specifiers: [],
  227.                 maxBlockHoist: 0,
  228.                 loc: _path.node.loc
  229.               };
  230.  
  231.               (_importsEntry$specifi = importsEntry.specifiers).push.apply(_importsEntry$specifi, _path.node.specifiers);
  232.  
  233.               if (typeof _path.node._blockHoist === "number") {
  234.                 importsEntry.maxBlockHoist = Math.max(_path.node._blockHoist, importsEntry.maxBlockHoist);
  235.               }
  236.  
  237.               imports[key] = importsEntry;
  238.  
  239.               _path.remove();
  240.             } else if (_path.isExportDefaultDeclaration()) {
  241.               var declaration = _path.get("declaration");
  242.               if (declaration.isFunctionDeclaration()) {
  243.                 var id = declaration.node.id;
  244.                 var defNode = t.identifier("default");
  245.                 if (id) {
  246.                   addTo(exports, id.name, defNode);
  247.                   topNodes.push(buildExportsAssignment(defNode, id));
  248.                   _path.replaceWith(declaration.node);
  249.                 } else {
  250.                   topNodes.push(buildExportsAssignment(defNode, t.toExpression(declaration.node)));
  251.                   _path.remove();
  252.                 }
  253.               } else if (declaration.isClassDeclaration()) {
  254.                 var _id = declaration.node.id;
  255.                 var _defNode = t.identifier("default");
  256.                 if (_id) {
  257.                   addTo(exports, _id.name, _defNode);
  258.                   _path.replaceWithMultiple([declaration.node, buildExportsAssignment(_defNode, _id)]);
  259.                 } else {
  260.                   _path.replaceWith(buildExportsAssignment(_defNode, t.toExpression(declaration.node)));
  261.  
  262.                   _path.parentPath.requeue(_path.get("expression.left"));
  263.                 }
  264.               } else {
  265.                 _path.replaceWith(buildExportsAssignment(t.identifier("default"), declaration.node));
  266.  
  267.                 _path.parentPath.requeue(_path.get("expression.left"));
  268.               }
  269.             } else if (_path.isExportNamedDeclaration()) {
  270.               var _declaration = _path.get("declaration");
  271.               if (_declaration.node) {
  272.                 if (_declaration.isFunctionDeclaration()) {
  273.                   var _id2 = _declaration.node.id;
  274.                   addTo(exports, _id2.name, _id2);
  275.                   topNodes.push(buildExportsAssignment(_id2, _id2));
  276.                   _path.replaceWith(_declaration.node);
  277.                 } else if (_declaration.isClassDeclaration()) {
  278.                   var _id3 = _declaration.node.id;
  279.                   addTo(exports, _id3.name, _id3);
  280.                   _path.replaceWithMultiple([_declaration.node, buildExportsAssignment(_id3, _id3)]);
  281.                   nonHoistedExportNames[_id3.name] = true;
  282.                 } else if (_declaration.isVariableDeclaration()) {
  283.                   var declarators = _declaration.get("declarations");
  284.                   for (var _iterator5 = declarators, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : (0, _getIterator3.default)(_iterator5);;) {
  285.                     var _ref5;
  286.  
  287.                     if (_isArray5) {
  288.                       if (_i5 >= _iterator5.length) break;
  289.                       _ref5 = _iterator5[_i5++];
  290.                     } else {
  291.                       _i5 = _iterator5.next();
  292.                       if (_i5.done) break;
  293.                       _ref5 = _i5.value;
  294.                     }
  295.  
  296.                     var decl = _ref5;
  297.  
  298.                     var _id4 = decl.get("id");
  299.  
  300.                     var init = decl.get("init");
  301.                     if (!init.node) init.replaceWith(t.identifier("undefined"));
  302.  
  303.                     if (_id4.isIdentifier()) {
  304.                       addTo(exports, _id4.node.name, _id4.node);
  305.                       init.replaceWith(buildExportsAssignment(_id4.node, init.node).expression);
  306.                       nonHoistedExportNames[_id4.node.name] = true;
  307.                     } else {}
  308.                   }
  309.                   _path.replaceWith(_declaration.node);
  310.                 }
  311.                 continue;
  312.               }
  313.  
  314.               var _specifiers = _path.get("specifiers");
  315.               var nodes = [];
  316.               var _source = _path.node.source;
  317.               if (_source) {
  318.                 var ref = addRequire(_source.value, _path.node._blockHoist);
  319.  
  320.                 for (var _iterator6 = _specifiers, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : (0, _getIterator3.default)(_iterator6);;) {
  321.                   var _ref6;
  322.  
  323.                   if (_isArray6) {
  324.                     if (_i6 >= _iterator6.length) break;
  325.                     _ref6 = _iterator6[_i6++];
  326.                   } else {
  327.                     _i6 = _iterator6.next();
  328.                     if (_i6.done) break;
  329.                     _ref6 = _i6.value;
  330.                   }
  331.  
  332.                   var _specifier3 = _ref6;
  333.  
  334.                   if (_specifier3.isExportNamespaceSpecifier()) {} else if (_specifier3.isExportDefaultSpecifier()) {} else if (_specifier3.isExportSpecifier()) {
  335.                     if (!noInterop && _specifier3.node.local.name === "default") {
  336.                       topNodes.push(buildExportsFrom(t.stringLiteral(_specifier3.node.exported.name), t.memberExpression(t.callExpression(this.addHelper("interopRequireDefault"), [ref]), _specifier3.node.local)));
  337.                     } else {
  338.                       topNodes.push(buildExportsFrom(t.stringLiteral(_specifier3.node.exported.name), t.memberExpression(ref, _specifier3.node.local)));
  339.                     }
  340.                     nonHoistedExportNames[_specifier3.node.exported.name] = true;
  341.                   }
  342.                 }
  343.               } else {
  344.                 for (var _iterator7 = _specifiers, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : (0, _getIterator3.default)(_iterator7);;) {
  345.                   var _ref7;
  346.  
  347.                   if (_isArray7) {
  348.                     if (_i7 >= _iterator7.length) break;
  349.                     _ref7 = _iterator7[_i7++];
  350.                   } else {
  351.                     _i7 = _iterator7.next();
  352.                     if (_i7.done) break;
  353.                     _ref7 = _i7.value;
  354.                   }
  355.  
  356.                   var _specifier4 = _ref7;
  357.  
  358.                   if (_specifier4.isExportSpecifier()) {
  359.                     addTo(exports, _specifier4.node.local.name, _specifier4.node.exported);
  360.                     nonHoistedExportNames[_specifier4.node.exported.name] = true;
  361.                     nodes.push(buildExportsAssignment(_specifier4.node.exported, _specifier4.node.local));
  362.                   }
  363.                 }
  364.               }
  365.               _path.replaceWithMultiple(nodes);
  366.             } else if (_path.isExportAllDeclaration()) {
  367.               var exportNode = buildExportAll({
  368.                 OBJECT: addRequire(_path.node.source.value, _path.node._blockHoist)
  369.               });
  370.               exportNode.loc = _path.node.loc;
  371.               topNodes.push(exportNode);
  372.               _path.remove();
  373.             }
  374.           }
  375.  
  376.           for (var source in imports) {
  377.             var _imports$source = imports[source],
  378.                 specifiers = _imports$source.specifiers,
  379.                 maxBlockHoist = _imports$source.maxBlockHoist;
  380.  
  381.             if (specifiers.length) {
  382.               var uid = addRequire(source, maxBlockHoist);
  383.  
  384.               var wildcard = void 0;
  385.  
  386.               for (var i = 0; i < specifiers.length; i++) {
  387.                 var specifier = specifiers[i];
  388.                 if (t.isImportNamespaceSpecifier(specifier)) {
  389.                   if (strict || noInterop) {
  390.                     remaps[specifier.local.name] = uid;
  391.                   } else {
  392.                     var varDecl = t.variableDeclaration("var", [t.variableDeclarator(specifier.local, t.callExpression(this.addHelper("interopRequireWildcard"), [uid]))]);
  393.  
  394.                     if (maxBlockHoist > 0) {
  395.                       varDecl._blockHoist = maxBlockHoist;
  396.                     }
  397.  
  398.                     topNodes.push(varDecl);
  399.                   }
  400.                   wildcard = specifier.local;
  401.                 } else if (t.isImportDefaultSpecifier(specifier)) {
  402.                   specifiers[i] = t.importSpecifier(specifier.local, t.identifier("default"));
  403.                 }
  404.               }
  405.  
  406.               for (var _iterator3 = specifiers, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : (0, _getIterator3.default)(_iterator3);;) {
  407.                 var _ref3;
  408.  
  409.                 if (_isArray3) {
  410.                   if (_i3 >= _iterator3.length) break;
  411.                   _ref3 = _iterator3[_i3++];
  412.                 } else {
  413.                   _i3 = _iterator3.next();
  414.                   if (_i3.done) break;
  415.                   _ref3 = _i3.value;
  416.                 }
  417.  
  418.                 var _specifier = _ref3;
  419.  
  420.                 if (t.isImportSpecifier(_specifier)) {
  421.                   var target = uid;
  422.                   if (_specifier.imported.name === "default") {
  423.                     if (wildcard) {
  424.                       target = wildcard;
  425.                     } else if (!noInterop) {
  426.                       target = wildcard = path.scope.generateUidIdentifier(uid.name);
  427.                       var _varDecl = t.variableDeclaration("var", [t.variableDeclarator(target, t.callExpression(this.addHelper("interopRequireDefault"), [uid]))]);
  428.  
  429.                       if (maxBlockHoist > 0) {
  430.                         _varDecl._blockHoist = maxBlockHoist;
  431.                       }
  432.  
  433.                       topNodes.push(_varDecl);
  434.                     }
  435.                   }
  436.                   remaps[_specifier.local.name] = t.memberExpression(target, t.cloneWithoutLoc(_specifier.imported));
  437.                 }
  438.               }
  439.             } else {
  440.               var requireNode = buildRequire(t.stringLiteral(source));
  441.               requireNode.loc = imports[source].loc;
  442.               topNodes.push(requireNode);
  443.             }
  444.           }
  445.  
  446.           if (hasImports && (0, _keys2.default)(nonHoistedExportNames).length) {
  447.             var maxHoistedExportsNodeAssignmentLength = 100;
  448.             var nonHoistedExportNamesArr = (0, _keys2.default)(nonHoistedExportNames);
  449.  
  450.             var _loop = function _loop(currentExportsNodeAssignmentLength) {
  451.               var nonHoistedExportNamesChunk = nonHoistedExportNamesArr.slice(currentExportsNodeAssignmentLength, currentExportsNodeAssignmentLength + maxHoistedExportsNodeAssignmentLength);
  452.  
  453.               var hoistedExportsNode = t.identifier("undefined");
  454.  
  455.               nonHoistedExportNamesChunk.forEach(function (name) {
  456.                 hoistedExportsNode = buildExportsAssignment(t.identifier(name), hoistedExportsNode).expression;
  457.               });
  458.  
  459.               var node = t.expressionStatement(hoistedExportsNode);
  460.               node._blockHoist = 3;
  461.  
  462.               topNodes.unshift(node);
  463.             };
  464.  
  465.             for (var currentExportsNodeAssignmentLength = 0; currentExportsNodeAssignmentLength < nonHoistedExportNamesArr.length; currentExportsNodeAssignmentLength += maxHoistedExportsNodeAssignmentLength) {
  466.               _loop(currentExportsNodeAssignmentLength);
  467.             }
  468.           }
  469.  
  470.           if (hasExports && !strict) {
  471.             var buildTemplate = buildExportsModuleDeclaration;
  472.             if (this.opts.loose) buildTemplate = buildLooseExportsModuleDeclaration;
  473.  
  474.             var declar = buildTemplate();
  475.             declar._blockHoist = 3;
  476.  
  477.             topNodes.unshift(declar);
  478.           }
  479.  
  480.           path.unshiftContainer("body", topNodes);
  481.           path.traverse(reassignmentVisitor, {
  482.             remaps: remaps,
  483.             scope: scope,
  484.             exports: exports,
  485.             requeueInParent: function requeueInParent(newPath) {
  486.               return path.requeue(newPath);
  487.             }
  488.           });
  489.         }
  490.       }
  491.     }
  492.   };
  493. };
  494.  
  495. var _path2 = require("path");
  496.  
  497. var _babelTemplate = require("babel-template");
  498.  
  499. var _babelTemplate2 = _interopRequireDefault(_babelTemplate);
  500.  
  501. var _babelTypes = require("babel-types");
  502.  
  503. var t = _interopRequireWildcard(_babelTypes);
  504.  
  505. function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
  506.  
  507. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  508.  
  509. var buildRequire = (0, _babelTemplate2.default)("\n  require($0);\n");
  510.  
  511. var buildExportsModuleDeclaration = (0, _babelTemplate2.default)("\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n");
  512.  
  513. var buildExportsFrom = (0, _babelTemplate2.default)("\n  Object.defineProperty(exports, $0, {\n    enumerable: true,\n    get: function () {\n      return $1;\n    }\n  });\n");
  514.  
  515. var buildLooseExportsModuleDeclaration = (0, _babelTemplate2.default)("\n  exports.__esModule = true;\n");
  516.  
  517. var buildExportsAssignment = (0, _babelTemplate2.default)("\n  exports.$0 = $1;\n");
  518.  
  519. var buildExportAll = (0, _babelTemplate2.default)("\n  Object.keys(OBJECT).forEach(function (key) {\n    if (key === \"default\" || key === \"__esModule\") return;\n    Object.defineProperty(exports, key, {\n      enumerable: true,\n      get: function () {\n        return OBJECT[key];\n      }\n    });\n  });\n");
  520.  
  521. var THIS_BREAK_KEYS = ["FunctionExpression", "FunctionDeclaration", "ClassProperty", "ClassMethod", "ObjectMethod"];
  522.  
  523. module.exports = exports["default"];
downloadindex.js Source code - Download reactide Source code
Related Source Codes/Software:
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
postal - 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top