graphql-language-service-server
Version:
Server process backing the GraphQL Language Service
40 lines • 1.51 kB
JavaScript
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
;