moveAllCommentsToSiblings()

in legacy/javascript/src/refactor.js [221:256]


    moveAllCommentsToSiblings(node, parent) {
        if ('body' in parent && Array.isArray(parent.body)) {
            var nodeIndex = parent.body.indexOf(node);
            var previousSiblingIndex = nodeIndex !== 0 ? nodeIndex - 1 : null;
            var nextSiblingIndex = nodeIndex !== parent.body.length - 1 ? nodeIndex + 1 : null;

            let leadingComments, trailingComments;
            [leadingComments, trailingComments] = this.collateCommentsByPosition(node);

            if (previousSiblingIndex != null) {
                if (nodeIndex === parent.body.length - 1) {
                    let consolidatedComments = leadingComments.map(this.flipCommentPosition);
                    consolidatedComments = consolidatedComments.concat(trailingComments);

                    this.attachCommentsAtEnd(parent.body[previousSiblingIndex], consolidatedComments);
                } else {
                    let consolidatedComments = leadingComments.map(this.flipCommentPosition);

                    this.attachCommentsAtEnd(parent.body[previousSiblingIndex], consolidatedComments);
                }
            }

            if (nextSiblingIndex != null) {
                if (nodeIndex === 0) {
                    let consolidatedComments = leadingComments;
                    consolidatedComments = consolidatedComments.concat(trailingComments.map(this.flipCommentPosition));

                    this.attachCommentsAtBeginning(parent.body[nextSiblingIndex], consolidatedComments);
                } else {
                    let consolidatedComments = trailingComments.map(this.flipCommentPosition);

                    this.attachCommentsAtBeginning(parent.body[nextSiblingIndex], consolidatedComments);
                }
            }
        }
    }