New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

babel-plugin-system-import-transformer

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-system-import-transformer - npm Package Compare versions

Comparing version 2.1.0 to 2.2.0

dist/babelArgumentProvider.js

187

dist/index.js
'use strict';
var path = require('path');
Object.defineProperty(exports, "__esModule", {
value: true
});
module.exports = function (babel) {
var t = babel.types;
function getImportPath(file, relativeImportPath) {
var filename = file.opts.filename;
var filePath = filename.replace(/[^\/]+$/, '');
var result = path.join(filePath, relativeImportPath);
return result;
}
function getImportModuleName(file, importPath) {
// check if it is a relative path or a module name
var importedModulePath = importPath.indexOf('/') === -1 ? importPath : getImportPath(file, importPath);
// Use the getModuleName()
// so that the getModuleId configuration option is called
// There should be a better way than cloning
var importedModuleFile = t.clone(file);
importedModuleFile.opts = t.cloneDeep(file.opts);
importedModuleFile.opts.filename = importedModuleFile.opts.filenameRelative = importedModulePath + '.js';
importedModuleFile.opts.moduleIds = true;
var result = importedModuleFile.getModuleName();
return result;
}
function SystemImportExpressionTransformer(state, params) {
this.state = state;
this.file = state.file;
this.pluginOptions = this.state.opts;
this.moduleType = this.pluginOptions.modules;
var param = params[0];
this.importedModuleLiteral = t.stringLiteral(param.node.value);
var moduleName = getImportModuleName(this.file, this.importedModuleLiteral.value);
this.moduleNameLiteral = t.stringLiteral(moduleName);
}
SystemImportExpressionTransformer.prototype.getGlobalIdentifier = function () {
if (this.globalIdentifier) {
return this.globalIdentifier;
}
var name = 'system-import-transformer-global-identifier';
var ref = t.conditionalExpression(t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('window')), t.stringLiteral('undefined')), t.identifier('window'), t.identifier('self'));
this.globalIdentifier = this.getOrCreateHelper(name, ref);
return this.globalIdentifier;
};
SystemImportExpressionTransformer.prototype.getOrCreateHelper = function (name, ref) {
var declar = this.file.declarations[name];
if (declar) {
return declar;
}
var uid = this.file.declarations[name] = this.file.scope.generateUidIdentifier(name);
this.file.usedHelpers[name] = true;
if (t.isFunctionExpression(ref) && !ref.id) {
ref.body._compact = true;
ref._generated = true;
ref.id = uid;
ref.type = "FunctionDeclaration";
this.file.attachAuxiliaryComment(ref);
this.file.path.unshiftContainer("body", ref);
} else {
ref._compact = true;
this.file.scope.push({
id: uid,
init: ref,
unique: true
});
}
return uid;
};
SystemImportExpressionTransformer.prototype.getAmdTest = function () {
var globalIdentifier = this.getGlobalIdentifier();
// typeof global.define === 'function' && global.define.amd
var amdTest = t.logicalExpression('&&', t.binaryExpression('===', t.unaryExpression('typeof', t.memberExpression(globalIdentifier, t.identifier('define'))), t.stringLiteral('function')), t.memberExpression(t.memberExpression(globalIdentifier, t.identifier('define')), t.identifier('amd')));
return amdTest;
};
SystemImportExpressionTransformer.prototype.getAmdRequirePromise = function (module) {
var globalIdentifier = this.getGlobalIdentifier();
// global.require(['localforageSerializer'], resolve, reject);
var amdRequire = t.expressionStatement(t.callExpression(t.memberExpression(globalIdentifier, t.identifier('require')), [t.arrayExpression([module]), t.identifier('resolve'), t.identifier('reject')]));
var newPromiseExpression = t.newExpression(t.identifier('Promise'), [t.functionExpression(null, [t.identifier('resolve'), t.identifier('reject')], t.blockStatement([amdRequire]))]);
return newPromiseExpression;
};
SystemImportExpressionTransformer.prototype.getCommonJSTest = function () {
// typeof module !== 'undefined' && module.exports && typeof require !== 'undefined'
var commonJSTest = t.logicalExpression('&&', t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('module')), t.stringLiteral('undefined')), t.logicalExpression('&&', t.memberExpression(t.identifier('module'), t.identifier('exports')), t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('require')), t.stringLiteral('undefined'))));
return commonJSTest;
};
SystemImportExpressionTransformer.prototype.getComponentTest = function () {
var globalIdentifier = this.getGlobalIdentifier();
// typeof module !== 'undefined' && module.component && global.require && global.require.loader === 'component'
var componentTest = t.logicalExpression('&&', t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('module')), t.stringLiteral('undefined')), t.logicalExpression('&&', t.memberExpression(t.identifier('module'), t.identifier('component')), t.logicalExpression('&&', t.memberExpression(globalIdentifier, t.identifier('require')), t.binaryExpression('===', t.memberExpression(t.memberExpression(globalIdentifier, t.identifier('require')), t.identifier('loader')), t.stringLiteral('component')))));
return componentTest;
};
SystemImportExpressionTransformer.prototype.getCommonJSRequire = function (module) {
// resolve(require('./../utils/serializer'));
var commonJSRequireExpression = t.callExpression(t.identifier('require'),
// [module] // why this isn't working???
// [module, t.identifier('undefined')] // had to add extra undefined parameter or parenthesis !?!?!?
[t.parenthesizedExpression(module)]);
return commonJSRequireExpression;
};
SystemImportExpressionTransformer.prototype.getCommonJSRequirePromise = function (module) {
var commonJSRequireExpression = this.getCommonJSRequire(module);
var commonJSRequire = this.createPromiseResolveExpression(commonJSRequireExpression);
return commonJSRequire;
};
SystemImportExpressionTransformer.prototype.getGlobalRequire = function (module) {
var globalIdentifier = this.getGlobalIdentifier();
// resolve(global.localforageSerializer);
var globalMemberExpression = t.memberExpression(globalIdentifier, module, true // computed
);
return globalMemberExpression;
};
SystemImportExpressionTransformer.prototype.getGlobalRequirePromise = function (module) {
var globalMemberExpression = this.getGlobalRequire(module);
var globalRequire = this.createPromiseResolveExpression(globalMemberExpression);
return globalRequire;
};
SystemImportExpressionTransformer.prototype.createTransformedExpression = function () {
var moduleImportExpression;
if (this.moduleType === 'amd') {
moduleImportExpression = this.getAmdRequirePromise(this.moduleNameLiteral);
} else if (this.moduleType === 'common') {
moduleImportExpression = this.getCommonJSRequirePromise(this.importedModuleLiteral);
} else if (this.moduleType === 'global') {
moduleImportExpression = this.getGlobalRequirePromise(this.moduleNameLiteral);
} else {
// umd
var amdTest = this.getAmdTest();
var commonJSTest = this.getCommonJSTest();
var componentTest = this.getComponentTest();
var commonJSOrComponentTest = t.logicalExpression('||', commonJSTest, componentTest);
var umdRequire = t.conditionalExpression(amdTest, this.getAmdRequirePromise(this.moduleNameLiteral), t.conditionalExpression(commonJSOrComponentTest, this.getCommonJSRequirePromise(this.importedModuleLiteral), this.getGlobalRequirePromise(this.moduleNameLiteral)));
moduleImportExpression = umdRequire;
}
return moduleImportExpression;
};
SystemImportExpressionTransformer.prototype.createResolveExpressionStatement = function (parameter) {
var result = t.expressionStatement(t.callExpression(t.identifier('resolve'), [parameter]));
return result;
};
SystemImportExpressionTransformer.prototype.createPromiseResolveExpression = function (parameter) {
var result = t.callExpression(t.memberExpression(t.identifier('Promise'), t.identifier('resolve')), [parameter]);
return result;
};
exports.default = function (babel) {
return {

@@ -181,3 +15,4 @@ visitor: {

if (params.length && params[0].isLiteral()) {
var transformer = new SystemImportExpressionTransformer(state, params);
(0, _babelArgumentProvider.setBabelArgument)(babel);
var transformer = new _SystemImportExpressionTransformer2.default(state, params);
var transformedExpression = transformer.createTransformedExpression();

@@ -192,2 +27,10 @@ if (transformedExpression) {

};
};
};
var _babelArgumentProvider = require('./babelArgumentProvider');
var _SystemImportExpressionTransformer = require('./SystemImportExpressionTransformer');
var _SystemImportExpressionTransformer2 = _interopRequireDefault(_SystemImportExpressionTransformer);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -9,19 +9,16 @@ 'use strict';

var _ModuleImportHelper = require('./ModuleImportHelper');
var _babelArgumentProvider = require('./babelArgumentProvider');
var _ModuleImportHelper2 = _interopRequireDefault(_ModuleImportHelper);
var _moduleImportHelper = require('./moduleImportHelper');
var _promiseUtils = require('./promiseUtils');
var _utils = require('./utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var t;
var SystemImportExpressionTransformer = function () {
function SystemImportExpressionTransformer(types, state, params) {
function SystemImportExpressionTransformer(state, params) {
_classCallCheck(this, SystemImportExpressionTransformer);
t = types;
this.state = state;

@@ -32,6 +29,6 @@ this.file = state.file;

var param = params[0];
this.importedModuleLiteral = t.stringLiteral(param.node.value);
this.importedModuleLiteral = _babelArgumentProvider.types.stringLiteral(param.node.value);
var moduleName = new _ModuleImportHelper2.default(t).getImportModuleName(this.file, this.importedModuleLiteral.value);
this.moduleNameLiteral = t.stringLiteral(moduleName);
var moduleName = (0, _moduleImportHelper.getImportModuleName)(this.file, this.importedModuleLiteral.value);
this.moduleNameLiteral = _babelArgumentProvider.types.stringLiteral(moduleName);
}

@@ -45,3 +42,3 @@

}
this.globalIdentifier = new _utils.UtilsHelper(t, this.file).getGlobalIdentifier();
this.globalIdentifier = new _utils.UtilsHelper(this.file).getGlobalIdentifier();
return this.globalIdentifier;

@@ -54,3 +51,3 @@ }

// typeof global.define === 'function' && global.define.amd
var amdTest = t.logicalExpression('&&', t.binaryExpression('===', t.unaryExpression('typeof', t.memberExpression(globalIdentifier, t.identifier('define'))), t.stringLiteral('function')), t.memberExpression(t.memberExpression(globalIdentifier, t.identifier('define')), t.identifier('amd')));
var amdTest = _babelArgumentProvider.types.logicalExpression('&&', _babelArgumentProvider.types.binaryExpression('===', _babelArgumentProvider.types.unaryExpression('typeof', _babelArgumentProvider.types.memberExpression(globalIdentifier, _babelArgumentProvider.types.identifier('define'))), _babelArgumentProvider.types.stringLiteral('function')), _babelArgumentProvider.types.memberExpression(_babelArgumentProvider.types.memberExpression(globalIdentifier, _babelArgumentProvider.types.identifier('define')), _babelArgumentProvider.types.identifier('amd')));
return amdTest;

@@ -63,5 +60,5 @@ }

// global.require(['localforageSerializer'], resolve, reject);
var amdRequire = t.expressionStatement(t.callExpression(t.memberExpression(globalIdentifier, t.identifier('require')), [t.arrayExpression([module]), t.identifier('resolve'), t.identifier('reject')]));
var amdRequire = _babelArgumentProvider.types.expressionStatement(_babelArgumentProvider.types.callExpression(_babelArgumentProvider.types.memberExpression(globalIdentifier, _babelArgumentProvider.types.identifier('require')), [_babelArgumentProvider.types.arrayExpression([module]), _babelArgumentProvider.types.identifier('resolve'), _babelArgumentProvider.types.identifier('reject')]));
var newPromiseExpression = t.newExpression(t.identifier('Promise'), [t.functionExpression(null, [t.identifier('resolve'), t.identifier('reject')], t.blockStatement([amdRequire]))]);
var newPromiseExpression = _babelArgumentProvider.types.newExpression(_babelArgumentProvider.types.identifier('Promise'), [_babelArgumentProvider.types.functionExpression(null, [_babelArgumentProvider.types.identifier('resolve'), _babelArgumentProvider.types.identifier('reject')], _babelArgumentProvider.types.blockStatement([amdRequire]))]);
return newPromiseExpression;

@@ -73,3 +70,3 @@ }

// typeof module !== 'undefined' && module.exports && typeof require !== 'undefined'
var commonJSTest = t.logicalExpression('&&', t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('module')), t.stringLiteral('undefined')), t.logicalExpression('&&', t.memberExpression(t.identifier('module'), t.identifier('exports')), t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('require')), t.stringLiteral('undefined'))));
var commonJSTest = _babelArgumentProvider.types.logicalExpression('&&', _babelArgumentProvider.types.binaryExpression('!==', _babelArgumentProvider.types.unaryExpression('typeof', _babelArgumentProvider.types.identifier('module')), _babelArgumentProvider.types.stringLiteral('undefined')), _babelArgumentProvider.types.logicalExpression('&&', _babelArgumentProvider.types.memberExpression(_babelArgumentProvider.types.identifier('module'), _babelArgumentProvider.types.identifier('exports')), _babelArgumentProvider.types.binaryExpression('!==', _babelArgumentProvider.types.unaryExpression('typeof', _babelArgumentProvider.types.identifier('require')), _babelArgumentProvider.types.stringLiteral('undefined'))));
return commonJSTest;

