Socket
Socket
Sign inDemoInstall

babel-plugin-transform-cjs-system-wrapper

Package Overview
Dependencies
25
Maintainers
2
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.1 to 0.3.0

babel-plugin-transform-cjs-system-wrapper-0.2.1.tgz

107

lib/index.js

@@ -11,9 +11,9 @@ 'use strict';

var requireIdentifier = t.identifier('$__require');
var requireIdentifier = t.identifier('require');
var buildTemplate = (0, _babelTemplate2.default)('\n SYSTEM_GLOBAL.registerDynamic(MODULE_NAME, [DEPS], true, BODY);\n ');
var buildFactory = (0, _babelTemplate2.default)('\n (function ($__require, exports, module) {\n BODY\n return module.exports;\n })\n ');
var buildFactory = (0, _babelTemplate2.default)('\n (function (require, exports, module) {\n BODY\n })\n ');
var buildDefineGlobal = (0, _babelTemplate2.default)('\n var define, global = this || self, GLOBAL = global;\n ');
var buildDefineGlobal = (0, _babelTemplate2.default)('\n var global = this || self, GLOBAL = global;\n ');

@@ -24,6 +24,5 @@ var buildStaticFilePaths = (0, _babelTemplate2.default)('\n var __filename = FILENAME, __dirname = DIRNAME;\n ');

