Socket
Socket
Sign inDemoInstall

metro-react-native-babel-preset

Package Overview
Dependencies
Maintainers
1
Versions
100
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

metro-react-native-babel-preset - npm Package Compare versions

Comparing version 0.48.0 to 0.48.1

4

package.json
{
"name": "metro-react-native-babel-preset",
"version": "0.48.0",
"version": "0.48.1",
"description": "Babel preset for React Native applications",

@@ -54,5 +54,5 @@ "main": "src/index.js",

"@babel/template": "^7.0.0",
"metro-babel7-plugin-react-transform": "0.48.0",
"metro-babel7-plugin-react-transform": "0.48.1",
"react-transform-hmr": "^1.0.4"
}
}

@@ -9,16 +9,16 @@ /**

*/
'use strict';
"use strict";
var path = require('path');
var hmrTransform = 'react-transform-hmr/lib/index.js';
var path = require("path");
var hmrTransform = "react-transform-hmr/lib/index.js";
var transformPath = require.resolve(hmrTransform);
module.exports = function (options, filename) {
var transform = filename ?
'./' + path.relative(path.dirname(filename), transformPath) // packager can't handle absolute paths
: hmrTransform;
module.exports = function(options, filename) {
var transform = filename
? "./" + path.relative(path.dirname(filename), transformPath) // packager can't handle absolute paths
: hmrTransform;
// Fix the module path to use '/' on Windows.
if (path.sep === '\\') {
transform = transform.replace(/\\/g, '/');
if (path.sep === "\\") {
transform = transform.replace(/\\/g, "/");
}

@@ -28,16 +28,16 @@

plugins: [
[
require('metro-babel7-plugin-react-transform'),
{
transforms: [
{
transform,
imports: ['react'],
locals: ['module'] }] }]] };
};
[
require("metro-babel7-plugin-react-transform"),
{
transforms: [
{
transform,
imports: ["react"],
locals: ["module"]
}
]
}
]
]
};
};