@@ -82,3 +79,3 @@ }

// typeof module !== 'undefined' && module.component && global.require && global.require.loader === 'component'
var componentTest = t.logicalExpression('&&', t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('module')), t.stringLiteral('undefined')), t.logicalExpression('&&', t.memberExpression(t.identifier('module'), t.identifier('component')), t.logicalExpression('&&', t.memberExpression(globalIdentifier, t.identifier('require')), t.binaryExpression('===', t.memberExpression(t.memberExpression(globalIdentifier, t.identifier('require')), t.identifier('loader')), t.stringLiteral('component')))));
var componentTest = _babelArgumentProvider.types.logicalExpression('&&', _babelArgumentProvider.types.binaryExpression('!==', _babelArgumentProvider.types.unaryExpression('typeof', _babelArgumentProvider.types.identifier('module')), _babelArgumentProvider.types.stringLiteral('undefined')), _babelArgumentProvider.types.logicalExpression('&&', _babelArgumentProvider.types.memberExpression(_babelArgumentProvider.types.identifier('module'), _babelArgumentProvider.types.identifier('component')), _babelArgumentProvider.types.logicalExpression('&&', _babelArgumentProvider.types.memberExpression(globalIdentifier, _babelArgumentProvider.types.identifier('require')), _babelArgumentProvider.types.binaryExpression('===', _babelArgumentProvider.types.memberExpression(_babelArgumentProvider.types.memberExpression(globalIdentifier, _babelArgumentProvider.types.identifier('require')), _babelArgumentProvider.types.identifier('loader')), _babelArgumentProvider.types.stringLiteral('component')))));
return componentTest;

