"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var change_1 = require("./change");
function objectTypeInterfaceAdded(iface, type) {
    return {
        criticality: {
            level: change_1.CriticalityLevel.Dangerous,
            reason: 'Adding an interface to an object type may break existing clients that were not programming defensively against a new possible type.',
        },
        message: "'" + type.name + "' object implements '" + iface.name + "' interface",
        path: type.name,
    };
}
exports.objectTypeInterfaceAdded = objectTypeInterfaceAdded;
function objectTypeInterfaceRemoved(iface, type) {
    return {
        criticality: {
            level: change_1.CriticalityLevel.Breaking,
            reason: 'Removing an interface from an object type can cause existing queries that use this in a fragment spread to error.',
        },
        message: "'" + type.name + "' object type no longer implements '" + iface.name + "' interface",
        path: type.name,
    };
}
exports.objectTypeInterfaceRemoved = objectTypeInterfaceRemoved;
//# sourceMappingURL=object.js.map