@@ -10,92 +10,115 @@ /**

'use strict';var _extends = Object.assign || function (target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i];for (var key in source) {if (Object.prototype.hasOwnProperty.call(source, key)) {target[key] = source[key];}}}return target;};
"use strict";
var _extends =
Object.assign ||
function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
function isTypeScriptSource(fileName) {
return !!fileName && fileName.endsWith('.ts');
return !!fileName && fileName.endsWith(".ts");
}
function isTSXSource(fileName) {
return !!fileName && fileName.endsWith('.tsx');
return !!fileName && fileName.endsWith(".tsx");
}
const defaultPlugins = [
[require('@babel/plugin-proposal-optional-catch-binding')],
[require('@babel/plugin-transform-block-scoping')],
// the flow strip types plugin must go BEFORE class properties!
// there'll be a test case that fails if you don't.
[require('@babel/plugin-transform-flow-strip-types')],
[
require('@babel/plugin-proposal-class-properties'),
// use `this.foo = bar` instead of `this.defineProperty('foo', ...)`
{ loose: true }],
[require("@babel/plugin-proposal-optional-catch-binding")],
[require("@babel/plugin-transform-block-scoping")],
// the flow strip types plugin must go BEFORE class properties!
// there'll be a test case that fails if you don't.
[require("@babel/plugin-transform-flow-strip-types")],
[
require("@babel/plugin-proposal-class-properties"),
// use `this.foo = bar` instead of `this.defineProperty('foo', ...)`
{ loose: true }
],
[require('@babel/plugin-syntax-dynamic-import')],
[require('@babel/plugin-syntax-export-default-from')],
[require('@babel/plugin-transform-computed-properties')],
[require('@babel/plugin-transform-destructuring')],
[require('@babel/plugin-transform-function-name')],
[require('@babel/plugin-transform-literals')],
[require('@babel/plugin-transform-parameters')],
[require('@babel/plugin-transform-shorthand-properties')],
[require('@babel/plugin-transform-react-jsx')],
[require('@babel/plugin-transform-regenerator')],
[require('@babel/plugin-transform-sticky-regex')],
[require('@babel/plugin-transform-unicode-regex')]];
[require("@babel/plugin-syntax-dynamic-import")],
[require("@babel/plugin-syntax-export-default-from")],
[require("@babel/plugin-transform-computed-properties")],
[require("@babel/plugin-transform-destructuring")],
[require("@babel/plugin-transform-function-name")],
[require("@babel/plugin-transform-literals")],
[require("@babel/plugin-transform-parameters")],
[require("@babel/plugin-transform-shorthand-properties")],
[require("@babel/plugin-transform-react-jsx")],
[require("@babel/plugin-transform-regenerator")],
[require("@babel/plugin-transform-sticky-regex")],
[require("@babel/plugin-transform-unicode-regex")]
];
const es2015ExportDefault = [
require('@babel/plugin-proposal-export-default-from')];
require("@babel/plugin-proposal-export-default-from")
];
const es2015ImportExport = [
require('@babel/plugin-transform-modules-commonjs'),
{
strict: false,
strictMode: false, // prevent "use strict" injections
allowTopLevelThis: true // dont rewrite global `this` -> `undefined`
}];
require("@babel/plugin-transform-modules-commonjs"),
{
strict: false,
strictMode: false, // prevent "use strict" injections
allowTopLevelThis: true // dont rewrite global `this` -> `undefined`
}
];
const es2015ArrowFunctions = [
require('@babel/plugin-transform-arrow-functions')];
require("@babel/plugin-transform-arrow-functions")
];
const es2015Classes = [require('@babel/plugin-transform-classes')];
const es2015ForOf = [require('@babel/plugin-transform-for-of'), { loose: true }];
const es2015Spread = [require('@babel/plugin-transform-spread')];
const es2015Classes = [require("@babel/plugin-transform-classes")];
const es2015ForOf = [
require("@babel/plugin-transform-for-of"),
{ loose: true }
];
const es2015Spread = [require("@babel/plugin-transform-spread")];
const es2015TemplateLiterals = [
require('@babel/plugin-transform-template-literals'),
{ loose: true }];
require("@babel/plugin-transform-template-literals"),
{ loose: true }
];
const exponentiationOperator = [
require('@babel/plugin-transform-exponentiation-operator')];
require("@babel/plugin-transform-exponentiation-operator")
];
const objectAssign = [require('@babel/plugin-transform-object-assign')];
const objectRestSpread = [require('@babel/plugin-proposal-object-rest-spread')];
const objectAssign = [require("@babel/plugin-transform-object-assign")];
const objectRestSpread = [require("@babel/plugin-proposal-object-rest-spread")];
const nullishCoalescingOperator = [
require('@babel/plugin-proposal-nullish-coalescing-operator'),
{ loose: true }];
require("@babel/plugin-proposal-nullish-coalescing-operator"),
{ loose: true }
];
const optionalChaining = [
require('@babel/plugin-proposal-optional-chaining'),
{ loose: true }];
require("@babel/plugin-proposal-optional-chaining"),
{ loose: true }
];
const reactDisplayName = [
require('@babel/plugin-transform-react-display-name')];
require("@babel/plugin-transform-react-display-name")
];
const reactJsxSource = [require('@babel/plugin-transform-react-jsx-source')];
const symbolMember = [require('../transforms/transform-symbol-member')];
const reactJsxSource = [require("@babel/plugin-transform-react-jsx-source")];
const symbolMember = [require("../transforms/transform-symbol-member")];
const babelRuntime = [
require('@babel/plugin-transform-runtime'),
{
helpers: true,
regenerator: true }];
require("@babel/plugin-transform-runtime"),
{
helpers: true,
regenerator: true
}
];
const getPreset = (src, options) => {
const isNull = src == null;
const hasClass = isNull || src.indexOf('class') !== -1;
const hasClass = isNull || src.indexOf("class") !== -1;
const hasForOf =
isNull || src.indexOf('for') !== -1 && src.indexOf('of') !== -1;
isNull || (src.indexOf("for") !== -1 && src.indexOf("of") !== -1);

@@ -111,16 +134,16 @@ const extraPlugins = [];

}
if (isNull || src.indexOf('=>') !== -1) {
if (isNull || src.indexOf("=>") !== -1) {
extraPlugins.push(es2015ArrowFunctions);
}
if (isNull || hasClass || src.indexOf('...') !== -1) {
if (isNull || hasClass || src.indexOf("...") !== -1) {
extraPlugins.push(es2015Spread);
extraPlugins.push(objectRestSpread);
}
if (isNull || src.indexOf('`') !== -1) {
if (isNull || src.indexOf("`") !== -1) {
extraPlugins.push(es2015TemplateLiterals);
}
if (isNull || src.indexOf('**') !== -1) {
if (isNull || src.indexOf("**") !== -1) {
extraPlugins.push(exponentiationOperator);
}
if (isNull || src.indexOf('Object.assign') !== -1) {
if (isNull || src.indexOf("Object.assign") !== -1) {
extraPlugins.push(objectAssign);

@@ -131,16 +154,16 @@ }

}
if (hasForOf || src.indexOf('Symbol') !== -1) {
if (hasForOf || src.indexOf("Symbol") !== -1) {
extraPlugins.push(symbolMember);
}
if (
isNull ||
src.indexOf('React.createClass') !== -1 ||
src.indexOf('createReactClass') !== -1)
{
isNull ||
src.indexOf("React.createClass") !== -1 ||
src.indexOf("createReactClass") !== -1
) {
extraPlugins.push(reactDisplayName);
}
if (isNull || src.indexOf('?.') !== -1) {
if (isNull || src.indexOf("?.") !== -1) {
extraPlugins.push(optionalChaining);
}
if (isNull || src.indexOf('??') !== -1) {
if (isNull || src.indexOf("??") !== -1) {
extraPlugins.push(nullishCoalescingOperator);

@@ -153,3 +176,3 @@ }

if (options && options.enableBabelRuntime) {
if (!options || options.enableBabelRuntime !== false) {
extraPlugins.push(babelRuntime);

@@ -162,22 +185,25 @@ }

overrides: [
{
plugins: defaultPlugins },
{
plugins: defaultPlugins
},
{
test: isTypeScriptSource,
plugins: [
[require('@babel/plugin-transform-typescript'), { isTSX: false }]] },
{
test: isTypeScriptSource,
plugins: [
[require("@babel/plugin-transform-typescript"), { isTSX: false }]
]
},
{
test: isTSXSource,
plugins: [
[require("@babel/plugin-transform-typescript"), { isTSX: true }]
]
},
{
test: isTSXSource,
plugins: [
[require('@babel/plugin-transform-typescript'), { isTSX: true }]] },
{
plugins: extraPlugins }] };
{
plugins: extraPlugins
}
]
};
};

@@ -188,3 +214,3 @@

const env = process.env.BABEL_ENV || process.env.NODE_ENV;
if (!env || env === 'development') {
if (!env || env === "development") {
return getPreset(null, _extends({}, options, { dev: true }));

@@ -196,2 +222,2 @@ }

module.exports.getPreset = getPreset;
module.exports.getPreset = getPreset;

@@ -10,10 +10,10 @@ /**

'use strict';
"use strict";
const main = require('./configs/main');
const main = require("./configs/main");
module.exports = function (babel, options) {
module.exports = function(babel, options) {
return main(options);
};
module.exports.getPreset = main.getPreset;
module.exports.getPreset = main.getPreset;

@@ -10,3 +10,3 @@ /**

'use strict';
"use strict";

@@ -16,13 +16,13 @@ /*eslint consistent-return: 0*/