@@ -91,6 +88,6 @@ }

var commonJSRequireExpression = t.callExpression(t.identifier('require'),
var commonJSRequireExpression = _babelArgumentProvider.types.callExpression(_babelArgumentProvider.types.identifier('require'),
// [module] // why this isn't working???
// [module, t.identifier('undefined')] // had to add extra undefined parameter or parenthesis !?!?!?
[t.parenthesizedExpression(module)]);
[_babelArgumentProvider.types.parenthesizedExpression(module)]);
return commonJSRequireExpression;

@@ -102,3 +99,3 @@ }

var commonJSRequireExpression = this.getCommonJSRequire(module);
var commonJSRequire = this.createPromiseResolveExpression(commonJSRequireExpression);
var commonJSRequire = (0, _promiseUtils.createPromiseResolveExpression)(commonJSRequireExpression);
return commonJSRequire;

@@ -112,3 +109,3 @@ }

// resolve(global.localforageSerializer);
var globalMemberExpression = t.memberExpression(globalIdentifier, module, true // computed
var globalMemberExpression = _babelArgumentProvider.types.memberExpression(globalIdentifier, module, true // computed
);

@@ -121,3 +118,3 @@ return globalMemberExpression;

var globalMemberExpression = this.getGlobalRequire(module);
var globalRequire = this.createPromiseResolveExpression(globalMemberExpression);
var globalRequire = (0, _promiseUtils.createPromiseResolveExpression)(globalMemberExpression);
return globalRequire;

@@ -140,5 +137,5 @@ }

