UNPKG

@graphql-inspector/action

Version:

GraphQL Inspector functionality for GitHub Actions

183 lines (182 loc) • 8.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enumValueRemovedFromMeta = enumValueRemovedFromMeta; exports.enumValueRemoved = enumValueRemoved; exports.enumValueAddedFromMeta = enumValueAddedFromMeta; exports.enumValueAdded = enumValueAdded; exports.enumValueDescriptionChangedFromMeta = enumValueDescriptionChangedFromMeta; exports.enumValueDescriptionChanged = enumValueDescriptionChanged; exports.enumValueDeprecationReasonChangedFromMeta = enumValueDeprecationReasonChangedFromMeta; exports.enumValueDeprecationReasonChanged = enumValueDeprecationReasonChanged; exports.enumValueDeprecationReasonAddedFromMeta = enumValueDeprecationReasonAddedFromMeta; exports.enumValueDeprecationReasonAdded = enumValueDeprecationReasonAdded; exports.enumValueDeprecationReasonRemovedFromMeta = enumValueDeprecationReasonRemovedFromMeta; exports.enumValueDeprecationReasonRemoved = enumValueDeprecationReasonRemoved; const is_deprecated_js_1 = require("../../utils/is-deprecated.js"); const string_js_1 = require("../../utils/string.js"); const change_js_1 = require("./change.js"); function buildEnumValueRemovedMessage(args, config) { const value = (0, string_js_1.fmt)(args.removedEnumValueName, config); const enumName = (0, string_js_1.fmt)(args.enumName, config); return `Enum value ${value} ${args.isEnumValueDeprecated ? '(deprecated) ' : ''}was removed from enum ${enumName}`; } const enumValueRemovedCriticalityBreakingReason = `Removing an enum value will cause existing queries that use this enum value to error.`; function enumValueRemovedFromMeta(args, config) { return { type: change_js_1.ChangeType.EnumValueRemoved, criticality: { level: change_js_1.CriticalityLevel.Breaking, reason: enumValueRemovedCriticalityBreakingReason, }, message: buildEnumValueRemovedMessage(args.meta, config), meta: args.meta, path: [args.meta.enumName, args.meta.removedEnumValueName].join('.'), }; } function enumValueRemoved(oldEnum, value, config) { return enumValueRemovedFromMeta({ type: change_js_1.ChangeType.EnumValueRemoved, meta: { enumName: oldEnum.name, removedEnumValueName: value.name, isEnumValueDeprecated: (0, is_deprecated_js_1.isDeprecated)(value), }, }, config); } function buildEnumValueAddedMessage(args, config) { const value = (0, string_js_1.fmt)(args.meta.addedEnumValueName, config); const enumName = (0, string_js_1.fmt)(args.meta.enumName, config); return `Enum value ${value} was added to enum ${enumName}`; } const enumValueAddedCriticalityDangerousReason = `Adding an enum value may break existing clients that were not programming defensively against an added case when querying an enum.`; function enumValueAddedFromMeta(args, config) { return { type: change_js_1.ChangeType.EnumValueAdded, criticality: { level: change_js_1.CriticalityLevel.Dangerous, reason: enumValueAddedCriticalityDangerousReason, }, message: buildEnumValueAddedMessage(args, config), meta: args.meta, path: [args.meta.enumName, args.meta.addedEnumValueName].join('.'), }; } function enumValueAdded(newEnum, value, config) { return enumValueAddedFromMeta({ type: change_js_1.ChangeType.EnumValueAdded, meta: { enumName: newEnum.name, addedEnumValueName: value.name, }, }, config); } function buildEnumValueDescriptionChangedMessage(args, config) { const value = (0, string_js_1.fmt)(`${args.enumName}.${args.enumValueName}`, config); const oldDesc = (0, string_js_1.fmt)(args.oldEnumValueDescription ?? 'undefined', config); const newDesc = (0, string_js_1.fmt)(args.newEnumValueDescription ?? 'undefined', config); if (args.oldEnumValueDescription === null) { return `Description ${newDesc} was added to enum value ${value}`; } return `Description for enum value ${value} changed from ${oldDesc} to ${newDesc}`; } function enumValueDescriptionChangedFromMeta(args, config) { return { criticality: { level: change_js_1.CriticalityLevel.NonBreaking, }, type: change_js_1.ChangeType.EnumValueDescriptionChanged, message: buildEnumValueDescriptionChangedMessage(args.meta, config), path: [args.meta.enumName, args.meta.enumValueName].join('.'), meta: args.meta, }; } function enumValueDescriptionChanged(newEnum, oldValue, newValue, config) { return enumValueDescriptionChangedFromMeta({ type: change_js_1.ChangeType.EnumValueDescriptionChanged, meta: { enumName: newEnum.name, enumValueName: oldValue.name, oldEnumValueDescription: oldValue.description ?? null, newEnumValueDescription: newValue.description ?? null, }, }, config); } function buildEnumValueDeprecationChangedMessage(args, config) { const value = (0, string_js_1.fmt)(`${args.enumName}.${args.enumValueName}`, config); const oldReason = (0, string_js_1.fmt)(args.oldEnumValueDeprecationReason, config); const newReason = (0, string_js_1.fmt)(args.newEnumValueDeprecationReason, config); return `Enum value ${value} deprecation reason changed from ${oldReason} to ${newReason}`; } function enumValueDeprecationReasonChangedFromMeta(args, config) { return { criticality: { level: change_js_1.CriticalityLevel.NonBreaking, }, type: change_js_1.ChangeType.EnumValueDeprecationReasonChanged, message: buildEnumValueDeprecationChangedMessage(args.meta, config), path: [args.meta.enumName, args.meta.enumValueName].join('.'), meta: args.meta, }; } function enumValueDeprecationReasonChanged(newEnum, oldValue, newValue, config) { return enumValueDeprecationReasonChangedFromMeta({ type: change_js_1.ChangeType.EnumValueDeprecationReasonChanged, meta: { enumName: newEnum.name, enumValueName: oldValue.name, oldEnumValueDeprecationReason: oldValue.deprecationReason ?? '', newEnumValueDeprecationReason: newValue.deprecationReason ?? '', }, }, config); } function buildEnumValueDeprecationReasonAddedMessage(args, config) { const value = (0, string_js_1.fmt)(`${args.enumName}.${args.enumValueName}`, config); const reason = (0, string_js_1.fmt)(args.addedValueDeprecationReason, config); return `Enum value ${value} was deprecated with reason ${reason}`; } function enumValueDeprecationReasonAddedFromMeta(args, config) { return { criticality: { level: change_js_1.CriticalityLevel.NonBreaking, }, type: change_js_1.ChangeType.EnumValueDeprecationReasonAdded, message: buildEnumValueDeprecationReasonAddedMessage(args.meta, config), path: [args.meta.enumName, args.meta.enumValueName].join('.'), meta: args.meta, }; } function enumValueDeprecationReasonAdded(newEnum, oldValue, newValue, config) { return enumValueDeprecationReasonAddedFromMeta({ type: change_js_1.ChangeType.EnumValueDeprecationReasonAdded, meta: { enumName: newEnum.name, enumValueName: oldValue.name, addedValueDeprecationReason: newValue.deprecationReason ?? '', }, }, config); } function buildEnumValueDeprecationReasonRemovedMessage(args, config) { const value = (0, string_js_1.fmt)(`${args.enumName}.${args.enumValueName}`, config); return `Deprecation reason was removed from enum value ${value}`; } function enumValueDeprecationReasonRemovedFromMeta(args, config) { return { criticality: { level: change_js_1.CriticalityLevel.NonBreaking, }, type: change_js_1.ChangeType.EnumValueDeprecationReasonRemoved, message: buildEnumValueDeprecationReasonRemovedMessage(args.meta, config), path: [args.meta.enumName, args.meta.enumValueName].join('.'), meta: args.meta, }; } function enumValueDeprecationReasonRemoved(newEnum, oldValue, _newValue, config) { return enumValueDeprecationReasonRemovedFromMeta({ type: change_js_1.ChangeType.EnumValueDeprecationReasonRemoved, meta: { enumName: newEnum.name, enumValueName: oldValue.name, removedEnumValueDeprecationReason: oldValue.deprecationReason ?? '', }, }, config); }