UNPKG

xstate-tsserver

Version:

XState tsserver plugin for easier navigation in state machines

77 lines 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createNodeDefinition = createNodeDefinition; exports.createNodeDefinitionWithTextSpan = createNodeDefinitionWithTextSpan; exports.createNodeDefinitionWithDisplayParts = createNodeDefinitionWithDisplayParts; exports.createReferenceDefinition = createReferenceDefinition; exports.getTransitionType = getTransitionType; const tsserverlibrary_1 = require("typescript/lib/tsserverlibrary"); function createNodeDefinition(fileName, node) { return { name: node.text, textSpan: { start: node.startIndex, length: node.endIndex - node.startIndex, }, fileName, // TODO: Check if these are correct and what else should be added containerName: "", containerKind: tsserverlibrary_1.ScriptElementKind.unknown, kind: tsserverlibrary_1.ScriptElementKind.string, }; } function createNodeDefinitionWithTextSpan(fileName, newNode, originalNode) { return { definitions: [createNodeDefinition(fileName, newNode)], textSpan: { start: originalNode.startIndex, length: originalNode.endIndex - originalNode.startIndex, }, }; } function createNodeDefinitionWithDisplayParts(fileName, newNode) { return { ...createNodeDefinition(fileName, newNode), displayParts: [ { kind: tsserverlibrary_1.ScriptElementKind.string, text: newNode.text, }, ], }; } function createReferenceDefinition(fileName, node, extraOpts) { return { fileName, textSpan: { start: node.startIndex, length: node.endIndex - node.startIndex, }, isWriteAccess: true, isDefinition: false, ...extraOpts, }; } /** * Returns the transition type and target string */ function getTransitionType(transition) { if (!transition) return { type: "unknown", target: "" }; if (transition.startsWith("#")) return { type: "absolute", target: transition.slice(1), }; if (transition.startsWith(".")) { return { type: "relativeChildren", target: transition.slice(1), }; } return { type: "relative", target: transition, }; } //# sourceMappingURL=utils.js.map