var componentTest = this.getComponentTest();
var commonJSOrComponentTest = t.logicalExpression('||', commonJSTest, componentTest);
var commonJSOrComponentTest = _babelArgumentProvider.types.logicalExpression('||', commonJSTest, componentTest);
var umdRequire = t.conditionalExpression(amdTest, this.getAmdRequirePromise(this.moduleNameLiteral), t.conditionalExpression(commonJSOrComponentTest, this.getCommonJSRequirePromise(this.importedModuleLiteral), this.getGlobalRequirePromise(this.moduleNameLiteral)));
var umdRequire = _babelArgumentProvider.types.conditionalExpression(amdTest, this.getAmdRequirePromise(this.moduleNameLiteral), _babelArgumentProvider.types.conditionalExpression(commonJSOrComponentTest, this.getCommonJSRequirePromise(this.importedModuleLiteral), this.getGlobalRequirePromise(this.moduleNameLiteral)));
moduleImportExpression = umdRequire;

@@ -149,14 +146,2 @@ }

}
}, {
key: 'createResolveExpressionStatement',
value: function createResolveExpressionStatement(parameter) {
var result = t.expressionStatement(t.callExpression(t.identifier('resolve'), [parameter]));
return result;
}
}, {
key: 'createPromiseResolveExpression',
value: function createPromiseResolveExpression(parameter) {
var result = t.callExpression(t.memberExpression(t.identifier('Promise'), t.identifier('resolve')), [parameter]);
return result;
}
}]);

