react-magnetic-di
Advanced tools
Comparing version 2.1.3 to 2.2.0
@@ -11,2 +11,4 @@ "use strict"; | ||
var sortDependencies = require('./rules/sort-dependencies'); | ||
module.exports = { | ||
@@ -17,4 +19,5 @@ rules: { | ||
'no-duplicate': noDuplicate, | ||
'no-extraneous': noExtraneous | ||
'no-extraneous': noExtraneous, | ||
'sort-dependencies': sortDependencies | ||
} | ||
}; |
"use strict"; | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
var _require = require('../utils'), | ||
@@ -85,2 +97,12 @@ getDiIdentifier = _require.getDiIdentifier, | ||
var lastArg = diStatement.expression.arguments.slice(-1)[0]; | ||
if (!lastArg) { | ||
// if injection without args, let's add the var inside call | ||
var _diStatement$expressi = _slicedToArray(diStatement.expression.callee.range, 2), | ||
start = _diStatement$expressi[0], | ||
end = _diStatement$expressi[1]; | ||
return fixer.insertTextAfterRange([start, end + 1], node.name); | ||
} | ||
return fixer.insertTextAfter(lastArg, ", ".concat(node.name)); | ||
@@ -87,0 +109,0 @@ } |
@@ -29,3 +29,3 @@ "use strict"; | ||
if (!diIdentifier) return; | ||
node.body.forEach(function (statement, i) { | ||
(node.body || []).forEach(function (statement, i) { | ||
if (!isDiStatement(statement, diIdentifier) || i === 0) return; | ||
@@ -32,0 +32,0 @@ var prev = node.body[i - 1]; |
@@ -7,3 +7,3 @@ "use strict"; | ||
var isDiStatement = function isDiStatement(stm, spec) { | ||
return stm.type === 'ExpressionStatement' && stm.expression && stm.expression.callee.name === spec.name; | ||
return stm.type === 'ExpressionStatement' && stm.expression && stm.expression.callee && stm.expression.callee.name === spec.name; | ||
}; | ||
@@ -10,0 +10,0 @@ |
@@ -9,2 +9,4 @@ var order = require('./rules/order'); | ||
var sortDependencies = require('./rules/sort-dependencies'); | ||
module.exports = { | ||
@@ -15,4 +17,5 @@ rules: { | ||
'no-duplicate': noDuplicate, | ||
'no-extraneous': noExtraneous | ||
'no-extraneous': noExtraneous, | ||
'sort-dependencies': sortDependencies | ||
} | ||
}; |
@@ -0,1 +1,13 @@ | ||
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } | ||
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } | ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } | ||
var _require = require('../utils'), | ||
@@ -83,2 +95,12 @@ getDiIdentifier = _require.getDiIdentifier, | ||
var lastArg = diStatement.expression.arguments.slice(-1)[0]; | ||
if (!lastArg) { | ||
// if injection without args, let's add the var inside call | ||
var _diStatement$expressi = _slicedToArray(diStatement.expression.callee.range, 2), | ||
start = _diStatement$expressi[0], | ||
end = _diStatement$expressi[1]; | ||
return fixer.insertTextAfterRange([start, end + 1], node.name); | ||
} | ||
return fixer.insertTextAfter(lastArg, ", ".concat(node.name)); | ||
@@ -85,0 +107,0 @@ } |
@@ -27,3 +27,3 @@ var _require = require('../utils'), | ||
if (!diIdentifier) return; | ||
node.body.forEach(function (statement, i) { | ||
(node.body || []).forEach(function (statement, i) { | ||
if (!isDiStatement(statement, diIdentifier) || i === 0) return; | ||
@@ -30,0 +30,0 @@ var prev = node.body[i - 1]; |
@@ -5,3 +5,3 @@ var PACKAGE_NAME = 'react-magnetic-di'; | ||
var isDiStatement = function isDiStatement(stm, spec) { | ||
return stm.type === 'ExpressionStatement' && stm.expression && stm.expression.callee.name === spec.name; | ||
return stm.type === 'ExpressionStatement' && stm.expression && stm.expression.callee && stm.expression.callee.name === spec.name; | ||
}; | ||
@@ -8,0 +8,0 @@ |
{ | ||
"name": "react-magnetic-di", | ||
"version": "2.1.3", | ||
"version": "2.2.0", | ||
"description": "Context driven dependency injection", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -184,4 +184,5 @@ <p align="center"> | ||
| `no-extraneous` | enforces dependencies to be consumed in the scope, to prevent unused variables | - | | ||
| `sort-dependencies` | require injectable dependencies to be sorted | - | | ||
The rules are exported from `react-magnetic-di/eslint-plugin`. Unfortunately Eslint does not allow plugins that are not npm packages, so rules needs to be imported via other means. | ||
The rules are exported from `react-magnetic-di/eslint-plugin`. Unfortunately Eslint does not allow plugins that are not npm packages, so rules needs to be imported via other means for now. | ||
@@ -188,0 +189,0 @@ ## Current limitations |
84574
48
1676
197