UNPKG

dts-jest

Version:

A preprocessor for Jest to snapshot test TypeScript declaration (.d.ts) files

44 lines (43 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.get_node_one_line_text = void 0; var get_node_one_line_text = function (node, source_file, ts) { var printer = ts.createPrinter({ removeComments: true }, { substituteNode: function (_hint, current_node) { return ts.transform(current_node, [escape_newlines_in_template_node]) .transformed[0]; }, }); return printer .printNode(ts.EmitHint.Unspecified, node, source_file) .replace(/\s*\n\s*/g, ' ') .replace(/;+$/, ''); function escape_newlines_in_template_node(context) { return function (node) { if (ts.isNoSubstitutionTemplateLiteral(node) && node.rawText) { return context.factory.createNoSubstitutionTemplateLiteral(node.text, escape_newlines(node.rawText)); } if (ts.isTemplateHead(node) && node.rawText) { return context.factory.createTemplateHead(node.text, escape_newlines(node.rawText), // @ts-expect-error: internal api node.templateFlags); } if (ts.isTemplateMiddle(node) && node.rawText) { return context.factory.createTemplateMiddle(node.text, escape_newlines(node.rawText), // @ts-expect-error: internal api node.templateFlags); } if (ts.isTemplateTail(node) && node.rawText) { return context.factory.createTemplateTail(node.text, escape_newlines(node.rawText), // @ts-expect-error: internal api node.templateFlags); } return node; }; } }; exports.get_node_one_line_text = get_node_one_line_text; function escape_newlines(raw_text) { // hack for TypeScript 3.6+ (ref: https://github.com/microsoft/TypeScript/pull/32844) return raw_text.replace(/\n/g, '\\n'); }