prettier-plugin-sorted
Version:
Sort your JavaScript and TypeScript imports with prettier with automatic alias support
88 lines (74 loc) • 3.19 kB
JavaScript
;
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