@trivago/prettier-plugin-sort-imports
Version:
A prettier plugins to sort imports in provided RegEx order
44 lines (43 loc) • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var get_all_comments_from_nodes_1 = require("../get-all-comments-from-nodes");
var get_import_nodes_1 = require("../get-import-nodes");
var get_sorted_nodes_1 = require("../get-sorted-nodes");
var getSortedImportNodes = function (code, options) {
var importNodes = (0, get_import_nodes_1.getImportNodes)(code, options);
return (0, get_sorted_nodes_1.getSortedNodes)(importNodes, {
importOrder: [],
importOrderCaseInsensitive: false,
importOrderSeparation: false,
importOrderGroupNamespaceSpecifiers: false,
importOrderSortSpecifiers: false,
importOrderSideEffects: true,
});
};
var getComments = function (commentNodes) {
return commentNodes.map(function (node) { return node.value; });
};
test('it returns empty array when there is no comment', function () {
var result = getSortedImportNodes("import z from 'z';\n ");
var commentNodes = (0, get_all_comments_from_nodes_1.getAllCommentsFromNodes)(result);
var comments = getComments(commentNodes);
expect(comments).toEqual([]);
});
test('it returns single comment of a node', function () {
var result = getSortedImportNodes("// first comment\nimport z from 'z';\n");
var commentNodes = (0, get_all_comments_from_nodes_1.getAllCommentsFromNodes)(result);
var comments = getComments(commentNodes);
expect(comments).toEqual([' first comment']);
});
test('it returns all comments for a node', function () {
var result = getSortedImportNodes("// first comment\n// second comment\nimport z from 'z';\n");
var commentNodes = (0, get_all_comments_from_nodes_1.getAllCommentsFromNodes)(result);
var comments = getComments(commentNodes);
expect(comments).toEqual([' first comment', ' second comment']);
});
test('it returns comment block for a node', function () {
var result = getSortedImportNodes("\n/**\n * some block\n */\nimport z from 'z';\n");
var commentNodes = (0, get_all_comments_from_nodes_1.getAllCommentsFromNodes)(result);
var comments = getComments(commentNodes);
expect(comments).toEqual(['*\n * some block\n ']);
});