joist-graphql-resolver-utils 1.114.1 → 1.115.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.
@@ -1,6 +1,7 @@
1
+ import { GraphQLResolveInfo } from "graphql/type";
1
2
  import { EntityManager } from "joist-orm";
2
3
  export type MaybePromise<T> = T | Promise<T>;
3
- export type Resolver<R, A, T> = (root: R, args: A, ctx: any, info: any) => MaybePromise<T>;
4
+ export type Resolver<R, A, T> = (root: R, args: A, ctx: any, info: GraphQLResolveInfo) => MaybePromise<T>;
4
5
  export type Context = {
5
6
  em: EntityManager;
6
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAG7C,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;AAE3F,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,aAAa,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAG7C,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;AAE1G,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,aAAa,CAAA;CAAE,CAAC"}
@@ -7,6 +7,10 @@ type GraphQLPrimitive = string | Date | boolean | number | null | undefined;
7
7
  * Note that we don't necessarily know/care if `firstName` is in the `Entity` GraphQL type, we just map
8
8
  * every field to a potential resolver, and then will let the `EntityResolvers` type-check effectively
9
9
  * do the union of "what's defined on the ORM type vs. what's defined on the GraphQL type".
10
+ *
11
+ * Note this might require setting GraphQL options like `requireResolversToMatchSchema: ignore` to avoid
12
+ * the GraphQL infra complaining about the extra field resolvers that Joist creates for fields that
13
+ * are not technically mapped in your GraphQL schema.
10
14
  */
11
15
  export type EntityResolver<T extends Entity> = {
12
16
  [P in keyof T]: P extends "id" ? Resolver<T, Record<string, any>, IdOf<T>> : T[P] extends GraphQLPrimitive | GraphQLPrimitive[] ? Resolver<T, Record<string, any>, T[P]> : T[P] extends Collection<T, infer U> ? Resolver<T, Record<string, any>, U[]> : T[P] extends Reference<T, infer U, infer N> ? Resolver<T, Record<string, any>, U> : T[P] extends AsyncProperty<T, infer V> ? Resolver<T, Record<string, any>, V> : T[P] extends Promise<infer V> ? Resolver<T, Record<string, any>, V> : T[P] extends () => Promise<infer V> ? Resolver<T, Record<string, any>, V> : T[P] extends () => infer V ? Resolver<T, Record<string, any>, V> : Resolver<T, Record<string, any>, T[P]>;
@@ -1 +1 @@
1
- {"version":3,"file":"entityResolver.d.ts","sourceRoot":"","sources":["../src/entityResolver.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,UAAU,EACV,MAAM,EACN,cAAc,EAGd,IAAI,EAUJ,SAAS,EACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,KAAK,gBAAgB,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI;KAC5C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,GAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GACzC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,GAClD,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACtC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GACrC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC3C,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAC7B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,GAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtG,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,EACjC,OAAO,CAAC,EAAE,CAAC,GACV,cAAc,CAAC,CAAC,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CA6EjE"}
1
+ {"version":3,"file":"entityResolver.d.ts","sourceRoot":"","sources":["../src/entityResolver.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,UAAU,EACV,MAAM,EACN,cAAc,EAGd,IAAI,EAgBJ,SAAS,EACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,KAAK,gBAAgB,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI;KAC5C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,GAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GACzC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,GAClD,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACtC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GACrC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC3C,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAC7B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,GAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtG,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,EACjC,OAAO,CAAC,EAAE,CAAC,GACV,cAAc,CAAC,CAAC,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAsHjE"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.entityResolver = void 0;
4
4
  const joist_orm_1 = require("joist-orm");
5
+ const hint_1 = require("./hint");
5
6
  /**
6
7
  * Creates field resolvers for each of the fields on our entity.
7
8
  */
@@ -32,16 +33,49 @@ function entityResolver(entityMetadata, aliases) {
32
33
  if (selectionSet.selections.length === 1 &&
33
34
  selectionSet.selections[0].kind === "Field" &&
34
35
  selectionSet.selections[0].name.value === "id") {
36
+ // This is cheating and returning the "wrong root", but our `id` field resolvers
37
+ // knows to look for it, to optimize this case and avoiding the unnecessary load
35
38
  return entity[ormField.fieldName].idMaybe;
36
39
  }
37
40
  }
38
41
  }
39
- return entity[ormField.fieldName].load();
42
+ const reference = entity[ormField.fieldName];
43
+ if ((0, joist_orm_1.isLoadedReference)(reference)) {
44
+ return reference.get;
45
+ }
46
+ // We skip polys b/c they can't have load hints anyway
47
+ if (info && ((0, joist_orm_1.isManyToOneField)(ormField) || (0, joist_orm_1.isOneToManyField)(ormField))) {
48
+ // See if we can populate the collection from the GraphQL selection set
49
+ const loadHint = (0, hint_1.convertInfoToLoadHint)(ormField.otherMetadata(), info);
50
+ if (loadHint) {
51
+ const parentHint = { [ormField.fieldName]: loadHint };
52
+ return entity.em.populate(entity, parentHint).then(() => reference.get);
53
+ }
54
+ }
55
+ return reference.load();
40
56
  },
41
57
  ]);
42
58
  const collectionResolvers = Object.values(entityMetadata.fields)
43
59
  .filter((ormField) => isCollectionField(ormField))
44
- .map((ormField) => [ormField.fieldName, (entity) => entity[ormField.fieldName].load()]);
60
+ .map((ormField) => [
61
+ ormField.fieldName,
62
+ (entity, args, ctx, info) => {
63
+ const field = ormField;
64
+ const collection = entity[field.fieldName];
65
+ if ((0, joist_orm_1.isLoadedCollection)(collection)) {
66
+ return collection.get;
67
+ }
68
+ if (info) {
69
+ // See if we can populate the collection from the GraphQL selection set
70
+ const loadHint = (0, hint_1.convertInfoToLoadHint)(field.otherMetadata(), info);
71
+ if (loadHint) {
72
+ const parentHint = { [field.fieldName]: loadHint };
73
+ return entity.em.populate(entity, parentHint).then(() => collection.get);
74
+ }
75
+ }
76
+ return collection.load();
77
+ },
78
+ ]);
45
79
  const ormResolvers = Object.fromEntries([...primitiveResolvers, ...referenceResolvers, ...collectionResolvers]);
46
80
  // Look for non-orm properties on the domain object's prototype
47
81
  // and on an instance of the domain object itself to get
@@ -53,9 +87,18 @@ function entityResolver(entityMetadata, aliases) {
53
87
  (entity) => {
54
88
  const property = entity[key];
55
89
  if (typeof property === "function") {
90
+ // Support methods like `async name(): Promise<string>`
56
91
  return property.apply(entity);
57
92
  }
58
93
  else if ((0, joist_orm_1.isReference)(property) || (0, joist_orm_1.isCollection)(property) || (0, joist_orm_1.isAsyncProperty)(property)) {
94
+ if ((0, joist_orm_1.isLoadedReference)(property) || (0, joist_orm_1.isLoadedCollection)(property) || (0, joist_orm_1.isLoadedAsyncProperty)(property)) {
95
+ return property.get;
96
+ }
97
+ // ...we need to know the `property.otherMetadata()` return type, which isn't available right now
98
+ // const loadHint = convertInfoToLoadHint(getMetadata(entity), info);
99
+ // if (loadHint) {
100
+ // return entity.em.populate(entity, loadHint).then(() => (property as any).get);
101
+ // }
59
102
  return property.load();
60
103
  }
61
104
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"entityResolver.js","sourceRoot":"","sources":["../src/entityResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entityResolver.js","sourceRoot":"","sources":["../src/entityResolver.ts"],"names":[],"mappings":";;;AACA,yCAwBmB;AAEnB,iCAA+C;AAmC/C;;GAEG;AACH,SAAgB,cAAc,CAC5B,cAAiC,EACjC,OAAW;IAEX,MAAM,UAAU,GAAG,CAAC,UAAsB,EAAE,EAAE;QAC5C,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;SAC5D,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACjH,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE;YACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAS,EAAE,EAAE,CAAE,MAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;SACrF;aAAM;YACL,wFAAwF;YACxF,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAS,EAAE,EAAE,CAAE,MAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SACjF;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,kBAAkB,GAAwC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;SACjG,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QACjB,QAAQ,CAAC,SAAS;QAClB,CAAC,MAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAoC,EAAE,EAAE;YAC7D,oGAAoG;YACpG,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1F,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBACrD,IAAI,YAAY,EAAE;oBAChB,IACE,YAAY,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;wBACpC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO;wBAC3C,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,EAC9C;wBACA,gFAAgF;wBAChF,gFAAgF;wBAChF,OAAQ,MAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;qBACpD;iBACF;aACF;YACD,MAAM,SAAS,GAAI,MAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,IAAA,6BAAiB,EAAC,SAAS,CAAC,EAAE;gBAChC,OAAO,SAAS,CAAC,GAAG,CAAC;aACtB;YACD,sDAAsD;YACtD,IAAI,IAAI,IAAI,CAAC,IAAA,4BAAgB,EAAC,QAAQ,CAAC,IAAI,IAAA,4BAAgB,EAAC,QAAQ,CAAC,CAAC,EAAE;gBACtE,uEAAuE;gBACvE,MAAM,QAAQ,GAAG,IAAA,4BAAqB,EAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;gBACvE,IAAI,QAAQ,EAAE;oBACZ,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAiB,CAAC;oBACrE,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;iBACzE;aACF;YACD,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IAEL,MAAM,mBAAmB,GAAsC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;SAChG,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QACjB,QAAQ,CAAC,SAAS;QAClB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAoC,EAAE,EAAE;YAC1D,MAAM,KAAK,GAAG,QAA4C,CAAC;YAC3D,MAAM,UAAU,GAAI,MAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,IAAA,8BAAkB,EAAC,UAAU,CAAC,EAAE;gBAClC,OAAO,UAAU,CAAC,GAAG,CAAC;aACvB;YACD,IAAI,IAAI,EAAE;gBACR,uEAAuE;gBACvE,MAAM,QAAQ,GAAG,IAAA,4BAAqB,EAAC,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpE,IAAI,QAAQ,EAAE;oBACZ,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAiB,CAAC;oBAClE,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBAC1E;aACF;YACD,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC;IAEL,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAEhH,+DAA+D;IAC/D,wDAAwD;IACxD,iDAAiD;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,yBAAa,EAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,eAAe,GAAsC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACvF,GAAG;QACH,CAAC,MAAM,EAAE,EAAE;YACT,MAAM,QAAQ,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,uDAAuD;gBACvD,OAAQ,QAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC7C;iBAAM,IAAI,IAAA,uBAAW,EAAC,QAAQ,CAAC,IAAI,IAAA,wBAAY,EAAC,QAAQ,CAAC,IAAI,IAAA,2BAAe,EAAC,QAAQ,CAAC,EAAE;gBACvF,IAAI,IAAA,6BAAiB,EAAC,QAAQ,CAAC,IAAI,IAAA,8BAAkB,EAAC,QAAQ,CAAC,IAAI,IAAA,iCAAqB,EAAC,QAAQ,CAAC,EAAE;oBAClG,OAAO,QAAQ,CAAC,GAAG,CAAC;iBACrB;gBACD,iGAAiG;gBACjG,qEAAqE;gBACrE,kBAAkB;gBAClB,mFAAmF;gBACnF,IAAI;gBACJ,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;aACxB;iBAAM;gBACL,OAAO,QAAQ,CAAC;aACjB;QACH,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG;QACd,EAAE,EAAE,UAAU;QACd,GAAG,YAAY;QACf,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC;KAChC,CAAC;IAET,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;YACjD,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAzHD,wCAyHC;AAED,SAAS,gBAAgB,CAAC,QAAe;IACvC,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;AACxF,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAe;IACxC,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AAC5D,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAe;IACxC,OAAO,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC;AACxC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SelectionSetNode } from "graphql/language";
2
+ import { GraphQLObjectType, GraphQLOutputType, GraphQLResolveInfo } from "graphql/type";
3
+ import { Entity, EntityMetadata, LoadHint } from "joist-orm";
4
+ /** Returns a load hint for the given `meta` entity at the `info` node.populate`. */
5
+ export declare function convertInfoToLoadHint<T extends Entity>(meta: EntityMetadata<T>, info: GraphQLResolveInfo): LoadHint<T> | undefined;
6
+ /** Converts a GraphQL selection set into a hint for `EntityManager.populate`. */
7
+ export declare function selectionSetToObject(info: GraphQLResolveInfo, meta: EntityMetadata<any>, gqlType: GraphQLObjectType, selectionSet: SelectionSetNode): Record<string, any>;
8
+ export declare function convertToObjectType(type: GraphQLOutputType): GraphQLObjectType | undefined;
9
+ //# sourceMappingURL=hint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hint.d.ts","sourceRoot":"","sources":["../src/hint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAGL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE7D,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EACpD,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,kBAAkB,GACvB,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAUzB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EACzB,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,gBAAgB,GAC7B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6BrB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAO1F"}
package/build/hint.js ADDED
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertToObjectType = exports.selectionSetToObject = exports.convertInfoToLoadHint = void 0;
4
+ const type_1 = require("graphql/type");
5
+ /** Returns a load hint for the given `meta` entity at the `info` node.populate`. */
6
+ function convertInfoToLoadHint(meta, info) {
7
+ // The return type of the current field resolver is the root type, i.e.
8
+ // Author.books fieldResolver ==> objectType = Book, or
9
+ // query.authors fieldResolver ==> objectType = Author
10
+ const objectType = convertToObjectType(info.returnType);
11
+ const selectionSet = info.fieldNodes[0].selectionSet;
12
+ if (objectType && selectionSet) {
13
+ return selectionSetToObject(info, meta, objectType, selectionSet);
14
+ }
15
+ return undefined;
16
+ }
17
+ exports.convertInfoToLoadHint = convertInfoToLoadHint;
18
+ /** Converts a GraphQL selection set into a hint for `EntityManager.populate`. */
19
+ function selectionSetToObject(info, meta, gqlType, selectionSet) {
20
+ const result = {};
21
+ for (const selection of selectionSet.selections) {
22
+ if (selection.kind === "Field") {
23
+ const fieldName = selection.name.value;
24
+ const fieldType = convertToObjectType(gqlType.getFields()[fieldName].type);
25
+ const ormField = meta.allFields[fieldName];
26
+ if (fieldType && selection.selectionSet && ormField && "otherMetadata" in ormField) {
27
+ result[fieldName] = selectionSetToObject(info, ormField.otherMetadata(), fieldType, selection.selectionSet);
28
+ }
29
+ }
30
+ else if (selection.kind === "FragmentSpread") {
31
+ const fragmentName = selection.name.value;
32
+ const fragment = info.fragments[fragmentName];
33
+ const type = info.schema.getType(fragment.typeCondition.name.value);
34
+ const objectType = convertToObjectType(type);
35
+ if (objectType) {
36
+ const other = selectionSetToObject(info, meta, objectType, fragment.selectionSet);
37
+ deepMerge(result, other);
38
+ }
39
+ }
40
+ else if (selection.kind === "InlineFragment" && selection.typeCondition) {
41
+ const type = info.schema.getType(selection.typeCondition.name.value);
42
+ const objectType = convertToObjectType(type);
43
+ if (objectType) {
44
+ const other = selectionSetToObject(info, meta, objectType, selection.selectionSet);
45
+ deepMerge(result, other);
46
+ }
47
+ }
48
+ }
49
+ return result;
50
+ }
51
+ exports.selectionSetToObject = selectionSetToObject;
52
+ function convertToObjectType(type) {
53
+ if (type instanceof type_1.GraphQLNonNull || type instanceof type_1.GraphQLList) {
54
+ return convertToObjectType(type.ofType);
55
+ }
56
+ else if ((0, type_1.isObjectType)(type)) {
57
+ return type;
58
+ }
59
+ return undefined;
60
+ }
61
+ exports.convertToObjectType = convertToObjectType;
62
+ function deepMerge(a, b) {
63
+ for (const [key, value] of Object.entries(b)) {
64
+ deepMerge((a[key] ??= {}), value);
65
+ }
66
+ }
67
+ //# sourceMappingURL=hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hint.js","sourceRoot":"","sources":["../src/hint.ts"],"names":[],"mappings":";;;AACA,uCAOsB;AAGtB,oFAAoF;AACpF,SAAgB,qBAAqB,CACnC,IAAuB,EACvB,IAAwB;IAExB,uEAAuE;IACvE,uDAAuD;IACvD,sDAAsD;IACtD,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACrD,IAAI,UAAU,IAAI,YAAY,EAAE;QAC9B,OAAO,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;KACnE;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAbD,sDAaC;AAED,iFAAiF;AACjF,SAAgB,oBAAoB,CAClC,IAAwB,EACxB,IAAyB,EACzB,OAA0B,EAC1B,YAA8B;IAE9B,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE;QAC/C,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,YAAY,IAAI,QAAQ,IAAI,eAAe,IAAI,QAAQ,EAAE;gBAClF,MAAM,CAAC,SAAS,CAAC,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;aAC7G;SACF;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE;YAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;YACrE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAW,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE;gBACd,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAClF,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC1B;SACF;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,IAAI,SAAS,CAAC,aAAa,EAAE;YACzE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;YACtE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAW,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE;gBACd,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;gBACnF,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC1B;SACF;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAlCD,oDAkCC;AAED,SAAgB,mBAAmB,CAAC,IAAuB;IACzD,IAAI,IAAI,YAAY,qBAAc,IAAI,IAAI,YAAY,kBAAW,EAAE;QACjE,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzC;SAAM,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAPD,kDAOC;AAED,SAAS,SAAS,CAAmB,CAAI,EAAE,CAAI;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC5C,SAAS,CAAC,CAAE,CAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;KAC5C;AACH,CAAC"}
package/build/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { entityResolver } from "./entityResolver";
2
+ export { convertInfoToLoadHint } from "./hint";
2
3
  export { saveEntities, saveEntity } from "./saveEntity";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
package/build/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.saveEntity = exports.saveEntities = exports.entityResolver = void 0;
3
+ exports.saveEntity = exports.saveEntities = exports.convertInfoToLoadHint = exports.entityResolver = void 0;
4
4
  var entityResolver_1 = require("./entityResolver");
5
5
  Object.defineProperty(exports, "entityResolver", { enumerable: true, get: function () { return entityResolver_1.entityResolver; } });
6
+ var hint_1 = require("./hint");
7
+ Object.defineProperty(exports, "convertInfoToLoadHint", { enumerable: true, get: function () { return hint_1.convertInfoToLoadHint; } });
6
8
  var saveEntity_1 = require("./saveEntity");
7
9
  Object.defineProperty(exports, "saveEntities", { enumerable: true, get: function () { return saveEntity_1.saveEntities; } });
8
10
  Object.defineProperty(exports, "saveEntity", { enumerable: true, get: function () { return saveEntity_1.saveEntity; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2CAAwD;AAA/C,0GAAA,YAAY,OAAA;AAAE,wGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,+BAA+C;AAAtC,6GAAA,qBAAqB,OAAA;AAC9B,2CAAwD;AAA/C,0GAAA,YAAY,OAAA;AAAE,wGAAA,UAAU,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joist-graphql-resolver-utils",
3
- "version": "1.114.1",
3
+ "version": "1.115.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,8 +21,8 @@
21
21
  ],
22
22
  "dependencies": {
23
23
  "graphql": "^16.8.1",
24
- "joist-orm": "1.114.1",
25
- "joist-test-utils": "1.114.1"
24
+ "joist-orm": "1.115.0",
25
+ "joist-test-utils": "1.115.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/core": "^1.3.95",