@aws-amplify/graphql-api-construct
Version:
AppSync GraphQL Api Construct using Amplify GraphQL Transformer.
46 lines • 5.84 kB
JavaScript
;
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