/**
* Transforms function properties of the `Symbol` into
* the presence check, and fallback string "@@<name>".
*
* Example:
*
* Symbol.iterator;
*
* Transformed to:
*
* typeof Symbol === 'function' ? Symbol.iterator : '@@iterator';
*/
* Transforms function properties of the `Symbol` into
* the presence check, and fallback string "@@<name>".
*
* Example:
*
* Symbol.iterator;
*
* Transformed to:
*
* typeof Symbol === 'function' ? Symbol.iterator : '@@iterator';
*/
module.exports = function symbolMember(babel) {

@@ -41,19 +41,20 @@ const t = babel.types;

path.replaceWith(
t.conditionalExpression(
t.binaryExpression(
'===',
t.unaryExpression('typeof', t.identifier('Symbol'), true),
t.stringLiteral('function')),
t.conditionalExpression(
t.binaryExpression(
"===",
t.unaryExpression("typeof", t.identifier("Symbol"), true),
t.stringLiteral("function")
),
node,
t.stringLiteral(`@@${node.property.name}`)));
node,
t.stringLiteral(`@@${node.property.name}`)
)
);
// We should stop to avoid infinite recursion, since Babel
// traverses replaced path, and again would hit our transform.
path.stop();
} } };
}
}
};
};

@@ -65,7 +66,7 @@

return (
path.parentPath.type !== 'AssignmentExpression' &&
node.object.type === 'Identifier' &&
node.object.name === 'Symbol' &&
node.property.type === 'Identifier');
}
path.parentPath.type !== "AssignmentExpression" &&
node.object.type === "Identifier" &&
node.object.name === "Symbol" &&
node.property.type === "Identifier"
);
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc