UNPKG

@aws-amplify/datastore

Version:

AppSyncLocal support for aws-amplify

1 lines 2.94 kB
{"version":3,"file":"merger.mjs","sources":["../../../src/sync/merger.ts"],"sourcesContent":["import { OpType, } from '../types';\nimport { getIdentifierValue } from './utils';\n// https://github.com/aws-amplify/amplify-js/blob/datastore-docs/packages/datastore/docs/sync-engine.md#merger\nclass ModelMerger {\n constructor(outbox, ownSymbol) {\n this.outbox = outbox;\n this.ownSymbol = ownSymbol;\n }\n /**\n *\n * @param storage Storage adapter that contains the data.\n * @param model The model from an outbox mutation.\n * @returns The type of operation (INSERT/UPDATE/DELETE)\n */\n async merge(storage, model, modelDefinition) {\n let result;\n const mutationsForModel = await this.outbox.getForModel(storage, model, modelDefinition);\n const isDelete = model._deleted;\n if (mutationsForModel.length === 0) {\n if (isDelete) {\n result = OpType.DELETE;\n await storage.delete(model, undefined, this.ownSymbol);\n }\n else {\n [[, result]] = await storage.save(model, undefined, this.ownSymbol);\n }\n }\n return result;\n }\n async mergePage(storage, modelConstructor, items, modelDefinition) {\n const itemsMap = new Map();\n for (const item of items) {\n // merge items by model id. Latest record for a given id remains.\n const modelId = getIdentifierValue(modelDefinition, item);\n itemsMap.set(modelId, item);\n }\n const page = [...itemsMap.values()];\n return storage.batchSave(modelConstructor, page, this.ownSymbol);\n }\n}\nexport { ModelMerger };\n"],"names":[],"mappings":";;;AAEA;AACA,MAAM,WAAW,CAAC;AAClB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;AACjD,QAAQ,IAAI,MAAM;AAClB,QAAQ,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC;AAChG,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AACvC,QAAQ,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,GAAG,MAAM,CAAC,MAAM;AACtC,gBAAgB,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;AACtE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;AACnF,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;AACvE,QAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AAClC,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC;AACA,YAAY,MAAM,OAAO,GAAG,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC;AACrE,YAAY,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACvC,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC3C,QAAQ,OAAO,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACxE,IAAI;AACJ;;;;"}