@graphql-eslint/eslint-plugin
Version:
GraphQL plugin for ESLint
87 lines (86 loc) • 3.52 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var graphql_config_exports = {};
__export(graphql_config_exports, {
loadGraphQLConfig: () => loadGraphQLConfig,
loadOnDiskGraphQLConfig: () => loadOnDiskGraphQLConfig
});
module.exports = __toCommonJS(graphql_config_exports);
var import_path = require("path");
var import_code_file_loader = require("@graphql-tools/code-file-loader");
var import_debug = __toESM(require("debug"));
var import_graphql_config = require("graphql-config");
const debug = (0, import_debug.default)("graphql-eslint:graphql-config");
let graphQLConfig;
function loadOnDiskGraphQLConfig(filePath) {
return (0, import_graphql_config.loadConfigSync)({
// load config relative to the file being linted
rootDir: (0, import_path.dirname)(filePath),
throwOnEmpty: false,
throwOnMissing: false,
extensions: [codeFileLoaderExtension]
});
}
function loadGraphQLConfig(options) {
if (graphQLConfig) {
return graphQLConfig;
}
const onDiskConfig = !options.skipGraphQLConfig && loadOnDiskGraphQLConfig(options.filePath);
debug("options.skipGraphQLConfig: %o", options.skipGraphQLConfig);
if (onDiskConfig) {
debug("Graphql-config path %o", onDiskConfig.filepath);
}
const configOptions = options.projects ? { projects: options.projects } : {
schema: options.schema || "",
// if `schema` is `undefined` will throw error `Project 'default' not found`
documents: options.documents,
extensions: options.extensions,
include: options.include,
exclude: options.exclude
};
graphQLConfig = onDiskConfig || new import_graphql_config.GraphQLConfig(
{
config: configOptions,
filepath: "virtual-config"
},
[codeFileLoaderExtension]
);
return graphQLConfig;
}
const codeFileLoaderExtension = (api) => {
const { schema, documents } = api.loaders;
schema.register(new import_code_file_loader.CodeFileLoader());
documents.register(new import_code_file_loader.CodeFileLoader());
return { name: "graphql-eslint-loaders" };
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
loadGraphQLConfig,
loadOnDiskGraphQLConfig
});