Add react
This commit is contained in:
4
node_modules/babel-plugin-transform-runtime/.npmignore
generated
vendored
Normal file
4
node_modules/babel-plugin-transform-runtime/.npmignore
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
node_modules
|
||||
*.log
|
||||
src
|
||||
test
|
||||
231
node_modules/babel-plugin-transform-runtime/README.md
generated
vendored
Normal file
231
node_modules/babel-plugin-transform-runtime/README.md
generated
vendored
Normal file
@ -0,0 +1,231 @@
|
||||
# babel-plugin-transform-runtime
|
||||
|
||||
> Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals. (This plugin is recommended in a library/tool)
|
||||
|
||||
NOTE: Instance methods such as `"foobar".includes("foo")` will not work since that would require modification of existing builtins (Use [`babel-polyfill`](http://babeljs.io/docs/usage/polyfill) for that).
|
||||
|
||||
## Why?
|
||||
|
||||
Babel uses very small helpers for common functions such as `_extend`. By default this will be added to every file that requires it. This duplication is sometimes unnecessary, especially when your application is spread out over multiple files.
|
||||
|
||||
This is where the `transform-runtime` plugin comes in: all of the helpers will reference the module `babel-runtime` to avoid duplication across your compiled output. The runtime will be compiled into your build.
|
||||
|
||||
Another purpose of this transformer is to create a sandboxed environment for your code. If you use [babel-polyfill](http://babeljs.io/docs/usage/polyfill/) and the built-ins it provides such as `Promise`, `Set` and `Map`, those will pollute the global scope. While this might be ok for an app or a command line tool, it becomes a problem if your code is a library which you intend to publish for others to use or if you can't exactly control the environment in which your code will run.
|
||||
|
||||
The transformer will alias these built-ins to `core-js` so you can use them seamlessly without having to require the polyfill.
|
||||
|
||||
See the [technical details](#technical-details) section for more information on how this works and the types of transformations that occur.
|
||||
|
||||
## Installation
|
||||
|
||||
**NOTE - Production vs. development dependencies**
|
||||
|
||||
In most cases, you should install `babel-plugin-transform-runtime` as a development dependency (with `--save-dev`).
|
||||
|
||||
```sh
|
||||
npm install --save-dev babel-plugin-transform-runtime
|
||||
```
|
||||
|
||||
and `babel-runtime` as a production dependency (with `--save`).
|
||||
|
||||
```sh
|
||||
npm install --save babel-runtime
|
||||
```
|
||||
|
||||
The transformation plugin is typically used only in development, but the runtime itself will be depended on by your deployed/published code. See the examples below for more details.
|
||||
|
||||
## Usage
|
||||
|
||||
### Via `.babelrc` (Recommended)
|
||||
|
||||
Add the following line to your `.babelrc` file:
|
||||
|
||||
```js
|
||||
// without options
|
||||
{
|
||||
"plugins": ["transform-runtime"]
|
||||
}
|
||||
|
||||
// with options
|
||||
{
|
||||
"plugins": [
|
||||
["transform-runtime", {
|
||||
"helpers": false, // defaults to true
|
||||
"polyfill": false, // defaults to true
|
||||
"regenerator": true, // defaults to true
|
||||
"moduleName": "babel-runtime" // defaults to "babel-runtime"
|
||||
}]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Via CLI
|
||||
|
||||
```sh
|
||||
babel --plugins transform-runtime script.js
|
||||
```
|
||||
|
||||
### Via Node API
|
||||
|
||||
```javascript
|
||||
require("babel-core").transform("code", {
|
||||
plugins: ["transform-runtime"]
|
||||
});
|
||||
```
|
||||
|
||||
## Technical details
|
||||
|
||||
The `runtime` transformer plugin does three things:
|
||||
|
||||
* Automatically requires `babel-runtime/regenerator` when you use generators/async functions.
|
||||
* Automatically requires `babel-runtime/core-js` and maps ES6 static methods and built-ins.
|
||||
* Removes the inline babel helpers and uses the module `babel-runtime/helpers` instead.
|
||||
|
||||
What does this actually mean though? Basically, you can use built-ins such as `Promise`, `Set`, `Symbol` etc as well use all the Babel features that require a polyfill seamlessly, without global pollution, making it extremely suitable for libraries.
|
||||
|
||||
Make sure you include `babel-runtime` as a dependency.
|
||||
|
||||
### Regenerator aliasing
|
||||
|
||||
Whenever you use a generator function or async function:
|
||||
|
||||
```javascript
|
||||
function* foo() {
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
the following is generated:
|
||||
|
||||
```javascript
|
||||
"use strict";
|
||||
|
||||
var _marked = [foo].map(regeneratorRuntime.mark);
|
||||
|
||||
function foo() {
|
||||
return regeneratorRuntime.wrap(function foo$(_context) {
|
||||
while (1) switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}, _marked[0], this);
|
||||
}
|
||||
```
|
||||
|
||||
This isn't ideal as then you have to include the regenerator runtime which
|
||||
pollutes the global scope.
|
||||
|
||||
Instead what the `runtime` transformer does it compile that to:
|
||||
|
||||
```javascript
|
||||
"use strict";
|
||||
|
||||
var _regenerator = require("babel-runtime/regenerator");
|
||||
|
||||
var _regenerator2 = _interopRequireDefault(_regenerator);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var _marked = [foo].map(_regenerator2.default.mark);
|
||||
|
||||
function foo() {
|
||||
return regeneratorRuntime.wrap(function foo$(_context) {
|
||||
while (1) switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}, _marked[0], this);
|
||||
}
|
||||
```
|
||||
|
||||
This means that you can use the regenerator runtime without polluting your current environment.
|
||||
|
||||
### `core-js` aliasing
|
||||
|
||||
Sometimes you may want to use new built-ins such as `Map`, `Set`, `Promise` etc. Your only way
|
||||
to use these is usually to include a globally polluting polyfill.
|
||||
|
||||
What the `runtime` transformer does is transform the following:
|
||||
|
||||
```javascript
|
||||
var sym = Symbol();
|
||||
|
||||
var promise = new Promise;
|
||||
|
||||
console.log(arr[Symbol.iterator]());
|
||||
```
|
||||
|
||||
into the following:
|
||||
|
||||
```javascript
|
||||
"use strict";
|
||||
|
||||
var _getIterator2 = require("babel-runtime/core-js/get-iterator");
|
||||
|
||||
var _getIterator3 = _interopRequireDefault(_getIterator2);
|
||||
|
||||
var _promise = require("babel-runtime/core-js/promise");
|
||||
|
||||
var _promise2 = _interopRequireDefault(_promise);
|
||||
|
||||
var _symbol = require("babel-runtime/core-js/symbol");
|
||||
|
||||
var _symbol2 = _interopRequireDefault(_symbol);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var sym = (0, _symbol2.default)();
|
||||
|
||||
var promise = new _promise2.default();
|
||||
|
||||
console.log((0, _getIterator3.default)(arr));
|
||||
```
|
||||
|
||||
This means is that you can seamlessly use these native built-ins and static methods
|
||||
without worrying about where they come from.
|
||||
|
||||
**NOTE:** Instance methods such as `"foobar".includes("foo")` will **not** work.
|
||||
|
||||
### Helper aliasing
|
||||
|
||||
Usually babel will place helpers at the top of your file to do common tasks to avoid
|
||||
duplicating the code around in the current file. Sometimes these helpers can get a
|
||||
little bulky and add unnecessary duplication across files. The `runtime`
|
||||
transformer replaces all the helper calls to a module.
|
||||
|
||||
That means that the following code:
|
||||
|
||||
```javascript
|
||||
class Person {
|
||||
}
|
||||
```
|
||||
|
||||
usually turns into:
|
||||
|
||||
```javascript
|
||||
"use strict";
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var Person = function Person() {
|
||||
_classCallCheck(this, Person);
|
||||
};
|
||||
```
|
||||
|
||||
the `runtime` transformer however turns this into:
|
||||
|
||||
```javascript
|
||||
"use strict";
|
||||
|
||||
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
|
||||
|
||||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var Person = function Person() {
|
||||
(0, _classCallCheck3.default)(this, Person);
|
||||
};
|
||||
```
|
||||
191
node_modules/babel-plugin-transform-runtime/lib/definitions.js
generated
vendored
Normal file
191
node_modules/babel-plugin-transform-runtime/lib/definitions.js
generated
vendored
Normal file
@ -0,0 +1,191 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
builtins: {
|
||||
Symbol: "symbol",
|
||||
Promise: "promise",
|
||||
Map: "map",
|
||||
WeakMap: "weak-map",
|
||||
Set: "set",
|
||||
WeakSet: "weak-set",
|
||||
Observable: "observable",
|
||||
setImmediate: "set-immediate",
|
||||
clearImmediate: "clear-immediate",
|
||||
asap: "asap"
|
||||
},
|
||||
|
||||
methods: {
|
||||
Array: {
|
||||
concat: "array/concat",
|
||||
copyWithin: "array/copy-within",
|
||||
entries: "array/entries",
|
||||
every: "array/every",
|
||||
fill: "array/fill",
|
||||
filter: "array/filter",
|
||||
findIndex: "array/find-index",
|
||||
find: "array/find",
|
||||
forEach: "array/for-each",
|
||||
from: "array/from",
|
||||
includes: "array/includes",
|
||||
indexOf: "array/index-of",
|
||||
|
||||
join: "array/join",
|
||||
keys: "array/keys",
|
||||
lastIndexOf: "array/last-index-of",
|
||||
map: "array/map",
|
||||
of: "array/of",
|
||||
pop: "array/pop",
|
||||
push: "array/push",
|
||||
reduceRight: "array/reduce-right",
|
||||
reduce: "array/reduce",
|
||||
reverse: "array/reverse",
|
||||
shift: "array/shift",
|
||||
slice: "array/slice",
|
||||
some: "array/some",
|
||||
sort: "array/sort",
|
||||
splice: "array/splice",
|
||||
unshift: "array/unshift",
|
||||
values: "array/values"
|
||||
},
|
||||
|
||||
JSON: {
|
||||
stringify: "json/stringify"
|
||||
},
|
||||
|
||||
Object: {
|
||||
assign: "object/assign",
|
||||
create: "object/create",
|
||||
defineProperties: "object/define-properties",
|
||||
defineProperty: "object/define-property",
|
||||
entries: "object/entries",
|
||||
freeze: "object/freeze",
|
||||
getOwnPropertyDescriptor: "object/get-own-property-descriptor",
|
||||
getOwnPropertyDescriptors: "object/get-own-property-descriptors",
|
||||
getOwnPropertyNames: "object/get-own-property-names",
|
||||
getOwnPropertySymbols: "object/get-own-property-symbols",
|
||||
getPrototypeOf: "object/get-prototype-of",
|
||||
isExtensible: "object/is-extensible",
|
||||
isFrozen: "object/is-frozen",
|
||||
isSealed: "object/is-sealed",
|
||||
is: "object/is",
|
||||
keys: "object/keys",
|
||||
preventExtensions: "object/prevent-extensions",
|
||||
seal: "object/seal",
|
||||
setPrototypeOf: "object/set-prototype-of",
|
||||
values: "object/values"
|
||||
},
|
||||
|
||||
RegExp: {
|
||||
escape: "regexp/escape" },
|
||||
|
||||
Math: {
|
||||
acosh: "math/acosh",
|
||||
asinh: "math/asinh",
|
||||
atanh: "math/atanh",
|
||||
cbrt: "math/cbrt",
|
||||
clz32: "math/clz32",
|
||||
cosh: "math/cosh",
|
||||
expm1: "math/expm1",
|
||||
fround: "math/fround",
|
||||
hypot: "math/hypot",
|
||||
imul: "math/imul",
|
||||
log10: "math/log10",
|
||||
log1p: "math/log1p",
|
||||
log2: "math/log2",
|
||||
sign: "math/sign",
|
||||
sinh: "math/sinh",
|
||||
tanh: "math/tanh",
|
||||
trunc: "math/trunc",
|
||||
iaddh: "math/iaddh",
|
||||
isubh: "math/isubh",
|
||||
imulh: "math/imulh",
|
||||
umulh: "math/umulh"
|
||||
},
|
||||
|
||||
Symbol: {
|
||||
for: "symbol/for",
|
||||
hasInstance: "symbol/has-instance",
|
||||
isConcatSpreadable: "symbol/is-concat-spreadable",
|
||||
iterator: "symbol/iterator",
|
||||
keyFor: "symbol/key-for",
|
||||
match: "symbol/match",
|
||||
replace: "symbol/replace",
|
||||
search: "symbol/search",
|
||||
species: "symbol/species",
|
||||
split: "symbol/split",
|
||||
toPrimitive: "symbol/to-primitive",
|
||||
toStringTag: "symbol/to-string-tag",
|
||||
unscopables: "symbol/unscopables"
|
||||
},
|
||||
|
||||
String: {
|
||||
at: "string/at",
|
||||
codePointAt: "string/code-point-at",
|
||||
endsWith: "string/ends-with",
|
||||
fromCodePoint: "string/from-code-point",
|
||||
includes: "string/includes",
|
||||
matchAll: "string/match-all",
|
||||
padLeft: "string/pad-left",
|
||||
padRight: "string/pad-right",
|
||||
padStart: "string/pad-start",
|
||||
padEnd: "string/pad-end",
|
||||
raw: "string/raw",
|
||||
repeat: "string/repeat",
|
||||
startsWith: "string/starts-with",
|
||||
trim: "string/trim",
|
||||
trimLeft: "string/trim-left",
|
||||
trimRight: "string/trim-right",
|
||||
trimStart: "string/trim-start",
|
||||
trimEnd: "string/trim-end"
|
||||
},
|
||||
|
||||
Number: {
|
||||
EPSILON: "number/epsilon",
|
||||
isFinite: "number/is-finite",
|
||||
isInteger: "number/is-integer",
|
||||
isNaN: "number/is-nan",
|
||||
isSafeInteger: "number/is-safe-integer",
|
||||
MAX_SAFE_INTEGER: "number/max-safe-integer",
|
||||
MIN_SAFE_INTEGER: "number/min-safe-integer",
|
||||
parseFloat: "number/parse-float",
|
||||
parseInt: "number/parse-int"
|
||||
},
|
||||
|
||||
Reflect: {
|
||||
apply: "reflect/apply",
|
||||
construct: "reflect/construct",
|
||||
defineProperty: "reflect/define-property",
|
||||
deleteProperty: "reflect/delete-property",
|
||||
enumerate: "reflect/enumerate",
|
||||
getOwnPropertyDescriptor: "reflect/get-own-property-descriptor",
|
||||
getPrototypeOf: "reflect/get-prototype-of",
|
||||
get: "reflect/get",
|
||||
has: "reflect/has",
|
||||
isExtensible: "reflect/is-extensible",
|
||||
ownKeys: "reflect/own-keys",
|
||||
preventExtensions: "reflect/prevent-extensions",
|
||||
setPrototypeOf: "reflect/set-prototype-of",
|
||||
set: "reflect/set",
|
||||
defineMetadata: "reflect/define-metadata",
|
||||
deleteMetadata: "reflect/delete-metadata",
|
||||
getMetadata: "reflect/get-metadata",
|
||||
getMetadataKeys: "reflect/get-metadata-keys",
|
||||
getOwnMetadata: "reflect/get-own-metadata",
|
||||
getOwnMetadataKeys: "reflect/get-own-metadata-keys",
|
||||
hasMetadata: "reflect/has-metadata",
|
||||
hasOwnMetadata: "reflect/has-own-metadata",
|
||||
metadata: "reflect/metadata"
|
||||
},
|
||||
|
||||
System: {
|
||||
global: "system/global"
|
||||
},
|
||||
|
||||
Error: {
|
||||
isError: "error/is-error" },
|
||||
|
||||
Date: {},
|
||||
|
||||
Function: {}
|
||||
}
|
||||
};
|
||||
133
node_modules/babel-plugin-transform-runtime/lib/index.js
generated
vendored
Normal file
133
node_modules/babel-plugin-transform-runtime/lib/index.js
generated
vendored
Normal file
@ -0,0 +1,133 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.definitions = undefined;
|
||||
|
||||
exports.default = function (_ref) {
|
||||
var t = _ref.types;
|
||||
|
||||
function getRuntimeModuleName(opts) {
|
||||
return opts.moduleName || "babel-runtime";
|
||||
}
|
||||
|
||||
function has(obj, key) {
|
||||
return Object.prototype.hasOwnProperty.call(obj, key);
|
||||
}
|
||||
|
||||
var HELPER_BLACKLIST = ["interopRequireWildcard", "interopRequireDefault"];
|
||||
|
||||
return {
|
||||
pre: function pre(file) {
|
||||
var moduleName = getRuntimeModuleName(this.opts);
|
||||
|
||||
if (this.opts.helpers !== false) {
|
||||
file.set("helperGenerator", function (name) {
|
||||
if (HELPER_BLACKLIST.indexOf(name) < 0) {
|
||||
return file.addImport(moduleName + "/helpers/" + name, "default", name);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.setDynamic("regeneratorIdentifier", function () {
|
||||
return file.addImport(moduleName + "/regenerator", "default", "regeneratorRuntime");
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
visitor: {
|
||||
ReferencedIdentifier: function ReferencedIdentifier(path, state) {
|
||||
var node = path.node,
|
||||
parent = path.parent,
|
||||
scope = path.scope;
|
||||
|
||||
|
||||
if (node.name === "regeneratorRuntime" && state.opts.regenerator !== false) {
|
||||
path.replaceWith(state.get("regeneratorIdentifier"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (state.opts.polyfill === false) return;
|
||||
|
||||
if (t.isMemberExpression(parent)) return;
|
||||
if (!has(_definitions2.default.builtins, node.name)) return;
|
||||
if (scope.getBindingIdentifier(node.name)) return;
|
||||
|
||||
var moduleName = getRuntimeModuleName(state.opts);
|
||||
path.replaceWith(state.addImport(moduleName + "/core-js/" + _definitions2.default.builtins[node.name], "default", node.name));
|
||||
},
|
||||
CallExpression: function CallExpression(path, state) {
|
||||
if (state.opts.polyfill === false) return;
|
||||
|
||||
if (path.node.arguments.length) return;
|
||||
|
||||
var callee = path.node.callee;
|
||||
if (!t.isMemberExpression(callee)) return;
|
||||
if (!callee.computed) return;
|
||||
if (!path.get("callee.property").matchesPattern("Symbol.iterator")) return;
|
||||
|
||||
var moduleName = getRuntimeModuleName(state.opts);
|
||||
path.replaceWith(t.callExpression(state.addImport(moduleName + "/core-js/get-iterator", "default", "getIterator"), [callee.object]));
|
||||
},
|
||||
BinaryExpression: function BinaryExpression(path, state) {
|
||||
if (state.opts.polyfill === false) return;
|
||||
|
||||
if (path.node.operator !== "in") return;
|
||||
if (!path.get("left").matchesPattern("Symbol.iterator")) return;
|
||||
|
||||
var moduleName = getRuntimeModuleName(state.opts);
|
||||
path.replaceWith(t.callExpression(state.addImport(moduleName + "/core-js/is-iterable", "default", "isIterable"), [path.node.right]));
|
||||
},
|
||||
|
||||
MemberExpression: {
|
||||
enter: function enter(path, state) {
|
||||
if (state.opts.polyfill === false) return;
|
||||
if (!path.isReferenced()) return;
|
||||
|
||||
var node = path.node;
|
||||
|
||||
var obj = node.object;
|
||||
var prop = node.property;
|
||||
|
||||
if (!t.isReferenced(obj, node)) return;
|
||||
if (node.computed) return;
|
||||
if (!has(_definitions2.default.methods, obj.name)) return;
|
||||
|
||||
var methods = _definitions2.default.methods[obj.name];
|
||||
if (!has(methods, prop.name)) return;
|
||||
|
||||
if (path.scope.getBindingIdentifier(obj.name)) return;
|
||||
|
||||
if (obj.name === "Object" && prop.name === "defineProperty" && path.parentPath.isCallExpression()) {
|
||||
var call = path.parentPath.node;
|
||||
if (call.arguments.length === 3 && t.isLiteral(call.arguments[1])) return;
|
||||
}
|
||||
|
||||
var moduleName = getRuntimeModuleName(state.opts);
|
||||
path.replaceWith(state.addImport(moduleName + "/core-js/" + methods[prop.name], "default", obj.name + "$" + prop.name));
|
||||
},
|
||||
exit: function exit(path, state) {
|
||||
if (state.opts.polyfill === false) return;
|
||||
if (!path.isReferenced()) return;
|
||||
|
||||
var node = path.node;
|
||||
|
||||
var obj = node.object;
|
||||
|
||||
if (!has(_definitions2.default.builtins, obj.name)) return;
|
||||
if (path.scope.getBindingIdentifier(obj.name)) return;
|
||||
|
||||
var moduleName = getRuntimeModuleName(state.opts);
|
||||
path.replaceWith(t.memberExpression(state.addImport(moduleName + "/core-js/" + _definitions2.default.builtins[obj.name], "default", obj.name), node.property, node.computed));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
var _definitions = require("./definitions");
|
||||
|
||||
var _definitions2 = _interopRequireDefault(_definitions);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
exports.definitions = _definitions2.default;
|
||||
45
node_modules/babel-plugin-transform-runtime/package.json
generated
vendored
Normal file
45
node_modules/babel-plugin-transform-runtime/package.json
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
{
|
||||
"_from": "babel-plugin-transform-runtime@6.23.0",
|
||||
"_id": "babel-plugin-transform-runtime@6.23.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
|
||||
"_location": "/babel-plugin-transform-runtime",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "babel-plugin-transform-runtime@6.23.0",
|
||||
"name": "babel-plugin-transform-runtime",
|
||||
"escapedName": "babel-plugin-transform-runtime",
|
||||
"rawSpec": "6.23.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "6.23.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/babel-preset-react-app"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
|
||||
"_shasum": "88490d446502ea9b8e7efb0fe09ec4d99479b1ee",
|
||||
"_spec": "babel-plugin-transform-runtime@6.23.0",
|
||||
"_where": "/home/rudi/Personal/disgord-Thanos/node_modules/babel-preset-react-app",
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"babel-runtime": "^6.22.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals",
|
||||
"devDependencies": {
|
||||
"babel-helper-plugin-test-runner": "^6.22.0"
|
||||
},
|
||||
"keywords": [
|
||||
"babel-plugin"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "lib/index.js",
|
||||
"name": "babel-plugin-transform-runtime",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime"
|
||||
},
|
||||
"version": "6.23.0"
|
||||
}
|
||||
Reference in New Issue
Block a user