UNPKG

1.39 kBJavaScriptView Raw
1"use strict";
2var __assign = (this && this.__assign) || function () {
3 __assign = Object.assign || function(t) {
4 for (var s, i = 1, n = arguments.length; i < n; i++) {
5 s = arguments[i];
6 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7 t[p] = s[p];
8 }
9 return t;
10 };
11 return __assign.apply(this, arguments);
12};
13Object.defineProperty(exports, "__esModule", { value: true });
14exports.getEntityKeys = void 0;
15var name_converter_1 = require("../name-converter");
16/**
17 * Helper function that maps an entity to its keys map with their original names.
18 * @param entity - Entity to map
19 * @param entityConstructor - The constructor of the entity
20 * @returns object that includes all keys that represent given entity
21 */
22function getEntityKeys(entity, entityConstructor) {
23 if (!entity) {
24 throw new Error('getEntityKeys() cannot extract keys from an undefined or null object.');
25 }
26 // type assertion for backwards compatibility, TODO: remove in v2.0
27 return entityConstructor._keyFields.reduce(function (prev, curr) {
28 var _a;
29 return (__assign(__assign({}, prev), (_a = {}, _a[curr._fieldName] = encodeURIComponent(entity[(0, name_converter_1.toPropertyFormat)(curr._fieldName)]), _a)));
30 }, {});
31}
32exports.getEntityKeys = getEntityKeys;
33//# sourceMappingURL=get-keys.js.map
\No newline at end of file