UNPKG

graphql-language-service-server

Version:
40 lines 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.svelteParser = void 0; const babel_1 = require("./babel"); const svelte2tsx_1 = require("svelte2tsx"); const source_map_js_1 = require("source-map-js"); const graphql_language_service_1 = require("graphql-language-service"); const svelteParser = (text, uri, logger) => { const svelteResult = (0, svelte2tsx_1.svelte2tsx)(text, { filename: uri, }); const consumer = new source_map_js_1.SourceMapConsumer({ ...svelteResult.map, version: String(svelteResult.map.version), }); const rangeMapper = range => { const start = consumer.originalPositionFor({ line: range.start.line, column: range.start.character, }); const end = consumer.originalPositionFor({ line: range.end.line, column: range.end.character, }); return new graphql_language_service_1.Range(new graphql_language_service_1.Position(start.line, start.column), new graphql_language_service_1.Position(end.line, end.column)); }; try { return { asts: [(0, babel_1.babelParser)(svelteResult.code, ['typescript'])], rangeMapper, }; } catch (error) { logger.info(`Could not parse the Svelte file at ${uri} to extract the graphql tags:`); logger.info(String(error)); return null; } }; exports.svelteParser = svelteParser; //# sourceMappingURL=svelte.js.map