UNPKG

lit-analyzer

Version:

CLI that type checks bindings in lit-html templates

59 lines (58 loc) 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.intersects = exports.sfRangeToDocumentRange = exports.documentRangeToSFRange = exports.rangeFromNode = exports.rangeFromHtmlNode = exports.rangeFromHtmlNodeAttr = exports.makeDocumentRange = exports.makeSourceFileRange = void 0; function makeSourceFileRange(range) { return range; } exports.makeSourceFileRange = makeSourceFileRange; function makeDocumentRange(range) { return range; } exports.makeDocumentRange = makeDocumentRange; function rangeFromHtmlNodeAttr(htmlAttr) { return documentRangeToSFRange(htmlAttr.document, htmlAttr.location.name); //return { document: htmlAttr.document, ...htmlAttr.location.name }; } exports.rangeFromHtmlNodeAttr = rangeFromHtmlNodeAttr; function rangeFromHtmlNode(htmlNode) { return documentRangeToSFRange(htmlNode.document, htmlNode.location.name); //return { document: htmlNode.document, ...htmlNode.location.name }; } exports.rangeFromHtmlNode = rangeFromHtmlNode; function rangeFromNode(node) { //return { file: node.getSourceFile(), start: node.getStart(), end: node.getEnd() }; return makeSourceFileRange({ start: node.getStart(), end: node.getEnd() }); } exports.rangeFromNode = rangeFromNode; function documentRangeToSFRange(document, range) { return makeSourceFileRange({ start: document.virtualDocument.documentOffsetToSFPosition(range.start), end: document.virtualDocument.documentOffsetToSFPosition(range.end) }); } exports.documentRangeToSFRange = documentRangeToSFRange; function sfRangeToDocumentRange(document, range) { return makeDocumentRange({ start: document.virtualDocument.sfPositionToDocumentOffset(range.start), end: document.virtualDocument.sfPositionToDocumentOffset(range.end) }); } exports.sfRangeToDocumentRange = sfRangeToDocumentRange; /** * Returns if a position is within start and end. * @param position * @param start * @param end */ //export function intersects(position: SourceFilePosition | SourceFileRange, { start, end }: SourceFileRange): boolean; //export function intersects(position: DocumentOffset | DocumentRange, { start, end }: DocumentRange): boolean; function intersects(position, _a) { var start = _a.start, end = _a.end; if (typeof position === "number") { return start <= position && position <= end; } else { return start <= position.start && position.end <= end; } } exports.intersects = intersects;