123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- "use strict";
- exports.__esModule = true;
- var constants_1 = require("../constants");
- var anchor_1 = require("../factories/anchor");
- var comment_1 = require("../factories/comment");
- var content_1 = require("../factories/content");
- var tag_1 = require("../factories/tag");
- function transformContent(node, context, isNotMiddleComment) {
- if (isNotMiddleComment === void 0) { isNotMiddleComment = function () { return false; }; }
- var cstNode = node.cstNode;
- var middleComments = [];
- var firstTagOrAnchorRange = null;
- var tag = null;
- var anchor = null;
- for (var _i = 0, _a = cstNode.props; _i < _a.length; _i++) {
- var propRange = _a[_i];
- var leadingChar = context.text[propRange.origStart];
- switch (leadingChar) {
- case constants_1.PropLeadingCharacter.Tag:
- firstTagOrAnchorRange = firstTagOrAnchorRange || propRange;
- tag = tag_1.createTag(context.transformRange(propRange), node.tag);
- break;
- case constants_1.PropLeadingCharacter.Anchor:
- firstTagOrAnchorRange = firstTagOrAnchorRange || propRange;
- anchor = anchor_1.createAnchor(context.transformRange(propRange), cstNode.anchor);
- break;
- case constants_1.PropLeadingCharacter.Comment: {
- var comment = comment_1.createComment(context.transformRange(propRange), context.text.slice(propRange.origStart + 1, propRange.origEnd));
- context.comments.push(comment);
- if (!isNotMiddleComment(comment) &&
- firstTagOrAnchorRange &&
- firstTagOrAnchorRange.origEnd <= propRange.origStart &&
- propRange.origEnd <= cstNode.valueRange.origStart) {
- middleComments.push(comment);
- }
- break;
- }
- // istanbul ignore next
- default:
- throw new Error("Unexpected leading character " + JSON.stringify(leadingChar));
- }
- }
- return content_1.createContent(tag, anchor, middleComments);
- }
- exports.transformContent = transformContent;
|