@@ -163,0 +148,0 @@

@@ -6,2 +6,3 @@ 'use strict';

});
exports.UtilsHelper = undefined;

@@ -11,7 +12,9 @@ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

exports.getGlobalObjectExpression = getGlobalObjectExpression;
exports.createResolveExpressionStatement = createResolveExpressionStatement;
exports.createPromiseResolveExpression = createPromiseResolveExpression;
var _babelArgumentProvider = require('./babelArgumentProvider');
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var t;
function getGlobalObjectExpression(t) {

@@ -21,7 +24,16 @@ return t.conditionalExpression(t.binaryExpression('!==', t.unaryExpression('typeof', t.identifier('window')), t.stringLiteral('undefined')), t.identifier('window'), t.identifier('self'));

function createResolveExpressionStatement(t, parameter) {
var result = t.expressionStatement(t.callExpression(t.identifier('resolve'), [parameter]));
return result;
}
function createPromiseResolveExpression(t, parameter) {
var result = t.callExpression(t.memberExpression(t.identifier('Promise'), t.identifier('resolve')), [parameter]);
return result;
}
var UtilsHelper = exports.UtilsHelper = function () {
function UtilsHelper(types, file) {
function UtilsHelper(file) {
_classCallCheck(this, UtilsHelper);
t = types;
this.file = file;

@@ -35,3 +47,3 @@ }

var result = this.getOrCreateHelper(name, function () {
return getGlobalObjectExpression(t);
return getGlobalObjectExpression(_babelArgumentProvider.types);
});

@@ -55,3 +67,3 @@ return result;

if (t.isFunctionExpression(ref) && !ref.id) {
if (_babelArgumentProvider.types.isFunctionExpression(ref) && !ref.id) {
ref.body._compact = true;

@@ -58,0 +70,0 @@ ref._generated = true;

{
"name": "babel-plugin-system-import-transformer",
"version": "2.1.0",
"version": "2.2.0",
"description": "Babel plugin that replaces System.import with the equivalent UMD pattern",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

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