UNPKG

prettier-plugin-sorted

Version:

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

88 lines (74 loc) 3.19 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var path = _interopDefault(require('path')); var sortImports = _interopDefault(require('import-sort')); var importSortConfig = require('import-sort-config'); var parserBabel = require('prettier/parser-babel'); var parserTypescript = require('prettier/parser-typescript'); var invariant = _interopDefault(require('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 = importSortConfig.getConfig(extension, fileDirectory, defaultConfig); !resolvedConfig ? invariant(false, msg("No configuration found for file type " + extension)) : void 0; var rawParser = resolvedConfig.config.parser; var rawStyle = resolvedConfig.config.style; !rawParser ? invariant(false, "No parser defined for file type " + extension) : void 0; !rawStyle ? invariant(false, "No style defined for file type " + extension) : void 0; var parser = resolvedConfig.parser, style = resolvedConfig.style; !parser ? invariant(false, "Parser \"" + rawParser + "\" could not be resolved") : void 0; !(style !== null && style !== void 0 ? style : style === rawStyle) ? invariant(false, "Style \"" + rawStyle + "\" could not be resolved") : 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({}, parserTypescript.parsers.typescript, { preprocess: function preprocess(text) { return organizeImports(text, '.ts'); } }), babel: /*#__PURE__*/_extends({}, parserBabel.parsers.babel, { preprocess: function preprocess(text) { return organizeImports(text, '.js'); } }) }; exports.defaultConfig = defaultConfig; exports.parsers = parsers; //# sourceMappingURL=prettier-plugin-sorted.cjs.development.js.map