{"version":3,"file":"CombineSchema.mjs","sources":["../../src/CombineSchema.ts"],"sourcesContent":["import { brand } from './util';\nconst _COMBINED_SCHEMA_LIMIT = 50;\nconst CombinedSchemaBrandName = 'CombinedSchema';\nexport const combinedSchemaBrand = brand(CombinedSchemaBrandName);\n/**\n * The interface for merging up to 50 schemas into a single API.\n * @param schemas The schemas to combine into a single API\n * @returns An API and data model definition to be deployed with Amplify (Gen 2) experience (`processSchema(...)`)\n * or with the Amplify Data CDK construct (`@aws-amplify/data-construct`)\n */\nexport function combine(schemas) {\n    return internalCombine(schemas);\n}\nfunction internalCombine(schemas) {\n    validateDuplicateTypeNames(schemas);\n    const combined = {\n        ...combinedSchemaBrand,\n        schemas: schemas,\n    };\n    for (const schema of combined.schemas) {\n        schema.context = combined;\n    }\n    return combined;\n}\nfunction validateDuplicateTypeNames(schemas) {\n    const allSchemaKeys = schemas.flatMap((s) => Object.keys(s.data.types));\n    const keySet = new Set();\n    const duplicateKeySet = new Set();\n    allSchemaKeys.forEach((key) => {\n        if (keySet.has(key)) {\n            duplicateKeySet.add(key);\n        }\n        else {\n            keySet.add(key);\n        }\n    });\n    if (duplicateKeySet.size > 0) {\n        throw new Error(`The schemas you are attempting to combine have a name collision. Please remove or rename ${Array.from(duplicateKeySet).join(', ')}.`);\n    }\n}\n"],"names":[],"mappings":";;AAEA,MAAM,uBAAuB,GAAG,gBAAgB;AACpC,MAAC,mBAAmB,GAAG,KAAK,CAAC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,OAAO,CAAC,OAAO,EAAE;AACjC,IAAI,OAAO,eAAe,CAAC,OAAO,CAAC;AACnC;AACA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,IAAI,0BAA0B,CAAC,OAAO,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,GAAG,mBAAmB;AAC9B,QAAQ,OAAO,EAAE,OAAO;AACxB,KAAK;AACL,IAAI,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC3C,QAAQ,MAAM,CAAC,OAAO,GAAG,QAAQ;AACjC,IAAI;AACJ,IAAI,OAAO,QAAQ;AACnB;AACA,SAAS,0BAA0B,CAAC,OAAO,EAAE;AAC7C,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3E,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE;AAC5B,IAAI,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE;AACrC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACnC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC7B,YAAY,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3B,QAAQ;AACR,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE;AAClC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,yFAAyF,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9J,IAAI;AACJ;;;;"}