prettier-eslint
Advanced tools
Comparing version
'use strict'; | ||
var _slicedToArray = function () { function sliceIterator(arr, i) { 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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); /* eslint no-console:0, global-require:0, import/no-dynamic-require:0 */ | ||
/* eslint complexity: [1, 6] */ | ||
var _slicedToArray = function () { function sliceIterator(arr, i) { 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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); | ||
var _fs = require('fs'); | ||
var _fs2 = _interopRequireDefault(_fs); | ||
var _path = require('path'); | ||
var _path2 = _interopRequireDefault(_path); | ||
var _requireRelative = require('require-relative'); | ||
var _requireRelative2 = _interopRequireDefault(_requireRelative); | ||
var _prettyFormat = require('pretty-format'); | ||
var _prettyFormat2 = _interopRequireDefault(_prettyFormat); | ||
var _commonTags = require('common-tags'); | ||
var _indentString = require('indent-string'); | ||
var _indentString2 = _interopRequireDefault(_indentString); | ||
var _loglevelColoredLevelPrefix = require('loglevel-colored-level-prefix'); | ||
var _loglevelColoredLevelPrefix2 = _interopRequireDefault(_loglevelColoredLevelPrefix); | ||
var _utils = require('./utils'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var logger = (0, _loglevelColoredLevelPrefix2.default)({ prefix: 'prettier-eslint' }); | ||
// CommonJS + ES6 modules... is it worth it? Probably not... | ||
module.exports = format; | ||
/** | ||
@@ -66,60 +29,110 @@ * Formats the text with prettier and then eslint based on the given options | ||
*/ | ||
function format(options) { | ||
var _options$logLevel = options.logLevel, | ||
logLevel = _options$logLevel === undefined ? getDefaultLogLevel() : _options$logLevel; | ||
var format = function () { | ||
var _ref = _asyncToGenerator(function* (options) { | ||
var _options$logLevel = options.logLevel, | ||
logLevel = _options$logLevel === undefined ? getDefaultLogLevel() : _options$logLevel; | ||
logger.setLevel(logLevel); | ||
logger.trace('called format with options:', (0, _prettyFormat2.default)(options)); | ||
logger.setLevel(logLevel); | ||
logger.trace('called format with options:', (0, _prettyFormat2.default)(options)); | ||
var filePath = options.filePath, | ||
_options$text = options.text, | ||
text = _options$text === undefined ? getTextFromFilePath(filePath) : _options$text, | ||
_options$eslintPath = options.eslintPath, | ||
eslintPath = _options$eslintPath === undefined ? getModulePath(filePath, 'eslint') : _options$eslintPath, | ||
_options$prettierPath = options.prettierPath, | ||
prettierPath = _options$prettierPath === undefined ? getModulePath(filePath, 'prettier') : _options$prettierPath, | ||
prettierOptions = options.prettierOptions, | ||
prettierLast = options.prettierLast, | ||
fallbackPrettierOptions = options.fallbackPrettierOptions; | ||
var filePath = options.filePath, | ||
_options$text = options.text, | ||
text = _options$text === undefined ? getTextFromFilePath(filePath) : _options$text, | ||
_options$eslintPath = options.eslintPath, | ||
eslintPath = _options$eslintPath === undefined ? getModulePath(filePath, 'eslint') : _options$eslintPath, | ||
_options$prettierPath = options.prettierPath, | ||
prettierPath = _options$prettierPath === undefined ? getModulePath(filePath, 'prettier') : _options$prettierPath, | ||
prettierLast = options.prettierLast, | ||
fallbackPrettierOptions = options.fallbackPrettierOptions; | ||
var eslintConfig = (0, _utils.defaultEslintConfig)(getConfig(filePath, eslintPath), options.eslintConfig); | ||
var eslintConfig = (0, _lodash2.default)({}, options.eslintConfig, getConfig(filePath, eslintPath)); | ||
var formattingOptions = (0, _utils.getOptionsForFormatting)(eslintConfig, prettierOptions, fallbackPrettierOptions); | ||
var prettierOptions = (0, _lodash2.default)({}, options.prettierOptions, (yield getPrettierConfig(filePath, prettierPath))); | ||
logger.debug('inferred options:', (0, _prettyFormat2.default)({ | ||
filePath, | ||
text, | ||
eslintPath, | ||
prettierPath, | ||
eslintConfig: formattingOptions.eslint, | ||
prettierOptions: formattingOptions.prettier, | ||
logLevel, | ||
prettierLast | ||
})); | ||
var formattingOptions = (0, _utils.getOptionsForFormatting)(eslintConfig, prettierOptions, fallbackPrettierOptions); | ||
var isCss = /\.(css|less|scss)$/.test(filePath); | ||
var isJson = /\.json$/.test(filePath); | ||
logger.debug('inferred options:', (0, _prettyFormat2.default)({ | ||
filePath, | ||
text, | ||
eslintPath, | ||
prettierPath, | ||
eslintConfig: formattingOptions.eslint, | ||
prettierOptions: formattingOptions.prettier, | ||
logLevel, | ||
prettierLast | ||
})); | ||
if (isCss) { | ||
formattingOptions.prettier.parser = 'postcss'; | ||
} else if (isJson) { | ||
formattingOptions.prettier.parser = 'json'; | ||
formattingOptions.prettier.trailingComma = 'none'; | ||
} | ||
var isCss = /\.(css|less|scss)$/.test(filePath); | ||
var isJson = /\.json$/.test(filePath); | ||
var prettify = createPrettify(formattingOptions.prettier, prettierPath); | ||
if (isCss) { | ||
formattingOptions.prettier.parser = 'postcss'; | ||
} else if (isJson) { | ||
formattingOptions.prettier.parser = 'json'; | ||
formattingOptions.prettier.trailingComma = 'none'; | ||
} | ||
if (isCss || isJson) { | ||
return prettify(text, filePath); | ||
} | ||
var prettify = createPrettify(formattingOptions.prettier, prettierPath); | ||
var eslintFix = createEslintFix(formattingOptions.eslint, eslintPath); | ||
if (isCss || isJson) { | ||
return prettify(text, filePath); | ||
} | ||
if (prettierLast) { | ||
return prettify(eslintFix(text, filePath)); | ||
} | ||
return eslintFix(prettify(text), filePath); | ||
} | ||
var eslintFix = createEslintFix(formattingOptions.eslint, eslintPath); | ||
if (prettierLast) { | ||
return prettify(eslintFix(text, filePath)); | ||
} | ||
return eslintFix(prettify(text), filePath); | ||
}); | ||
return function format(_x) { | ||
return _ref.apply(this, arguments); | ||
}; | ||
}(); | ||
var _fs = require('fs'); | ||
var _fs2 = _interopRequireDefault(_fs); | ||
var _path = require('path'); | ||
var _path2 = _interopRequireDefault(_path); | ||
var _requireRelative = require('require-relative'); | ||
var _requireRelative2 = _interopRequireDefault(_requireRelative); | ||
var _prettyFormat = require('pretty-format'); | ||
var _prettyFormat2 = _interopRequireDefault(_prettyFormat); | ||
var _commonTags = require('common-tags'); | ||
var _indentString = require('indent-string'); | ||
var _indentString2 = _interopRequireDefault(_indentString); | ||
var _loglevelColoredLevelPrefix = require('loglevel-colored-level-prefix'); | ||
var _loglevelColoredLevelPrefix2 = _interopRequireDefault(_loglevelColoredLevelPrefix); | ||
var _lodash = require('lodash.merge'); | ||
var _lodash2 = _interopRequireDefault(_lodash); | ||
var _utils = require('./utils'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* eslint no-console:0, global-require:0, import/no-dynamic-require:0 */ | ||
/* eslint complexity: [1, 6] */ | ||
var logger = (0, _loglevelColoredLevelPrefix2.default)({ prefix: 'prettier-eslint' }); | ||
// CommonJS + ES6 modules... is it worth it? Probably not... | ||
module.exports = format; | ||
function createPrettify(formatOptions, prettierPath) { | ||
@@ -133,15 +146,4 @@ return function prettify(text) { | ||
`); | ||
var prettier = void 0; | ||
var prettier = requireModule(prettierPath, 'prettier'); | ||
try { | ||
logger.trace(`requiring prettier module at "${prettierPath}"`); | ||
prettier = require(prettierPath); | ||
} catch (error) { | ||
logger.error(_commonTags.oneLine` | ||
There was trouble getting prettier. | ||
Is "prettierPath: ${prettierPath}" | ||
a correct path to the prettier module? | ||
`); | ||
throw error; | ||
} | ||
try { | ||
logger.trace(`calling prettier.format with the text and prettierOptions`); | ||
@@ -233,2 +235,20 @@ var output = prettier.format(text, formatOptions); | ||
function getPrettierConfig(filePath, prettierPath) { | ||
var prettier = requireModule(prettierPath, 'prettier'); | ||
return prettier.resolveConfig(filePath); | ||
} | ||
function requireModule(modulePath, name) { | ||
try { | ||
logger.trace(`requiring "${name}" module at "${modulePath}"`); | ||
return require(modulePath); | ||
} catch (error) { | ||
logger.error(_commonTags.oneLine` | ||
There was trouble getting "${name}". | ||
Is "${modulePath}" a correct path to the "${name}" module? | ||
`); | ||
throw error; | ||
} | ||
} | ||
function getModulePath() { | ||
@@ -250,14 +270,9 @@ var filePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : __filename; | ||
function getESLintCLIEngine(eslintPath, eslintOptions) { | ||
var _requireModule = requireModule(eslintPath, 'eslint'), | ||
CLIEngine = _requireModule.CLIEngine; | ||
try { | ||
logger.trace(`requiring eslint module at "${eslintPath}"`); | ||
var _require = require(eslintPath), | ||
CLIEngine = _require.CLIEngine; | ||
return new CLIEngine(eslintOptions); | ||
} catch (error) { | ||
logger.error(_commonTags.oneLine` | ||
There was trouble creating the ESLint CLIEngine. | ||
Is "eslintPath: ${eslintPath}" a correct path to the ESLint module? | ||
`); | ||
logger.error(`There was trouble creating the ESLint CLIEngine.`); | ||
throw error; | ||
@@ -264,0 +279,0 @@ } |
@@ -6,3 +6,3 @@ 'use strict'; | ||
}); | ||
exports.defaultEslintConfig = exports.getOptionsForFormatting = undefined; | ||
exports.getOptionsForFormatting = undefined; | ||
@@ -23,6 +23,2 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { 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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); | ||
var _lodash = require('lodash.merge'); | ||
var _lodash2 = _interopRequireDefault(_lodash); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -85,12 +81,4 @@ | ||
};exports.getOptionsForFormatting = getOptionsForFormatting; | ||
exports.defaultEslintConfig = defaultEslintConfig; | ||
function defaultEslintConfig() { | ||
var eslintConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
var defaultConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
return (0, _lodash2.default)({}, defaultConfig, eslintConfig); | ||
} | ||
function getOptionsForFormatting(eslintConfig) { | ||
@@ -97,0 +85,0 @@ var prettierOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; |
{ | ||
"name": "prettier-eslint", | ||
"version": "6.4.3", | ||
"description": "Formats your JavaScript using prettier followed by eslint --fix", | ||
"version": "7.0.0-beta.0", | ||
"description": | ||
"Formats your JavaScript using prettier followed by eslint --fix", | ||
"main": "dist/index.js", | ||
@@ -11,5 +12,3 @@ "scripts": { | ||
}, | ||
"files": [ | ||
"dist" | ||
], | ||
"files": ["dist"], | ||
"keywords": [], | ||
@@ -33,5 +32,6 @@ "author": "Kent C. Dodds <kent@doddsfamily.us> (http://kentcdodds.com/)", | ||
"babel-jest": "^20.0.3", | ||
"babel-plugin-transform-class-properties": "6.24.1", | ||
"babel-plugin-transform-object-rest-spread": "6.26.0", | ||
"babel-polyfill": "^6.26.0", | ||
"babel-preset-env": "^1.6.0", | ||
"babel-preset-stage-2": "^6.24.1", | ||
"babel-register": "^6.26.0", | ||
@@ -60,2 +60,2 @@ "chalk": "^2.1.0", | ||
"homepage": "https://github.com/prettier/prettier-eslint#readme" | ||
} | ||
} |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
43931
1.16%513
0.39%4
-20%18
5.88%1
Infinity%