UNPKG

@graphql-eslint/eslint-plugin

Version:
52 lines (49 loc) 2.09 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _nodepath = require('node:path'); var _nodepath2 = _interopRequireDefault(_nodepath); var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _fastglob = require('fast-glob'); var _fastglob2 = _interopRequireDefault(_fastglob); var _cachejs = require('./cache.js'); const debug = _debug2.default.call(void 0, "graphql-eslint:operations"); const operationsCache = new (0, _cachejs.ModuleCache)(); const handleVirtualPath = (documents) => { const filepathMap = /* @__PURE__ */ Object.create(null); return documents.map((source) => { const location = source.location; if ([".gql", ".graphql"].some((extension) => location.endsWith(extension))) { return { ...source, // When using glob pattern e.g. `**/*.gql` location contains always forward slashes even on // Windows location: _nodepath2.default.resolve(location) }; } filepathMap[location] ??= -1; const index = filepathMap[location] += 1; return { ...source, location: _nodepath2.default.resolve(location, `${index}_document.graphql`) }; }); }; const getDocuments = (project) => { const documentsKey = project.documents; if (!documentsKey) { return []; } let siblings = operationsCache.get(documentsKey); if (!siblings) { debug("Loading operations from %o", project.documents); const documents = project.loadDocumentsSync(project.documents, { skipGraphQLImport: true, pluckConfig: project.extensions.pluckConfig }); if (debug.enabled) { debug("Loaded %d operations", documents.length); const operationsPaths = _fastglob2.default.sync(project.documents, { absolute: true }); debug("Operations pointers %O", operationsPaths); } siblings = handleVirtualPath(documents); operationsCache.set(documentsKey, siblings); } return siblings; }; exports.getDocuments = getDocuments;