graphql-language-service-server
Version:
Server process backing the GraphQL Language Service
34 lines • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDocument = exports.DEFAULT_SUPPORTED_GRAPHQL_EXTENSIONS = exports.DEFAULT_SUPPORTED_EXTENSIONS = void 0;
const path_1 = require("path");
const graphql_language_service_utils_1 = require("graphql-language-service-utils");
const findGraphQLTags_1 = require("./findGraphQLTags");
exports.DEFAULT_SUPPORTED_EXTENSIONS = ['.js', '.ts', '.jsx', '.tsx'];
exports.DEFAULT_SUPPORTED_GRAPHQL_EXTENSIONS = [
'.graphql',
'.graphqls',
'.gql',
];
function parseDocument(text, uri, fileExtensions = exports.DEFAULT_SUPPORTED_EXTENSIONS, graphQLFileExtensions = exports.DEFAULT_SUPPORTED_GRAPHQL_EXTENSIONS) {
const ext = path_1.extname(uri);
if (fileExtensions.some(e => e === ext)) {
if (findGraphQLTags_1.DEFAULT_TAGS.some(t => t === text)) {
return [];
}
const templates = findGraphQLTags_1.findGraphQLTags(text, ext);
return templates.map(({ template, range }) => ({ query: template, range }));
}
if (graphQLFileExtensions.some(e => e === ext)) {
const query = text;
if (!query && query !== '') {
return [];
}
const lines = query.split('\n');
const range = new graphql_language_service_utils_1.Range(new graphql_language_service_utils_1.Position(0, 0), new graphql_language_service_utils_1.Position(lines.length - 1, lines[lines.length - 1].length - 1));
return [{ query, range }];
}
return [{ query: text, range: null }];
}
exports.parseDocument = parseDocument;
//# sourceMappingURL=parseDocument.js.map