summaryrefslogtreecommitdiffstats
path: root/node_modules/babel-plugin-transform-es2015-modules-systemjs
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-plugin-transform-es2015-modules-systemjs')
-rw-r--r--node_modules/babel-plugin-transform-es2015-modules-systemjs/.npmignore3
-rw-r--r--node_modules/babel-plugin-transform-es2015-modules-systemjs/README.md71
-rw-r--r--node_modules/babel-plugin-transform-es2015-modules-systemjs/lib/index.js395
-rw-r--r--node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json48
4 files changed, 517 insertions, 0 deletions
diff --git a/node_modules/babel-plugin-transform-es2015-modules-systemjs/.npmignore b/node_modules/babel-plugin-transform-es2015-modules-systemjs/.npmignore
new file mode 100644
index 0000000..47cdd2c
--- /dev/null
+++ b/node_modules/babel-plugin-transform-es2015-modules-systemjs/.npmignore
@@ -0,0 +1,3 @@
+src
+test
+node_modules
diff --git a/node_modules/babel-plugin-transform-es2015-modules-systemjs/README.md b/node_modules/babel-plugin-transform-es2015-modules-systemjs/README.md
new file mode 100644
index 0000000..554421d
--- /dev/null
+++ b/node_modules/babel-plugin-transform-es2015-modules-systemjs/README.md
@@ -0,0 +1,71 @@
+# babel-plugin-transform-es2015-modules-systemjs
+
+> This plugin transforms ES2015 modules to [SystemJS](https://github.com/systemjs/systemjs).
+
+## Example
+
+**In**
+
+```javascript
+export default 42;
+```
+
+**Out**
+
+```javascript
+System.register([], function (_export, _context) {
+ return {
+ setters: [],
+ execute: function () {
+ _export("default", 42);
+ }
+ };
+});
+```
+
+## Installation
+
+```sh
+npm install --save-dev babel-plugin-transform-es2015-modules-systemjs
+```
+
+## Usage
+
+### Via `.babelrc` (Recommended)
+
+**.babelrc**
+
+Without options:
+
+```json
+{
+ "plugins": ["transform-es2015-modules-systemjs"]
+}
+```
+
+With options:
+
+```json
+{
+ "plugins": [
+ ["transform-es2015-modules-systemjs", {
+ // outputs SystemJS.register(...)
+ "systemGlobal": "SystemJS"
+ }]
+ ]
+}
+```
+
+### Via CLI
+
+```sh
+babel --plugins transform-es2015-modules-systemjs script.js
+```
+
+### Via Node API
+
+```javascript
+require("babel-core").transform("code", {
+ plugins: ["transform-es2015-modules-systemjs"]
+});
+```
diff --git a/node_modules/babel-plugin-transform-es2015-modules-systemjs/lib/index.js b/node_modules/babel-plugin-transform-es2015-modules-systemjs/lib/index.js
new file mode 100644
index 0000000..806475c
--- /dev/null
+++ b/node_modules/babel-plugin-transform-es2015-modules-systemjs/lib/index.js
@@ -0,0 +1,395 @@
+"use strict";
+
+exports.__esModule = true;
+
+var _create = require("babel-runtime/core-js/object/create");
+
+var _create2 = _interopRequireDefault(_create);
+
+var _getIterator2 = require("babel-runtime/core-js/get-iterator");
+
+var _getIterator3 = _interopRequireDefault(_getIterator2);
+
+var _symbol = require("babel-runtime/core-js/symbol");
+
+var _symbol2 = _interopRequireDefault(_symbol);
+
+exports.default = function (_ref) {
+ var t = _ref.types;
+
+ var IGNORE_REASSIGNMENT_SYMBOL = (0, _symbol2.default)();
+
+ var reassignmentVisitor = {
+ "AssignmentExpression|UpdateExpression": function AssignmentExpressionUpdateExpression(path) {
+ if (path.node[IGNORE_REASSIGNMENT_SYMBOL]) return;
+ path.node[IGNORE_REASSIGNMENT_SYMBOL] = true;
+
+ var arg = path.get(path.isAssignmentExpression() ? "left" : "argument");
+ if (!arg.isIdentifier()) return;
+
+ var name = arg.node.name;
+
+ if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return;
+
+ var exportedNames = this.exports[name];
+ if (!exportedNames) return;
+
+ var node = path.node;
+
+ var isPostUpdateExpression = path.isUpdateExpression() && !node.prefix;
+ if (isPostUpdateExpression) {
+ if (node.operator === "++") node = t.binaryExpression("+", node.argument, t.numericLiteral(1));else if (node.operator === "--") node = t.binaryExpression("-", node.argument, t.numericLiteral(1));else isPostUpdateExpression = false;
+ }
+
+ for (var _iterator = exportedNames, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
+ var _ref2;
+
+ if (_isArray) {
+ if (_i >= _iterator.length) break;
+ _ref2 = _iterator[_i++];
+ } else {
+ _i = _iterator.next();
+ if (_i.done) break;
+ _ref2 = _i.value;
+ }
+
+ var exportedName = _ref2;
+
+ node = this.buildCall(exportedName, node).expression;
+ }
+
+ if (isPostUpdateExpression) node = t.sequenceExpression([node, path.node]);
+
+ path.replaceWith(node);
+ }
+ };
+
+ return {
+ visitor: {
+ CallExpression: function CallExpression(path, state) {
+ if (path.node.callee.type === TYPE_IMPORT) {
+ var contextIdent = state.contextIdent;
+ path.replaceWith(t.callExpression(t.memberExpression(contextIdent, t.identifier("import")), path.node.arguments));
+ }
+ },
+ ReferencedIdentifier: function ReferencedIdentifier(path, state) {
+ if (path.node.name == "__moduleName" && !path.scope.hasBinding("__moduleName")) {
+ path.replaceWith(t.memberExpression(state.contextIdent, t.identifier("id")));
+ }
+ },
+
+
+ Program: {
+ enter: function enter(path, state) {
+ state.contextIdent = path.scope.generateUidIdentifier("context");
+ },
+ exit: function exit(path, state) {
+ var exportIdent = path.scope.generateUidIdentifier("export");
+ var contextIdent = state.contextIdent;
+
+ var exportNames = (0, _create2.default)(null);
+ var modules = [];
+
+ var beforeBody = [];
+ var setters = [];
+ var sources = [];
+ var variableIds = [];
+ var removedPaths = [];
+
+ function addExportName(key, val) {
+ exportNames[key] = exportNames[key] || [];
+ exportNames[key].push(val);
+ }
+
+ function pushModule(source, key, specifiers) {
+ var module = void 0;
+ modules.forEach(function (m) {
+ if (m.key === source) {
+ module = m;
+ }
+ });
+ if (!module) {
+ modules.push(module = { key: source, imports: [], exports: [] });
+ }
+ module[key] = module[key].concat(specifiers);
+ }
+
+ function buildExportCall(name, val) {
+ return t.expressionStatement(t.callExpression(exportIdent, [t.stringLiteral(name), val]));
+ }
+
+ var body = path.get("body");
+
+ var canHoist = true;
+ for (var _iterator2 = body, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
+ var _ref3;
+
+ if (_isArray2) {
+ if (_i2 >= _iterator2.length) break;
+ _ref3 = _iterator2[_i2++];
+ } else {
+ _i2 = _iterator2.next();
+ if (_i2.done) break;
+ _ref3 = _i2.value;
+ }
+
+ var _path = _ref3;
+
+ if (_path.isExportDeclaration()) _path = _path.get("declaration");
+ if (_path.isVariableDeclaration() && _path.node.kind !== "var") {
+ canHoist = false;
+ break;
+ }
+ }
+
+ for (var _iterator3 = body, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : (0, _getIterator3.default)(_iterator3);;) {
+ var _ref4;
+
+ if (_isArray3) {
+ if (_i3 >= _iterator3.length) break;
+ _ref4 = _iterator3[_i3++];
+ } else {
+ _i3 = _iterator3.next();
+ if (_i3.done) break;
+ _ref4 = _i3.value;
+ }
+
+ var _path2 = _ref4;
+
+ if (canHoist && _path2.isFunctionDeclaration()) {
+ beforeBody.push(_path2.node);
+ removedPaths.push(_path2);
+ } else if (_path2.isImportDeclaration()) {
+ var source = _path2.node.source.value;
+ pushModule(source, "imports", _path2.node.specifiers);
+ for (var name in _path2.getBindingIdentifiers()) {
+ _path2.scope.removeBinding(name);
+ variableIds.push(t.identifier(name));
+ }
+ _path2.remove();
+ } else if (_path2.isExportAllDeclaration()) {
+ pushModule(_path2.node.source.value, "exports", _path2.node);
+ _path2.remove();
+ } else if (_path2.isExportDefaultDeclaration()) {
+ var declar = _path2.get("declaration");
+ if (declar.isClassDeclaration() || declar.isFunctionDeclaration()) {
+ var id = declar.node.id;
+ var nodes = [];
+
+ if (id) {
+ nodes.push(declar.node);
+ nodes.push(buildExportCall("default", id));
+ addExportName(id.name, "default");
+ } else {
+ nodes.push(buildExportCall("default", t.toExpression(declar.node)));
+ }
+
+ if (!canHoist || declar.isClassDeclaration()) {
+ _path2.replaceWithMultiple(nodes);
+ } else {
+ beforeBody = beforeBody.concat(nodes);
+ removedPaths.push(_path2);
+ }
+ } else {
+ _path2.replaceWith(buildExportCall("default", declar.node));
+ }
+ } else if (_path2.isExportNamedDeclaration()) {
+ var _declar = _path2.get("declaration");
+
+ if (_declar.node) {
+ _path2.replaceWith(_declar);
+
+ var _nodes = [];
+ var bindingIdentifiers = void 0;
+ if (_path2.isFunction()) {
+ var node = _declar.node;
+ var _name = node.id.name;
+ if (canHoist) {
+ addExportName(_name, _name);
+ beforeBody.push(node);
+ beforeBody.push(buildExportCall(_name, node.id));
+ removedPaths.push(_path2);
+ } else {
+ var _bindingIdentifiers;
+
+ bindingIdentifiers = (_bindingIdentifiers = {}, _bindingIdentifiers[_name] = node.id, _bindingIdentifiers);
+ }
+ } else {
+ bindingIdentifiers = _declar.getBindingIdentifiers();
+ }
+ for (var _name2 in bindingIdentifiers) {
+ addExportName(_name2, _name2);
+ _nodes.push(buildExportCall(_name2, t.identifier(_name2)));
+ }
+ _path2.insertAfter(_nodes);
+ } else {
+ var specifiers = _path2.node.specifiers;
+ if (specifiers && specifiers.length) {
+ if (_path2.node.source) {
+ pushModule(_path2.node.source.value, "exports", specifiers);
+ _path2.remove();
+ } else {
+ var _nodes2 = [];
+
+ for (var _iterator7 = specifiers, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : (0, _getIterator3.default)(_iterator7);;) {
+ var _ref8;
+
+ if (_isArray7) {
+ if (_i7 >= _iterator7.length) break;
+ _ref8 = _iterator7[_i7++];
+ } else {
+ _i7 = _iterator7.next();
+ if (_i7.done) break;
+ _ref8 = _i7.value;
+ }
+
+ var specifier = _ref8;
+
+ _nodes2.push(buildExportCall(specifier.exported.name, specifier.local));
+ addExportName(specifier.local.name, specifier.exported.name);
+ }
+
+ _path2.replaceWithMultiple(_nodes2);
+ }
+ }
+ }
+ }
+ }
+
+ modules.forEach(function (specifiers) {
+ var setterBody = [];
+ var target = path.scope.generateUidIdentifier(specifiers.key);
+
+ for (var _iterator4 = specifiers.imports, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : (0, _getIterator3.default)(_iterator4);;) {
+ var _ref5;
+
+ if (_isArray4) {
+ if (_i4 >= _iterator4.length) break;
+ _ref5 = _iterator4[_i4++];
+ } else {
+ _i4 = _iterator4.next();
+ if (_i4.done) break;
+ _ref5 = _i4.value;
+ }
+
+ var specifier = _ref5;
+
+ if (t.isImportNamespaceSpecifier(specifier)) {
+ setterBody.push(t.expressionStatement(t.assignmentExpression("=", specifier.local, target)));
+ } else if (t.isImportDefaultSpecifier(specifier)) {
+ specifier = t.importSpecifier(specifier.local, t.identifier("default"));
+ }
+
+ if (t.isImportSpecifier(specifier)) {
+ setterBody.push(t.expressionStatement(t.assignmentExpression("=", specifier.local, t.memberExpression(target, specifier.imported))));
+ }
+ }
+
+ if (specifiers.exports.length) {
+ var exportObjRef = path.scope.generateUidIdentifier("exportObj");
+
+ setterBody.push(t.variableDeclaration("var", [t.variableDeclarator(exportObjRef, t.objectExpression([]))]));
+
+ for (var _iterator5 = specifiers.exports, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : (0, _getIterator3.default)(_iterator5);;) {
+ var _ref6;
+
+ if (_isArray5) {
+ if (_i5 >= _iterator5.length) break;
+ _ref6 = _iterator5[_i5++];
+ } else {
+ _i5 = _iterator5.next();
+ if (_i5.done) break;
+ _ref6 = _i5.value;
+ }
+
+ var node = _ref6;
+
+ if (t.isExportAllDeclaration(node)) {
+ setterBody.push(buildExportAll({
+ KEY: path.scope.generateUidIdentifier("key"),
+ EXPORT_OBJ: exportObjRef,
+ TARGET: target
+ }));
+ } else if (t.isExportSpecifier(node)) {
+ setterBody.push(t.expressionStatement(t.assignmentExpression("=", t.memberExpression(exportObjRef, node.exported), t.memberExpression(target, node.local))));
+ } else {}
+ }
+
+ setterBody.push(t.expressionStatement(t.callExpression(exportIdent, [exportObjRef])));
+ }
+
+ sources.push(t.stringLiteral(specifiers.key));
+ setters.push(t.functionExpression(null, [target], t.blockStatement(setterBody)));
+ });
+
+ var moduleName = this.getModuleName();
+ if (moduleName) moduleName = t.stringLiteral(moduleName);
+
+ if (canHoist) {
+ (0, _babelHelperHoistVariables2.default)(path, function (id) {
+ return variableIds.push(id);
+ });
+ }
+
+ if (variableIds.length) {
+ beforeBody.unshift(t.variableDeclaration("var", variableIds.map(function (id) {
+ return t.variableDeclarator(id);
+ })));
+ }
+
+ path.traverse(reassignmentVisitor, {
+ exports: exportNames,
+ buildCall: buildExportCall,
+ scope: path.scope
+ });
+
+ for (var _iterator6 = removedPaths, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : (0, _getIterator3.default)(_iterator6);;) {
+ var _ref7;
+
+ if (_isArray6) {
+ if (_i6 >= _iterator6.length) break;
+ _ref7 = _iterator6[_i6++];
+ } else {
+ _i6 = _iterator6.next();
+ if (_i6.done) break;
+ _ref7 = _i6.value;
+ }
+
+ var _path3 = _ref7;
+
+ _path3.remove();
+ }
+
+ path.node.body = [buildTemplate({
+ SYSTEM_REGISTER: t.memberExpression(t.identifier(state.opts.systemGlobal || "System"), t.identifier("register")),
+ BEFORE_BODY: beforeBody,
+ MODULE_NAME: moduleName,
+ SETTERS: setters,
+ SOURCES: sources,
+ BODY: path.node.body,
+ EXPORT_IDENTIFIER: exportIdent,
+ CONTEXT_IDENTIFIER: contextIdent
+ })];
+ }
+ }
+ }
+ };
+};
+
+var _babelHelperHoistVariables = require("babel-helper-hoist-variables");
+
+var _babelHelperHoistVariables2 = _interopRequireDefault(_babelHelperHoistVariables);
+
+var _babelTemplate = require("babel-template");
+
+var _babelTemplate2 = _interopRequireDefault(_babelTemplate);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var buildTemplate = (0, _babelTemplate2.default)("\n SYSTEM_REGISTER(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n \"use strict\";\n BEFORE_BODY;\n return {\n setters: [SETTERS],\n execute: function () {\n BODY;\n }\n };\n });\n");
+
+var buildExportAll = (0, _babelTemplate2.default)("\n for (var KEY in TARGET) {\n if (KEY !== \"default\" && KEY !== \"__esModule\") EXPORT_OBJ[KEY] = TARGET[KEY];\n }\n");
+
+var TYPE_IMPORT = "Import";
+
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json b/node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json
new file mode 100644
index 0000000..9b0c273
--- /dev/null
+++ b/node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json
@@ -0,0 +1,48 @@
+{
+ "_from": "babel-plugin-transform-es2015-modules-systemjs@^6.24.1",
+ "_id": "babel-plugin-transform-es2015-modules-systemjs@6.24.1",
+ "_inBundle": false,
+ "_integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "_location": "/babel-plugin-transform-es2015-modules-systemjs",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "babel-plugin-transform-es2015-modules-systemjs@^6.24.1",
+ "name": "babel-plugin-transform-es2015-modules-systemjs",
+ "escapedName": "babel-plugin-transform-es2015-modules-systemjs",
+ "rawSpec": "^6.24.1",
+ "saveSpec": null,
+ "fetchSpec": "^6.24.1"
+ },
+ "_requiredBy": [
+ "/babel-preset-es2015"
+ ],
+ "_resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "_shasum": "ff89a142b9119a906195f5f106ecf305d9407d23",
+ "_spec": "babel-plugin-transform-es2015-modules-systemjs@^6.24.1",
+ "_where": "/home/pruss/Dev/3-minute-website/node_modules/babel-preset-es2015",
+ "bundleDependencies": false,
+ "dependencies": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ },
+ "deprecated": false,
+ "description": "This plugin transforms ES2015 modules to SystemJS",
+ "devDependencies": {
+ "babel-helper-plugin-test-runner": "^6.24.1",
+ "babel-plugin-syntax-dynamic-import": "^6.18.0"
+ },
+ "keywords": [
+ "babel-plugin"
+ ],
+ "license": "MIT",
+ "main": "lib/index.js",
+ "name": "babel-plugin-transform-es2015-modules-systemjs",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-systemjs"
+ },
+ "version": "6.24.1"
+}