UNPKG

@aws-amplify/graphql-api-construct

Version:

AppSync GraphQL Api Construct using Amplify GraphQL Transformer.

46 lines 5.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertToResolverConfig = void 0; /** * Convert project conflict resolution config to transformer ResolverConfig object. * @param param0 input shape * @param param0.project the project level config * @param param0.models the model-specific override config * @returns the transformer representation */ const convertToResolverConfig = ({ project, models }) => ({ project: project && convertToSyncConfig(project), models: models && Object.fromEntries(Object.entries(models).map(([modelName, strategy]) => [modelName, convertToSyncConfig(strategy)])), }); exports.convertToResolverConfig = convertToResolverConfig; /** * Convert from external to internal representation of conflict resolution config. * @param strategy the strategy to convert * @returns the converted strategy */ const convertToSyncConfig = (strategy) => { switch (strategy.handlerType) { case 'OPTIMISTIC_CONCURRENCY': return { ConflictHandler: "OPTIMISTIC_CONCURRENCY" /* ConflictHandlerType.OPTIMISTIC */, ConflictDetection: strategy.detectionType, }; case 'AUTOMERGE': return { ConflictHandler: "AUTOMERGE" /* ConflictHandlerType.AUTOMERGE */, ConflictDetection: strategy.detectionType, }; case 'LAMBDA': return { ConflictHandler: "LAMBDA" /* ConflictHandlerType.LAMBDA */, ConflictDetection: strategy.detectionType, LambdaConflictHandler: { name: strategy.conflictHandler.functionName, lambdaArn: strategy.conflictHandler.functionArn, }, }; default: throw new Error(`Encountered unexpected handlerType: ${strategy.handlerType}`); } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmxpY3QtcmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9jb25mbGljdC1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBOzs7Ozs7R0FNRztBQUNJLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQXNCLEVBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLE9BQU8sRUFBRSxPQUFPLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQ2hELE1BQU0sRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDeEksQ0FBQyxDQUFDO0FBSFUsUUFBQSx1QkFBdUIsMkJBR2pDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFvQyxFQUFjLEVBQUU7SUFDL0UsUUFBUSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsS0FBSyx3QkFBd0I7WUFDM0IsT0FBTztnQkFDTCxlQUFlLCtEQUFnQztnQkFDL0MsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGFBQWE7YUFDMUMsQ0FBQztRQUNKLEtBQUssV0FBVztZQUNkLE9BQU87Z0JBQ0wsZUFBZSxpREFBK0I7Z0JBQzlDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxhQUFhO2FBQzFDLENBQUM7UUFDSixLQUFLLFFBQVE7WUFDWCxPQUFPO2dCQUNMLGVBQWUsMkNBQTRCO2dCQUMzQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsYUFBYTtnQkFDekMscUJBQXFCLEVBQUU7b0JBQ3JCLElBQUksRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVk7b0JBQzNDLFNBQVMsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVc7aUJBQ2hEO2FBQ0YsQ0FBQztRQUNKO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBd0MsUUFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvbHZlckNvbmZpZywgU3luY0NvbmZpZywgQ29uZmxpY3RIYW5kbGVyVHlwZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUnO1xuaW1wb3J0IHsgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3ksIENvbmZsaWN0UmVzb2x1dGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBDb252ZXJ0IHByb2plY3QgY29uZmxpY3QgcmVzb2x1dGlvbiBjb25maWcgdG8gdHJhbnNmb3JtZXIgUmVzb2x2ZXJDb25maWcgb2JqZWN0LlxuICogQHBhcmFtIHBhcmFtMCBpbnB1dCBzaGFwZVxuICogQHBhcmFtIHBhcmFtMC5wcm9qZWN0IHRoZSBwcm9qZWN0IGxldmVsIGNvbmZpZ1xuICogQHBhcmFtIHBhcmFtMC5tb2RlbHMgdGhlIG1vZGVsLXNwZWNpZmljIG92ZXJyaWRlIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHRyYW5zZm9ybWVyIHJlcHJlc2VudGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9SZXNvbHZlckNvbmZpZyA9ICh7IHByb2plY3QsIG1vZGVscyB9OiBDb25mbGljdFJlc29sdXRpb24pOiBSZXNvbHZlckNvbmZpZyA9PiAoe1xuICBwcm9qZWN0OiBwcm9qZWN0ICYmIGNvbnZlcnRUb1N5bmNDb25maWcocHJvamVjdCksXG4gIG1vZGVsczogbW9kZWxzICYmIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhtb2RlbHMpLm1hcCgoW21vZGVsTmFtZSwgc3RyYXRlZ3ldKSA9PiBbbW9kZWxOYW1lLCBjb252ZXJ0VG9TeW5jQ29uZmlnKHN0cmF0ZWd5KV0pKSxcbn0pO1xuXG4vKipcbiAqIENvbnZlcnQgZnJvbSBleHRlcm5hbCB0byBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBjb25mbGljdCByZXNvbHV0aW9uIGNvbmZpZy5cbiAqIEBwYXJhbSBzdHJhdGVneSB0aGUgc3RyYXRlZ3kgdG8gY29udmVydFxuICogQHJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJhdGVneVxuICovXG5jb25zdCBjb252ZXJ0VG9TeW5jQ29uZmlnID0gKHN0cmF0ZWd5OiBDb25mbGljdFJlc29sdXRpb25TdHJhdGVneSk6IFN5bmNDb25maWcgPT4ge1xuICBzd2l0Y2ggKHN0cmF0ZWd5LmhhbmRsZXJUeXBlKSB7XG4gICAgY2FzZSAnT1BUSU1JU1RJQ19DT05DVVJSRU5DWSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBDb25mbGljdEhhbmRsZXI6IENvbmZsaWN0SGFuZGxlclR5cGUuT1BUSU1JU1RJQyxcbiAgICAgICAgQ29uZmxpY3REZXRlY3Rpb246IHN0cmF0ZWd5LmRldGVjdGlvblR5cGUsXG4gICAgICB9O1xuICAgIGNhc2UgJ0FVVE9NRVJHRSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBDb25mbGljdEhhbmRsZXI6IENvbmZsaWN0SGFuZGxlclR5cGUuQVVUT01FUkdFLFxuICAgICAgICBDb25mbGljdERldGVjdGlvbjogc3RyYXRlZ3kuZGV0ZWN0aW9uVHlwZSxcbiAgICAgIH07XG4gICAgY2FzZSAnTEFNQkRBJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIENvbmZsaWN0SGFuZGxlcjogQ29uZmxpY3RIYW5kbGVyVHlwZS5MQU1CREEsXG4gICAgICAgIENvbmZsaWN0RGV0ZWN0aW9uOiBzdHJhdGVneS5kZXRlY3Rpb25UeXBlLFxuICAgICAgICBMYW1iZGFDb25mbGljdEhhbmRsZXI6IHtcbiAgICAgICAgICBuYW1lOiBzdHJhdGVneS5jb25mbGljdEhhbmRsZXIuZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIGxhbWJkYUFybjogc3RyYXRlZ3kuY29uZmxpY3RIYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbmNvdW50ZXJlZCB1bmV4cGVjdGVkIGhhbmRsZXJUeXBlOiAkeyhzdHJhdGVneSBhcyBhbnkpLmhhbmRsZXJUeXBlfWApO1xuICB9XG59O1xuIl19