graphql-language-service-server
Version:
Server process backing the GraphQL Language Service
27 lines • 1.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDocument = void 0;
const node_path_1 = require("node:path");
const graphql_language_service_1 = require("graphql-language-service");
const findGraphQLTags_1 = require("./findGraphQLTags");
const constants_1 = require("./constants");
const Logger_1 = require("./Logger");
async function parseDocument(text, uri, fileExtensions = constants_1.DEFAULT_SUPPORTED_EXTENSIONS, graphQLFileExtensions = constants_1.DEFAULT_SUPPORTED_GRAPHQL_EXTENSIONS, logger = new Logger_1.NoopLogger()) {
const ext = (0, node_path_1.extname)(uri);
if (!text || text === '') {
return [];
}
if (fileExtensions.includes(ext)) {
const templates = await (0, findGraphQLTags_1.findGraphQLTags)(text, ext, uri, logger);
return templates.map(({ template, range }) => ({ query: template, range }));
}
if (graphQLFileExtensions.includes(ext)) {
const query = text;
const lines = query.split('\n');
const range = new graphql_language_service_1.Range(new graphql_language_service_1.Position(0, 0), new graphql_language_service_1.Position(lines.length - 1, lines.at(-1).length - 1));
return [{ query, range }];
}
return [];
}
exports.parseDocument = parseDocument;
//# sourceMappingURL=parseDocument.js.map
;