UNPKG

3.59 kBSource Map (JSON)View Raw
1{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAIiC;AAGjC,iCAKiB;AACjB,uCAAuC;AAEvC,SAAsB,IAAI,CAAC,EAS1B;QARC,cAAI,EACJ,oBAAO;;;;;;oBAQD,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBAEtD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;wBAC/B,sBAAO;gCACL,UAAU,EAAE,uBAAe,CAAC,OAAO;6BACpC,EAAC;qBACH;oBAEmB,qBAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,QAAQ,CAAC,EAAC,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAC,CAAC,EAAjC,CAAiC,CAAC,CACzD,EAAA;;oBAFK,WAAW,GAAG,SAEnB;oBACG,UAAU,GAAoB,uBAAe,CAAC,OAAO,CAAC;oBAE1D,IACE,OAAO,CAAC,IAAI,CACV,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,uBAAgB,CAAC,QAAQ,EAAtD,CAAsD,CACjE,EACD;wBACA,UAAU,GAAG,uBAAe,CAAC,OAAO,CAAC;qBACtC;oBAED,sBAAO;4BACL,UAAU,YAAA;4BACV,WAAW,aAAA;yBACZ,EAAC;;;;CACH;AAnCD,oBAmCC;AAED,IAAM,QAAQ;IACZ,GAAC,uBAAgB,CAAC,QAAQ,IAAG,uBAAe,CAAC,OAAO;IACpD,GAAC,uBAAgB,CAAC,SAAS,IAAG,uBAAe,CAAC,OAAO;IACrD,GAAC,uBAAgB,CAAC,WAAW,IAAG,uBAAe,CAAC,MAAM;OACvD,CAAC;AAEF,SAAS,QAAQ,CAAC,EAWjB;QAVC,cAAI,EACJ,kBAAM,EACN,oBAAO;IASP,IAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;IACvC,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5E,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI;QACrB,CAAC,CAAC,sBAAW,CAAC,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,QAAA,EAAC,CAAC;QAC1C,CAAC,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC;IAEzB,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,OAAO;QACrB,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC;QACjC,IAAI,MAAA;QACJ,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;QACpD,UAAU,EAAE,GAAG,CAAC,IAAI;QACpB,QAAQ,EAAE,GAAG,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC","sourcesContent":["import {\n diff as diffSchemas,\n CriticalityLevel,\n Change,\n} from '@graphql-inspector/core';\nimport {GraphQLSchema} from 'graphql';\n\nimport {\n CheckConclusion,\n ActionResult,\n Annotation,\n AnnotationLevel,\n} from './types';\nimport {getLocation} from './location';\n\nexport async function diff({\n path,\n schemas,\n}: {\n path: string;\n schemas: {\n old: GraphQLSchema;\n new: GraphQLSchema;\n };\n}): Promise<ActionResult> {\n const changes = diffSchemas(schemas.old, schemas.new);\n\n if (!changes || !changes.length) {\n return {\n conclusion: CheckConclusion.Success,\n };\n }\n\n const annotations = await Promise.all(\n changes.map(change => annotate({path, change, schemas})),\n );\n let conclusion: CheckConclusion = CheckConclusion.Success;\n\n if (\n changes.some(\n change => change.criticality.level === CriticalityLevel.Breaking,\n )\n ) {\n conclusion = CheckConclusion.Failure;\n }\n\n return {\n conclusion,\n annotations,\n };\n}\n\nconst levelMap = {\n [CriticalityLevel.Breaking]: AnnotationLevel.Failure,\n [CriticalityLevel.Dangerous]: AnnotationLevel.Warning,\n [CriticalityLevel.NonBreaking]: AnnotationLevel.Notice,\n};\n\nfunction annotate({\n path,\n change,\n schemas,\n}: {\n path: string;\n change: Change;\n schemas: {\n old: GraphQLSchema;\n new: GraphQLSchema;\n };\n}): Annotation {\n const level = change.criticality.level;\n const schema = change.type.endsWith('_REMOVED') ? schemas.old : schemas.new;\n const loc = change.path\n ? getLocation({path: change.path, schema})\n : {line: 1, column: 1};\n\n return {\n title: change.message,\n annotation_level: levelMap[level],\n path,\n message: change.criticality.reason || change.message,\n start_line: loc.line,\n end_line: loc.line,\n };\n}\n"]}
\No newline at end of file