UNPKG

2.44 kBSource Map (JSON)View Raw
1{"version":3,"file":"extractPartitionKey.js","sourceRoot":"","sources":["../../src/extractPartitionKey.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAiB,EACjB,sBAA8C;IAE9C,IACE,sBAAsB;QACtB,sBAAsB,CAAC,KAAK;QAC5B,sBAAsB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACvC;QACA,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YACpD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,GAAG,GAAG,QAAQ,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;gBAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE;oBAC1C,GAAG,GAAI,GAA+B,CAAC,IAAI,CAAC,CAAC;iBAC9C;qBAAM;oBACL,GAAG,GAAG,SAAS,CAAC;oBAChB,MAAM;iBACP;aACF;YACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAC9D,OAAO,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;SACtD;QACD,OAAO,YAAY,CAAC;KACrB;AACH,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,sBAA8C;IAClF,IAAI,sBAAsB,CAAC,SAAS,KAAK,IAAI,EAAE;QAC7C,OAAO,EAAE,CAAC;KACX;SAAM;QACL,OAAO,CAAC,EAAE,CAAC,CAAC;KACb;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { parsePath } from \"./common\";\nimport { PartitionKey, PartitionKeyDefinition } from \"./documents\";\n\n/**\n * @hidden\n */\nexport function extractPartitionKey(\n document: unknown,\n partitionKeyDefinition: PartitionKeyDefinition\n): PartitionKey[] {\n if (\n partitionKeyDefinition &&\n partitionKeyDefinition.paths &&\n partitionKeyDefinition.paths.length > 0\n ) {\n const partitionKey: PartitionKey[] = [];\n partitionKeyDefinition.paths.forEach((path: string) => {\n const pathParts = parsePath(path);\n let obj = document;\n for (const part of pathParts) {\n if (typeof obj === \"object\" && part in obj) {\n obj = (obj as Record<string, unknown>)[part];\n } else {\n obj = undefined;\n break;\n }\n }\n partitionKey.push(obj);\n });\n if (partitionKey.length === 1 && partitionKey[0] === undefined) {\n return undefinedPartitionKey(partitionKeyDefinition);\n }\n return partitionKey;\n }\n}\n/**\n * @hidden\n */\nexport function undefinedPartitionKey(partitionKeyDefinition: PartitionKeyDefinition): unknown[] {\n if (partitionKeyDefinition.systemKey === true) {\n return [];\n } else {\n return [{}];\n }\n}\n"]}
\No newline at end of file