@azure/core-client 1.6.1-alpha.20220601.1 → 1.6.2-alpha.20220805.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -980,7 +980,30 @@ function deserializeSequenceType(serializer, mapper, responseBody, objectName, o
|
|
|
980
980
|
}
|
|
981
981
|
return responseBody;
|
|
982
982
|
}
|
|
983
|
+
function getIndexDiscriminator(discriminators, discriminatorValue, typeName) {
|
|
984
|
+
const typeNamesToCheck = [typeName];
|
|
985
|
+
while (typeNamesToCheck.length) {
|
|
986
|
+
const currentName = typeNamesToCheck.shift();
|
|
987
|
+
const indexDiscriminator = discriminatorValue === currentName
|
|
988
|
+
? discriminatorValue
|
|
989
|
+
: currentName + "." + discriminatorValue;
|
|
990
|
+
if (Object.prototype.hasOwnProperty.call(discriminators, indexDiscriminator)) {
|
|
991
|
+
return discriminators[indexDiscriminator];
|
|
992
|
+
}
|
|
993
|
+
else {
|
|
994
|
+
for (const [name, mapper] of Object.entries(discriminators)) {
|
|
995
|
+
if (name.startsWith(currentName + ".") &&
|
|
996
|
+
mapper.type.uberParent === currentName &&
|
|
997
|
+
mapper.type.className) {
|
|
998
|
+
typeNamesToCheck.push(mapper.type.className);
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
return undefined;
|
|
1004
|
+
}
|
|
983
1005
|
function getPolymorphicMapper(serializer, mapper, object, polymorphicPropertyName) {
|
|
1006
|
+
var _a;
|
|
984
1007
|
const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);
|
|
985
1008
|
if (polymorphicDiscriminator) {
|
|
986
1009
|
let discriminatorName = polymorphicDiscriminator[polymorphicPropertyName];
|
|
@@ -990,12 +1013,9 @@ function getPolymorphicMapper(serializer, mapper, object, polymorphicPropertyNam
|
|
|
990
1013
|
discriminatorName = discriminatorName.replace(/\\/gi, "");
|
|
991
1014
|
}
|
|
992
1015
|
const discriminatorValue = object[discriminatorName];
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
const
|
|
996
|
-
? discriminatorValue
|
|
997
|
-
: typeName + "." + discriminatorValue;
|
|
998
|
-
const polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator];
|
|
1016
|
+
const typeName = (_a = mapper.type.uberParent) !== null && _a !== void 0 ? _a : mapper.type.className;
|
|
1017
|
+
if (typeof discriminatorValue === "string" && typeName) {
|
|
1018
|
+
const polymorphicMapper = getIndexDiscriminator(serializer.modelMappers.discriminators, discriminatorValue, typeName);
|
|
999
1019
|
if (polymorphicMapper) {
|
|
1000
1020
|
mapper = polymorphicMapper;
|
|
1001
1021
|
}
|