"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.csdlDirectives = exports.RequiresDirective = exports.ProvidesDirective = exports.ResolveDirective = exports.KeyDirective = exports.OwnerDirective = exports.GraphDirective = exports.ComposedGraphDirective = void 0;
const graphql_1 = require("graphql");
exports.ComposedGraphDirective = new graphql_1.GraphQLDirective({
    name: 'composedGraph',
    locations: [graphql_1.DirectiveLocation.SCHEMA],
    args: {
        version: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLInt),
        },
    },
});
exports.GraphDirective = new graphql_1.GraphQLDirective({
    name: 'graph',
    locations: [graphql_1.DirectiveLocation.SCHEMA],
    args: {
        name: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
        url: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
    },
});
exports.OwnerDirective = new graphql_1.GraphQLDirective({
    name: 'owner',
    locations: [graphql_1.DirectiveLocation.OBJECT],
    args: {
        graph: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
    },
});
exports.KeyDirective = new graphql_1.GraphQLDirective({
    name: 'key',
    locations: [graphql_1.DirectiveLocation.OBJECT],
    args: {
        fields: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
        graph: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
    },
});
exports.ResolveDirective = new graphql_1.GraphQLDirective({
    name: 'resolve',
    locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
    args: {
        graph: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
    },
});
exports.ProvidesDirective = new graphql_1.GraphQLDirective({
    name: 'provides',
    locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
    args: {
        fields: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
    },
});
exports.RequiresDirective = new graphql_1.GraphQLDirective({
    name: 'requires',
    locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
    args: {
        fields: {
            type: graphql_1.GraphQLNonNull(graphql_1.GraphQLString),
        },
    },
});
exports.csdlDirectives = [
    exports.ComposedGraphDirective,
    exports.GraphDirective,
    exports.OwnerDirective,
    exports.KeyDirective,
    exports.ResolveDirective,
    exports.ProvidesDirective,
    exports.RequiresDirective,
];
exports.default = exports.csdlDirectives;
//# sourceMappingURL=csdlDirectives.js.map