UNPKG

ts-lit-plugin

Version:

Typescript plugin that adds type checking and code completion to lit-html

66 lines (65 loc) 2.32 kB
"use strict"; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.translateDefinition = void 0; var ts_module_1 = require("../../ts-module"); var translate_range_1 = require("./translate-range"); function translateDefinition(definition) { return { definitions: __spread((Array.isArray(definition.target) ? definition.target : [definition.target])).map(translateDefinitionInfo), textSpan: translate_range_1.translateRange(definition.fromRange) }; } exports.translateDefinition = translateDefinition; function translateDefinitionInfo(target) { var targetStart; var targetEnd; var targetFileName; var targetName; switch (target.kind) { case "range": targetStart = target.range.start; targetEnd = target.range.end; targetFileName = target.sourceFile.fileName; targetName = target.name || ""; break; case "node": { var node = target.node; targetStart = node.getStart(); targetEnd = node.getEnd(); targetFileName = node.getSourceFile().fileName; targetName = target.name || (ts_module_1.tsModule.ts.isIdentifier(node) ? node.getText() : ""); break; } } return { name: targetName, textSpan: { start: targetStart, length: targetEnd - targetStart }, fileName: targetFileName, containerName: targetFileName, kind: ts_module_1.tsModule.ts.ScriptElementKind.memberVariableElement, containerKind: ts_module_1.tsModule.ts.ScriptElementKind.functionElement }; }