@simtlix/simfinity-js 1.4.0 → 1.5.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.js +33 -30
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simtlix/simfinity-js",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -1563,36 +1563,39 @@ const autoGenerateResolvers = (gqltype) => {
1563
1563
  if (fieldEntry.extensions && fieldEntry.extensions.relation) {
1564
1564
  const { relation } = fieldEntry.extensions;
1565
1565
 
1566
- if (fieldEntry.type instanceof GraphQLList) {
1567
- // Collection field - generate resolve for one-to-many relationship
1568
- const relatedType = fieldEntry.type.ofType;
1569
- const connectionField = relation.connectionField || fieldName;
1570
-
1571
- fieldEntry.resolve = (parent) => {
1572
- // Lazy lookup of the related model
1573
- const relatedTypeInfo = typesDict.types[relatedType.name];
1574
- if (!relatedTypeInfo || !relatedTypeInfo.model) {
1575
- throw new Error(`Related type ${relatedType.name} not found or not connected. Make sure it's connected with simfinity.connect() or simfinity.addNoEndpointType().`);
1576
- }
1577
- const query = {};
1578
- query[connectionField] = parent.id || parent._id;
1579
- return relatedTypeInfo.model.find(query);
1580
- };
1581
- } else if (fieldEntry.type instanceof GraphQLObjectType
1582
- || (fieldEntry.type instanceof GraphQLNonNull && fieldEntry.type.ofType instanceof GraphQLObjectType)) {
1583
- // Single object field - generate resolve for one-to-one relationship
1584
- const relatedType = fieldEntry.type instanceof GraphQLNonNull ? fieldEntry.type.ofType : fieldEntry.type;
1585
- const connectionField = relation.connectionField || fieldName;
1586
-
1587
- fieldEntry.resolve = (parent) => {
1588
- // Lazy lookup of the related model
1589
- const relatedTypeInfo = typesDict.types[relatedType.name];
1590
- if (!relatedTypeInfo || !relatedTypeInfo.model) {
1591
- throw new Error(`Related type ${relatedType.name} not found or not connected. Make sure it's connected with simfinity.connect() or simfinity.addNoEndpointType().`);
1592
- }
1593
- const relatedId = parent[connectionField] || parent[fieldName];
1594
- return relatedId ? relatedTypeInfo.model.findById(relatedId) : null;
1595
- };
1566
+ // Only generate resolvers for non-embedded relationships
1567
+ if (!relation.embedded) {
1568
+ if (fieldEntry.type instanceof GraphQLList) {
1569
+ // Collection field - generate resolve for one-to-many relationship
1570
+ const relatedType = fieldEntry.type.ofType;
1571
+ const connectionField = relation.connectionField || fieldName;
1572
+
1573
+ fieldEntry.resolve = (parent) => {
1574
+ // Lazy lookup of the related model
1575
+ const relatedTypeInfo = typesDict.types[relatedType.name];
1576
+ if (!relatedTypeInfo || !relatedTypeInfo.model) {
1577
+ throw new Error(`Related type ${relatedType.name} not found or not connected. Make sure it's connected with simfinity.connect() or simfinity.addNoEndpointType().`);
1578
+ }
1579
+ const query = {};
1580
+ query[connectionField] = parent.id || parent._id;
1581
+ return relatedTypeInfo.model.find(query);
1582
+ };
1583
+ } else if (fieldEntry.type instanceof GraphQLObjectType
1584
+ || (fieldEntry.type instanceof GraphQLNonNull && fieldEntry.type.ofType instanceof GraphQLObjectType)) {
1585
+ // Single object field - generate resolve for one-to-one relationship
1586
+ const relatedType = fieldEntry.type instanceof GraphQLNonNull ? fieldEntry.type.ofType : fieldEntry.type;
1587
+ const connectionField = relation.connectionField || fieldName;
1588
+
1589
+ fieldEntry.resolve = (parent) => {
1590
+ // Lazy lookup of the related model
1591
+ const relatedTypeInfo = typesDict.types[relatedType.name];
1592
+ if (!relatedTypeInfo || !relatedTypeInfo.model) {
1593
+ throw new Error(`Related type ${relatedType.name} not found or not connected. Make sure it's connected with simfinity.connect() or simfinity.addNoEndpointType().`);
1594
+ }
1595
+ const relatedId = parent[connectionField] || parent[fieldName];
1596
+ return relatedId ? relatedTypeInfo.model.findById(relatedId) : null;
1597
+ };
1598
+ }
1596
1599
  }
1597
1600
  }
1598
1601
  }