@strapi/utils 5.0.6 → 5.1.0
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/convert-query-params.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-query-params.d.ts","sourceRoot":"","sources":["../src/convert-query-params.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert-query-params.d.ts","sourceRoot":"","sources":["../src/convert-query-params.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -970,14 +970,14 @@ const createTransformer = ({ getModel }) => {
|
|
|
970
970
|
return transformedSort;
|
|
971
971
|
};
|
|
972
972
|
const convertStartQueryParams = (startQuery) => {
|
|
973
|
-
const startAsANumber =
|
|
973
|
+
const startAsANumber = fp.toNumber(startQuery);
|
|
974
974
|
if (!___namespace.default.isInteger(startAsANumber) || startAsANumber < 0) {
|
|
975
975
|
throw new Error(`convertStartQueryParams expected a positive integer got ${startAsANumber}`);
|
|
976
976
|
}
|
|
977
977
|
return startAsANumber;
|
|
978
978
|
};
|
|
979
979
|
const convertLimitQueryParams = (limitQuery) => {
|
|
980
|
-
const limitAsANumber =
|
|
980
|
+
const limitAsANumber = fp.toNumber(limitQuery);
|
|
981
981
|
if (!___namespace.default.isInteger(limitAsANumber) || limitAsANumber !== -1 && limitAsANumber < 0) {
|
|
982
982
|
throw new Error(`convertLimitQueryParams expected a positive integer got ${limitAsANumber}`);
|
|
983
983
|
}
|
|
@@ -1056,7 +1056,7 @@ const createTransformer = ({ getModel }) => {
|
|
|
1056
1056
|
if (___namespace.default.isString(subPopulate)) {
|
|
1057
1057
|
try {
|
|
1058
1058
|
const subPopulateAsBoolean = parseType({ type: "boolean", value: subPopulate });
|
|
1059
|
-
return subPopulateAsBoolean
|
|
1059
|
+
return subPopulateAsBoolean ? { ...acc, [key]: true } : acc;
|
|
1060
1060
|
} catch {
|
|
1061
1061
|
}
|
|
1062
1062
|
}
|
|
@@ -1070,14 +1070,22 @@ const createTransformer = ({ getModel }) => {
|
|
|
1070
1070
|
const isMorphLikeRelationalAttribute = isDynamicZoneAttribute(attribute) || isMorphToRelationalAttribute(attribute);
|
|
1071
1071
|
if (isMorphLikeRelationalAttribute) {
|
|
1072
1072
|
const hasInvalidProperties = Object.keys(subPopulate).some(
|
|
1073
|
-
(key2) => !["on", "count"].includes(key2)
|
|
1073
|
+
(key2) => !["populate", "on", "count"].includes(key2)
|
|
1074
1074
|
);
|
|
1075
1075
|
if (hasInvalidProperties) {
|
|
1076
1076
|
throw new Error(
|
|
1077
1077
|
`Invalid nested populate for ${schema.info?.singularName}.${key} (${schema.uid}). Expected a fragment ("on") or "count" but found ${JSON.stringify(subPopulate)}`
|
|
1078
1078
|
);
|
|
1079
1079
|
}
|
|
1080
|
+
if ("populate" in subPopulate && subPopulate.populate !== "*") {
|
|
1081
|
+
throw new Error(
|
|
1082
|
+
`Invalid nested population query detected. When using 'populate' within polymorphic structures, its value must be '*' to indicate all second level links. Specific field targeting is not supported here. Consider using the fragment API for more granular population control.`
|
|
1083
|
+
);
|
|
1084
|
+
}
|
|
1080
1085
|
const newSubPopulate = {};
|
|
1086
|
+
if ("populate" in subPopulate) {
|
|
1087
|
+
Object.assign(newSubPopulate, { populate: true });
|
|
1088
|
+
}
|
|
1081
1089
|
if (hasPopulateFragmentDefined(subPopulate)) {
|
|
1082
1090
|
Object.assign(newSubPopulate, {
|
|
1083
1091
|
on: Object.entries(subPopulate.on).reduce(
|