dts-jest
Version:
A preprocessor for Jest to snapshot test TypeScript declaration (.d.ts) files
51 lines (50 loc) • 1.87 kB
JavaScript
;
exports.__esModule = true;
var create_group_expression_1 = require("./create-group-expression");
exports.apply_grouping = function (line_contents, groups) {
var grouped_line_contents = line_contents.slice();
if (groups.length === 0) {
return grouped_line_contents;
}
var scopes = [];
if (groups.length === 1) {
var group = groups[0];
scopes.push({
group: group,
start_line: group.line,
end_line: line_contents.length - 1
});
}
else {
var last_group = groups[0];
for (var i = 1; i < groups.length; i++) {
var group = groups[i];
scopes.push({
group: last_group,
start_line: last_group.line,
end_line: group.line
});
last_group = group;
}
scopes.push({
group: last_group,
start_line: last_group.line,
end_line: line_contents.length - 1
});
}
scopes
.map(function (scope) {
var _a = (create_group_expression_1.create_group_expression(scope.group, '\n') + ";").split('\n'), group_expression_left = _a[0], group_expression_right = _a[1];
grouped_line_contents[scope.start_line] =
group_expression_left + grouped_line_contents[scope.start_line];
return { scope: scope, group_expression_right: group_expression_right };
})
.forEach(function (_a, index) {
var scope = _a.scope, group_expression_right = _a.group_expression_right;
grouped_line_contents[scope.end_line] =
index === scopes.length - 1
? grouped_line_contents[scope.end_line] + group_expression_right
: group_expression_right + grouped_line_contents[scope.end_line];
});
return grouped_line_contents;
};