Your IP : 216.73.217.13


Current Path : /home/deltalab/PMS/ims-connector/node_modules/graphql-compose/lib/utils/
Upload File :
Current File : //home/deltalab/PMS/ims-connector/node_modules/graphql-compose/lib/utils/getFromSchema.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDirectivesFromSchema = exports.getTypesFromSchema = void 0;
const SchemaComposer_1 = require("../SchemaComposer");
const ObjectTypeComposer_1 = require("../ObjectTypeComposer");
const InputTypeComposer_1 = require("../InputTypeComposer");
const InterfaceTypeComposer_1 = require("../InterfaceTypeComposer");
const UnionTypeComposer_1 = require("../UnionTypeComposer");
function getTypesFromSchema(sc, filter) {
    const { exclude = [], include, omitDirectiveDefinitions } = filter || {};
    const rootTypes = new Set();
    if (Array.isArray(include) && include.length) {
        include.forEach((s) => {
            if (s && typeof s === 'string') {
                rootTypes.add(sc.getAnyTC(s));
            }
        });
    }
    else {
        if (sc.has('Query'))
            rootTypes.add(sc.getOTC('Query'));
        if (sc.has('Mutation'))
            rootTypes.add(sc.getOTC('Mutation'));
        if (sc.has('Subscription'))
            rootTypes.add(sc.getOTC('Subscription'));
    }
    if (!omitDirectiveDefinitions) {
        const directives = sc._directives.filter((d) => !SchemaComposer_1.BUILT_IN_DIRECTIVES.includes(d));
        directives.forEach((d) => {
            if (!Array.isArray(d.args))
                return;
            d.args.forEach((ac) => {
                const tc = sc.getAnyTC(ac.type);
                if (!exclude.includes(tc.getTypeName())) {
                    rootTypes.add(tc);
                }
            });
        });
    }
    const typeSet = new Set();
    rootTypes.forEach((tc) => {
        if (tc instanceof ObjectTypeComposer_1.ObjectTypeComposer ||
            tc instanceof InputTypeComposer_1.InputTypeComposer ||
            tc instanceof InterfaceTypeComposer_1.InterfaceTypeComposer ||
            tc instanceof UnionTypeComposer_1.UnionTypeComposer) {
            typeSet.add(tc);
            tc.getNestedTCs({ exclude }, typeSet);
        }
        else {
            typeSet.add(tc);
        }
    });
    return typeSet;
}
exports.getTypesFromSchema = getTypesFromSchema;
function getDirectivesFromSchema(sc) {
    return sc._directives.filter((d) => !SchemaComposer_1.BUILT_IN_DIRECTIVES.includes(d));
}
exports.getDirectivesFromSchema = getDirectivesFromSchema;
//# sourceMappingURL=getFromSchema.js.map