UNPKG

prettier-plugin-sorted

Version:

Sort your JavaScript and TypeScript imports with prettier with automatic alias support

81 lines (70 loc) 3.15 kB
import path from 'path'; import sortImports from 'import-sort'; import { getConfig } from 'import-sort-config'; import { parsers as parsers$1 } from 'prettier/parser-babel'; import { parsers as parsers$2 } from 'prettier/parser-typescript'; import invariant from 'tiny-invariant'; function _extends() { _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; }; return _extends.apply(this, arguments); } var msg = function msg(message) { return "prettier-config-monots SORTER: " + message; }; var DEFAULT_PARSER = 'typescript'; var DEFAULT_STYLE = 'custom'; var defaultConfig = { '.js, .jsx, .es6, .es, .mjs, .ts, .tsx': { parser: DEFAULT_PARSER, style: DEFAULT_STYLE, options: {} } }; var getAndCheckConfig = function getAndCheckConfig(extension, fileDirectory) { var resolvedConfig = getConfig(extension, fileDirectory, defaultConfig); !resolvedConfig ? process.env.NODE_ENV !== "production" ? invariant(false, msg("No configuration found for file type " + extension)) : invariant(false) : void 0; var rawParser = resolvedConfig.config.parser; var rawStyle = resolvedConfig.config.style; !rawParser ? process.env.NODE_ENV !== "production" ? invariant(false, "No parser defined for file type " + extension) : invariant(false) : void 0; !rawStyle ? process.env.NODE_ENV !== "production" ? invariant(false, "No style defined for file type " + extension) : invariant(false) : void 0; var parser = resolvedConfig.parser, style = resolvedConfig.style; !parser ? process.env.NODE_ENV !== "production" ? invariant(false, "Parser \"" + rawParser + "\" could not be resolved") : invariant(false) : void 0; !(style !== null && style !== void 0 ? style : style === rawStyle) ? process.env.NODE_ENV !== "production" ? invariant(false, "Style \"" + rawStyle + "\" could not be resolved") : invariant(false) : void 0; return resolvedConfig; }; var organizeImports = function organizeImports(unsortedCode, extension) { // this throw exceptions up to prettier var config = getAndCheckConfig(extension, path.resolve(__dirname, '..', '..')); var _config$parser = config.parser, parser = _config$parser === void 0 ? DEFAULT_PARSER : _config$parser, _config$style = config.style, style = _config$style === void 0 ? DEFAULT_STYLE : _config$style, rawConfig = config.config; var sortResult = sortImports(unsortedCode, parser, style, "dummy" + extension, rawConfig.options); return sortResult.code; }; var parsers = { typescript: /*#__PURE__*/_extends({}, parsers$2.typescript, { preprocess: function preprocess(text) { return organizeImports(text, '.ts'); } }), babel: /*#__PURE__*/_extends({}, parsers$1.babel, { preprocess: function preprocess(text) { return organizeImports(text, '.js'); } }) }; export { defaultConfig, parsers }; //# sourceMappingURL=prettier-plugin-sorted.esm.js.map