var buildRequireResolveFacade = (0, _babelTemplate2.default)('\n $__require.resolve = function(request) {\n return SYSTEM_GLOBAL.get(\'@@cjs-helpers\').requireResolve(request, module.id);\n }\n ');
var buildRequireResolveFacade = (0, _babelTemplate2.default)('\n require.resolve = function(request) {\n return SYSTEM_GLOBAL.get(\'@@cjs-helpers\').requireResolve(request, module.id);\n }\n ');
return {
inherits: require('babel-plugin-transform-cjs-system-require'),
pre: function pre() {

@@ -35,17 +34,43 @@ this.usesFilePaths = false;

visitor: {
CallExpression: function CallExpression(_ref2, _ref3) {
var node = _ref2.node;
var _ref3$opts = _ref3.opts;
var opts = _ref3$opts === undefined ? {} : _ref3$opts;
CallExpression: function CallExpression(path, _ref2) {
var _ref2$opts = _ref2.opts;
var opts = _ref2$opts === undefined ? {} : _ref2$opts;
var callee = node.callee;
var callee = path.node.callee;
var args = path.node.arguments;
var _opts$requireName = opts.requireName;
var requireName = _opts$requireName === undefined ? 'require' : _opts$requireName;
var map = opts.map;
// test if require.resolve is present
if (!this.usesRequireResolve && t.isMemberExpression(callee) && t.isIdentifier(callee.object, { name: opts.requireName || 'require' }) && t.isIdentifier(callee.property, { name: 'resolve' })) {
if (!this.usesRequireResolve && t.isMemberExpression(callee) && t.isIdentifier(callee.object, { name: requireName }) && t.isIdentifier(callee.property, { name: 'resolve' })) {
this.usesRequireResolve = true;
}
// found a require
if (t.isIdentifier(callee, { name: requireName }) && args.length == 1) {
// require('x');
if (t.isStringLiteral(args[0])) {
var requiredModuleName = args[0].value;
// mirror behaviour at https://github.com/systemjs/systemjs/blob/0.19.8/lib/cjs.js#L50 to remove trailing slash
if (requiredModuleName[requiredModuleName.length - 1] == '/') {
requiredModuleName = requiredModuleName.substr(0, requiredModuleName.length - 1);
}
if (typeof map === 'function') {
requiredModuleName = map(requiredModuleName) || requiredModuleName;
}
args[0].value = requiredModuleName;
}
}
},
MemberExpression: function MemberExpression(path, _ref4) {
var _ref4$opts = _ref4.opts;
var opts = _ref4$opts === undefined ? {} : _ref4$opts;
MemberExpression: function MemberExpression(path, _ref3) {
var _ref3$opts = _ref3.opts;
var opts = _ref3$opts === undefined ? {} : _ref3$opts;
var node = path.node;

@@ -63,6 +88,11 @@

},
Identifier: function Identifier(_ref5) {
var node = _ref5.node;
ReferencedIdentifier: function ReferencedIdentifier(path, state) {
if (path.node.name == 'define' && !path.scope.hasBinding('define') && (!t.isExpression(path.parentPath) || t.isUnaryExpression(path.parentPath) && path.parentPath.node.operator === 'typeof')) {
path.replaceWith(t.identifier('undefined'));
}
},
Identifier: function Identifier(path) {
var node = path.node;
// test if file paths are used
// test if file paths are used
if (t.isIdentifier(node, { name: '__filename' }) || t.isIdentifier(node, { name: '__dirname' })) {

@@ -74,7 +104,11 @@ this.usesFilePaths = true;

Program: {
exit: function exit(_ref6, _ref7) {
var node = _ref6.node;
var _ref7$opts = _ref7.opts;
var opts = _ref7$opts === undefined ? {} : _ref7$opts;
exit: function exit(path, _ref4) {
var _ref4$opts = _ref4.opts;
var opts = _ref4$opts === undefined ? {} : _ref4$opts;
var _opts$requireName2 = opts.requireName;
var requireName = _opts$requireName2 === undefined ? 'require' : _opts$requireName2;
var _opts$mappedRequireNa = opts.mappedRequireName;
var mappedRequireName = _opts$mappedRequireNa === undefined ? '$__require' : _opts$mappedRequireNa;
opts.static = opts.static === true || false;

@@ -95,3 +129,3 @@

if (this.usesRequireResolve && !opts.static) {
node.body.unshift(buildRequireResolveFacade({
path.node.body.unshift(buildRequireResolveFacade({
SYSTEM_GLOBAL: systemGlobal

@@ -102,3 +136,3 @@ }));

if (this.usesFilePaths && !opts.static) {
node.body.unshift(buildDynamicFilePaths({
path.node.body.unshift(buildDynamicFilePaths({
SYSTEM_GLOBAL: systemGlobal

@@ -112,3 +146,3 @@ }));

node.body.unshift(buildStaticFilePaths({
path.node.body.unshift(buildStaticFilePaths({
FILENAME: t.stringLiteral(filename),

@@ -119,3 +153,3 @@ DIRNAME: t.stringLiteral(dirname)

node.body.unshift(buildDefineGlobal());
path.node.body.unshift(buildDefineGlobal());

@@ -134,13 +168,13 @@ var globals = opts.globals;

globals = t.variableDeclaration('var', globalAssignments);
node.body.unshift(globals);
path.node.body.unshift(globals);
}
var factory = buildFactory({
BODY: node.body
BODY: path.node.body
});
factory.expression.body.directives = node.directives;
node.directives = [];
factory.expression.body.directives = path.node.directives;
path.node.directives = [];
node.body = [buildTemplate({
path.node.body = [buildTemplate({
SYSTEM_GLOBAL: systemGlobal,

@@ -151,2 +185,15 @@ MODULE_NAME: moduleName,

})];
var remapFactoryScopedRequire = {
FunctionExpression: function FunctionExpression(path) {
if (path.node == factory.expression) {
path.scope.rename(this.requireName, this.mappedRequireName);
}
}
};
path.traverse(remapFactoryScopedRequire, {
requireName: requireName,
mappedRequireName: mappedRequireName
});
}

@@ -153,0 +200,0 @@ }

{
"name": "babel-plugin-transform-cjs-system-wrapper",
"version": "0.2.1",
"version": "0.3.0",
"description": "Wraps CommonJS scripts into System.registerDynamic(...",

@@ -13,4 +13,3 @@ "repository": {

"dependencies": {
"babel-template": "^6.9.0",
"babel-plugin-transform-cjs-system-require": "^0.1.1"
"babel-template": "^6.9.0"
},

@@ -17,0 +16,0 @@ "devDependencies": {

@@ -37,7 +37,5 @@ # babel-plugin-transform-cjs-system-wrapper

var f = $__require('foo');
var define,
global = this,
var global = this,
GLOBAL = this;
var foo = $__require('foo');
return module.exports;
});

@@ -44,0 +42,0 @@ ```

$__System.registerDynamic([], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
module.exports = $__System._nodeRequire ? process : $__require('foo');
return module.exports;
});
System._nodeRequire("foo");
SystemJS._nodeRequire("bar");
SystemJS.registerDynamic([], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
SystemJS._nodeRequire("foo");
SystemJS._nodeRequire("bar");
return module.exports;
});
});
module.exports = {
systemGlobal: 'SystemJS'
};
System.registerDynamic(["foo", "bar"], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
return module.exports;
});
});
module.exports = {
deps: ['foo', 'bar']
};
System.registerDynamic([], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;

@@ -9,3 +8,2 @@ var $__pathVars = System.get('@@cjs-helpers').getPathVars(module.id),

console.log(__filename);
return module.exports;
});
});
System.registerDynamic([], true, function ($__require, exports, module) {
var f = $__require("foo"), b = $__require("bar");
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
return module.exports;
});
});

@@ -0,0 +0,0 @@ module.exports = {

System.registerDynamic("foobar", [], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
return module.exports;
});
});
module.exports = {
moduleName: 'foobar'
};
System.registerDynamic([], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;

@@ -8,3 +7,2 @@ var __filename = "",

console.log(__filename);
return module.exports;
});
});
foo.registerDynamic([], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
return module.exports;
});
});
module.exports = {
systemGlobal: 'foo'
};

@@ -5,6 +5,4 @@ System.registerDynamic([], true, function ($__require, exports, module) {

var define,
global = this || self,
var global = this || self,
GLOBAL = global;
return module.exports;
});
});
System.registerDynamic([], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;

@@ -8,3 +7,2 @@ var __filename = "path/to/foobar",

console.log(__dirname);
return module.exports;
});
});
System.registerDynamic([], true, function ($__require, exports, module) {
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
"production";
return module.exports;
});
});

@@ -6,4 +6,4 @@ 'use strict';

(function (require) {
if (typeof require != 'undefined' && eval('typeof require') == 'undefined') {
if (typeof require != 'undefined' && eval('typeof require') != 'undefined') {
exports.cjs = true;

@@ -23,2 +23,2 @@ }

exports.env = process.env.NODE_ENV;
exports.env = process.env.NODE_ENV;

@@ -5,4 +5,3 @@ SystemJS.registerDynamic('foobar', ['bar'], true, function ($__require, exports, module) {

var f = $__require('foo');
var define,
global = this || self,
var global = this || self,
GLOBAL = global;

@@ -19,5 +18,5 @@ var $__pathVars = SystemJS.get('@@cjs-helpers').getPathVars(module.id),

(function ($__require) {
(function (require) {
if (typeof $__require != 'undefined' && eval('typeof require') == 'undefined') {
if (typeof require != 'undefined' && eval('typeof require') != 'undefined') {
exports.cjs = true;

@@ -27,14 +26,13 @@ }

if (false) {
$__require('foo');
$__require('bar');
$__require('some' + 'expression');
require('foo');
require('bar');
require('some' + 'expression');
}
})($__require);
(function ($__require) {
$__require.resolve('raboof');
(function (require) {
require.resolve('raboof');
})($__require);
exports.env = 'production';
return module.exports;
});

@@ -5,7 +5,5 @@ System.registerDynamic('foobar', ['bar'], true, function ($__require, exports, module) {

var f = $__require('foo');
var define,
global = this || self,
var global = this || self,
GLOBAL = global;
var foo = $__require('foo');
return module.exports;
});
});

@@ -0,0 +0,0 @@ module.exports = {

@@ -0,0 +0,0 @@ import path from 'path';

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc