@payloadcms/graphql 4.0.0-internal.532221d → 4.0.0-internal.567a487

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 (62) hide show
  1. package/dist/resolvers/collections/count.d.ts +1 -0
  2. package/dist/resolvers/collections/count.d.ts.map +1 -1
  3. package/dist/resolvers/collections/count.js.map +1 -1
  4. package/dist/resolvers/collections/create.d.ts +1 -0
  5. package/dist/resolvers/collections/create.d.ts.map +1 -1
  6. package/dist/resolvers/collections/create.js.map +1 -1
  7. package/dist/resolvers/collections/delete.d.ts +1 -0
  8. package/dist/resolvers/collections/delete.d.ts.map +1 -1
  9. package/dist/resolvers/collections/delete.js +11 -1
  10. package/dist/resolvers/collections/delete.js.map +1 -1
  11. package/dist/resolvers/collections/duplicate.d.ts +1 -0
  12. package/dist/resolvers/collections/duplicate.d.ts.map +1 -1
  13. package/dist/resolvers/collections/duplicate.js +11 -1
  14. package/dist/resolvers/collections/duplicate.js.map +1 -1
  15. package/dist/resolvers/collections/find.d.ts +1 -0
  16. package/dist/resolvers/collections/find.d.ts.map +1 -1
  17. package/dist/resolvers/collections/find.js +13 -1
  18. package/dist/resolvers/collections/find.js.map +1 -1
  19. package/dist/resolvers/collections/findByID.d.ts +1 -0
  20. package/dist/resolvers/collections/findByID.d.ts.map +1 -1
  21. package/dist/resolvers/collections/findByID.js +13 -1
  22. package/dist/resolvers/collections/findByID.js.map +1 -1
  23. package/dist/resolvers/collections/findVersionByID.d.ts +1 -0
  24. package/dist/resolvers/collections/findVersionByID.d.ts.map +1 -1
  25. package/dist/resolvers/collections/findVersionByID.js +13 -1
  26. package/dist/resolvers/collections/findVersionByID.js.map +1 -1
  27. package/dist/resolvers/collections/findVersions.d.ts +1 -0
  28. package/dist/resolvers/collections/findVersions.d.ts.map +1 -1
  29. package/dist/resolvers/collections/findVersions.js +13 -1
  30. package/dist/resolvers/collections/findVersions.js.map +1 -1
  31. package/dist/resolvers/collections/restoreVersion.d.ts +1 -0
  32. package/dist/resolvers/collections/restoreVersion.d.ts.map +1 -1
  33. package/dist/resolvers/collections/restoreVersion.js.map +1 -1
  34. package/dist/resolvers/collections/update.d.ts +1 -0
  35. package/dist/resolvers/collections/update.d.ts.map +1 -1
  36. package/dist/resolvers/collections/update.js +11 -1
  37. package/dist/resolvers/collections/update.js.map +1 -1
  38. package/dist/resolvers/globals/findOne.d.ts +1 -0
  39. package/dist/resolvers/globals/findOne.d.ts.map +1 -1
  40. package/dist/resolvers/globals/findOne.js +13 -1
  41. package/dist/resolvers/globals/findOne.js.map +1 -1
  42. package/dist/resolvers/globals/findVersionByID.d.ts +1 -0
  43. package/dist/resolvers/globals/findVersionByID.d.ts.map +1 -1
  44. package/dist/resolvers/globals/findVersionByID.js +13 -1
  45. package/dist/resolvers/globals/findVersionByID.js.map +1 -1
  46. package/dist/resolvers/globals/findVersions.d.ts +1 -0
  47. package/dist/resolvers/globals/findVersions.d.ts.map +1 -1
  48. package/dist/resolvers/globals/findVersions.js +13 -1
  49. package/dist/resolvers/globals/findVersions.js.map +1 -1
  50. package/dist/resolvers/globals/restoreVersion.d.ts +1 -0
  51. package/dist/resolvers/globals/restoreVersion.d.ts.map +1 -1
  52. package/dist/resolvers/globals/restoreVersion.js.map +1 -1
  53. package/dist/resolvers/globals/update.d.ts +1 -0
  54. package/dist/resolvers/globals/update.d.ts.map +1 -1
  55. package/dist/resolvers/globals/update.js.map +1 -1
  56. package/dist/schema/initCollections.d.ts.map +1 -1
  57. package/dist/schema/initCollections.js +30 -6
  58. package/dist/schema/initCollections.js.map +1 -1
  59. package/dist/schema/initGlobals.d.ts.map +1 -1
  60. package/dist/schema/initGlobals.js +12 -0
  61. package/dist/schema/initGlobals.js.map +1 -1
  62. package/package.json +3 -3
@@ -1,5 +1,6 @@
1
1
  import type { Collection, PayloadRequest, Where } from 'payload';
2
2
  export type Resolver = (_: unknown, args: {
3
+ branch?: string;
3
4
  data: Record<string, unknown>;
4
5
  locale?: string;
5
6
  trash?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMhE,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEnC,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAqB9D"}
1
+ {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMhE,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEnC,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAqB9D"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/count.ts"],"sourcesContent":["import type { Collection, PayloadRequest, Where } from 'payload'\n\nimport { countOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n data: Record<string, unknown>\n locale?: string\n trash?: boolean\n where?: Where\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<{ totalDocs: number }>\n\nexport function countResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = fallbackLocale\n context.req = req\n\n const options = {\n collection,\n req: isolateObjectProperty(req, 'transactionID'),\n trash: args.trash,\n where: args.where,\n }\n\n const results = await countOperation(options)\n return results\n }\n}\n"],"names":["countOperation","isolateObjectProperty","countResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","options","trash","where","results"],"mappings":"AAEA,SAASA,cAAc,EAAEC,qBAAqB,QAAQ,UAAS;AAiB/D,OAAO,SAASC,cAAcC,UAAsB;IAClD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMP,sBAAsBO,KAAK;QACjCA,MAAMP,sBAAsBO,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGA;QACrBH,QAAQC,GAAG,GAAGA;QAEd,MAAMG,UAAU;YACdR;YACAK,KAAKP,sBAAsBO,KAAK;YAChCI,OAAON,KAAKM,KAAK;YACjBC,OAAOP,KAAKO,KAAK;QACnB;QAEA,MAAMC,UAAU,MAAMd,eAAeW;QACrC,OAAOG;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/count.ts"],"sourcesContent":["import type { Collection, PayloadRequest, Where } from 'payload'\n\nimport { countOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n branch?: string\n data: Record<string, unknown>\n locale?: string\n trash?: boolean\n where?: Where\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<{ totalDocs: number }>\n\nexport function countResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = fallbackLocale\n context.req = req\n\n const options = {\n collection,\n req: isolateObjectProperty(req, 'transactionID'),\n trash: args.trash,\n where: args.where,\n }\n\n const results = await countOperation(options)\n return results\n }\n}\n"],"names":["countOperation","isolateObjectProperty","countResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","options","trash","where","results"],"mappings":"AAEA,SAASA,cAAc,EAAEC,qBAAqB,QAAQ,UAAS;AAkB/D,OAAO,SAASC,cAAcC,UAAsB;IAClD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMP,sBAAsBO,KAAK;QACjCA,MAAMP,sBAAsBO,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGA;QACrBH,QAAQC,GAAG,GAAGA;QAEd,MAAMG,UAAU;YACdR;YACAK,KAAKP,sBAAsBO,KAAK;YAChCI,OAAON,KAAKM,KAAK;YACjBC,OAAOP,KAAKO,KAAK;QACnB;QAEA,MAAMC,UAAU,MAAMd,eAAeW;QACrC,OAAOG;IACT;AACF"}
@@ -1,5 +1,6 @@
1
1
  import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest, RequiredDataFromCollectionSlug } from 'payload';
2
2
  export type Resolver<TSlug extends CollectionSlug> = (_: unknown, args: {
3
+ branch?: string;
3
4
  data: RequiredDataFromCollectionSlug<TSlug>;
4
5
  draft: boolean;
5
6
  locale?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,8BAA8B,EAC/B,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,IAAI,EAAE,8BAA8B,CAAC,KAAK,CAAC,CAAA;IAC3C,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,wBAAgB,cAAc,CAAC,KAAK,SAAS,cAAc,EACzD,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CAgBjB"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,8BAA8B,EAC/B,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,8BAA8B,CAAC,KAAK,CAAC,CAAA;IAC3C,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,wBAAgB,cAAc,CAAC,KAAK,SAAS,cAAc,EACzD,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CAgBjB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/create.ts"],"sourcesContent":["import type {\n Collection,\n CollectionSlug,\n DataFromCollectionSlug,\n PayloadRequest,\n RequiredDataFromCollectionSlug,\n} from 'payload'\n\nimport { createOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n data: RequiredDataFromCollectionSlug<TSlug>\n draft: boolean\n locale?: string\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport function createResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n if (args.locale) {\n context.req.locale = args.locale\n }\n\n const result = await createOperation({\n collection,\n data: args.data,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(context.req, 'transactionID'),\n })\n\n return result\n }\n}\n"],"names":["createOperation","isolateObjectProperty","createResolver","collection","resolver","_","args","context","locale","req","result","data","depth","draft"],"mappings":"AAQA,SAASA,eAAe,EAAEC,qBAAqB,QAAQ,UAAS;AAgBhE,OAAO,SAASC,eACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAID,KAAKE,MAAM,EAAE;YACfD,QAAQE,GAAG,CAACD,MAAM,GAAGF,KAAKE,MAAM;QAClC;QAEA,MAAME,SAAS,MAAMV,gBAAgB;YACnCG;YACAQ,MAAML,KAAKK,IAAI;YACfC,OAAO;YACPC,OAAOP,KAAKO,KAAK;YACjBJ,KAAKR,sBAAsBM,QAAQE,GAAG,EAAE;QAC1C;QAEA,OAAOC;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/create.ts"],"sourcesContent":["import type {\n Collection,\n CollectionSlug,\n DataFromCollectionSlug,\n PayloadRequest,\n RequiredDataFromCollectionSlug,\n} from 'payload'\n\nimport { createOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n branch?: string\n data: RequiredDataFromCollectionSlug<TSlug>\n draft: boolean\n locale?: string\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport function createResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n if (args.locale) {\n context.req.locale = args.locale\n }\n\n const result = await createOperation({\n collection,\n data: args.data,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(context.req, 'transactionID'),\n })\n\n return result\n }\n}\n"],"names":["createOperation","isolateObjectProperty","createResolver","collection","resolver","_","args","context","locale","req","result","data","depth","draft"],"mappings":"AAQA,SAASA,eAAe,EAAEC,qBAAqB,QAAQ,UAAS;AAiBhE,OAAO,SAASC,eACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAID,KAAKE,MAAM,EAAE;YACfD,QAAQE,GAAG,CAACD,MAAM,GAAGF,KAAKE,MAAM;QAClC;QAEA,MAAME,SAAS,MAAMV,gBAAgB;YACnCG;YACAQ,MAAML,KAAKK,IAAI;YACfC,OAAO;YACPC,OAAOP,KAAKO,KAAK;YACjBJ,KAAKR,sBAAsBM,QAAQE,GAAG,EAAE;QAC1C;QAEA,OAAOC;IACT;AACF"}
@@ -1,5 +1,6 @@
1
1
  import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload';
2
2
  export type Resolver<TSlug extends CollectionSlug> = (_: unknown, args: {
3
+ branch?: string;
3
4
  draft: boolean;
4
5
  fallbackLocale?: string;
5
6
  id: number | string;
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMjG,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,cAAc,EAC5D,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CAqCjB"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMjG,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,cAAc,EAC5D,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CA8CjB"}
@@ -1,4 +1,4 @@
1
- import { deleteByIDOperation, isolateObjectProperty } from 'payload';
1
+ import { deleteByIDOperation, isolateObjectProperty, resetBranchState } from 'payload';
2
2
  export function getDeleteResolver(collection) {
3
3
  return async function resolver(_, args, context) {
4
4
  let { req } = context;
@@ -8,6 +8,16 @@ export function getDeleteResolver(collection) {
8
8
  req = isolateObjectProperty(req, 'fallbackLocale');
9
9
  req.locale = args.locale || locale;
10
10
  req.fallbackLocale = args.fallbackLocale || fallbackLocale;
11
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
12
+ // operation reads. Branch state is memoized per request, so a field that names its own
13
+ // branch gets its own copy of that state rather than the previous field's.
14
+ if (args.branch && args.branch !== req.branch) {
15
+ req.branch = args.branch;
16
+ req.context = {
17
+ ...req.context
18
+ };
19
+ resetBranchState(req);
20
+ }
11
21
  if (!req.query) {
12
22
  req.query = {};
13
23
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/delete.ts"],"sourcesContent":["import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload'\n\nimport { deleteByIDOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n draft: boolean\n fallbackLocale?: string\n id: number | string\n locale?: string\n trash?: boolean\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport function getDeleteResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n if (!req.query) {\n req.query = {}\n }\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n context.req = req\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n req: isolateObjectProperty(req, 'transactionID'),\n trash: args.trash,\n }\n\n const result = await deleteByIDOperation(options)\n\n return result\n }\n}\n"],"names":["deleteByIDOperation","isolateObjectProperty","getDeleteResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","query","draft","undefined","String","options","id","depth","trash","result"],"mappings":"AAEA,SAASA,mBAAmB,EAAEC,qBAAqB,QAAQ,UAAS;AAkBpE,OAAO,SAASC,kBACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMP,sBAAsBO,KAAK;QACjCA,MAAMP,sBAAsBO,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAC5C,IAAI,CAACF,IAAIG,KAAK,EAAE;YACdH,IAAIG,KAAK,GAAG,CAAC;QACf;QAEA,MAAMC,QACJ,AAACN,KAAKM,KAAK,IAAIJ,IAAIG,KAAK,EAAEC,UAAU,UAChC,QACAJ,IAAIG,KAAK,EAAEC,UAAU,SACnB,OACAC;QACR,IAAI,OAAOD,UAAU,WAAW;YAC9BJ,IAAIG,KAAK,CAACC,KAAK,GAAGE,OAAOF;QAC3B;QAEAL,QAAQC,GAAG,GAAGA;QAEd,MAAMO,UAAU;YACdC,IAAIV,KAAKU,EAAE;YACXb;YACAc,OAAO;YACPT,KAAKP,sBAAsBO,KAAK;YAChCU,OAAOZ,KAAKY,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMnB,oBAAoBe;QAEzC,OAAOI;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/delete.ts"],"sourcesContent":["import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload'\n\nimport { deleteByIDOperation, isolateObjectProperty, resetBranchState } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n branch?: string\n draft: boolean\n fallbackLocale?: string\n id: number | string\n locale?: string\n trash?: boolean\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport function getDeleteResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n\n // Same shape as `locale`: an argument on the field, resolved onto the request the\n // operation reads. Branch state is memoized per request, so a field that names its own\n // branch gets its own copy of that state rather than the previous field's.\n if (args.branch && args.branch !== req.branch) {\n req.branch = args.branch\n req.context = { ...req.context }\n resetBranchState(req)\n }\n if (!req.query) {\n req.query = {}\n }\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n context.req = req\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n req: isolateObjectProperty(req, 'transactionID'),\n trash: args.trash,\n }\n\n const result = await deleteByIDOperation(options)\n\n return result\n }\n}\n"],"names":["deleteByIDOperation","isolateObjectProperty","resetBranchState","getDeleteResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","branch","query","draft","undefined","String","options","id","depth","trash","result"],"mappings":"AAEA,SAASA,mBAAmB,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAmBtF,OAAO,SAASC,kBACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMR,sBAAsBQ,KAAK;QACjCA,MAAMR,sBAAsBQ,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAE5C,kFAAkF;QAClF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAIJ,KAAKK,MAAM,IAAIL,KAAKK,MAAM,KAAKH,IAAIG,MAAM,EAAE;YAC7CH,IAAIG,MAAM,GAAGL,KAAKK,MAAM;YACxBH,IAAID,OAAO,GAAG;gBAAE,GAAGC,IAAID,OAAO;YAAC;YAC/BN,iBAAiBO;QACnB;QACA,IAAI,CAACA,IAAII,KAAK,EAAE;YACdJ,IAAII,KAAK,GAAG,CAAC;QACf;QAEA,MAAMC,QACJ,AAACP,KAAKO,KAAK,IAAIL,IAAII,KAAK,EAAEC,UAAU,UAChC,QACAL,IAAII,KAAK,EAAEC,UAAU,SACnB,OACAC;QACR,IAAI,OAAOD,UAAU,WAAW;YAC9BL,IAAII,KAAK,CAACC,KAAK,GAAGE,OAAOF;QAC3B;QAEAN,QAAQC,GAAG,GAAGA;QAEd,MAAMQ,UAAU;YACdC,IAAIX,KAAKW,EAAE;YACXd;YACAe,OAAO;YACPV,KAAKR,sBAAsBQ,KAAK;YAChCW,OAAOb,KAAKa,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMrB,oBAAoBiB;QAEzC,OAAOI;IACT;AACF"}
@@ -1,5 +1,6 @@
1
1
  import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload';
2
2
  export type Resolver<TData> = (_: unknown, args: {
3
+ branch?: string;
3
4
  data: TData;
4
5
  draft: boolean;
5
6
  fallbackLocale?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMjG,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC5B,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,KAAK,CAAC,CAAA;AAEnB,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,cAAc,EAC5D,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAoBzC"}
1
+ {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMjG,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC5B,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,KAAK,CAAC,CAAA;AAEnB,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,cAAc,EAC5D,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CA6BzC"}
@@ -1,4 +1,4 @@
1
- import { duplicateOperation, isolateObjectProperty } from 'payload';
1
+ import { duplicateOperation, isolateObjectProperty, resetBranchState } from 'payload';
2
2
  export function duplicateResolver(collection) {
3
3
  return async function resolver(_, args, context) {
4
4
  const { req } = context;
@@ -6,6 +6,16 @@ export function duplicateResolver(collection) {
6
6
  const fallbackLocale = req.fallbackLocale;
7
7
  req.locale = args.locale || locale;
8
8
  req.fallbackLocale = args.fallbackLocale || fallbackLocale;
9
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
10
+ // operation reads. Branch state is memoized per request, so a field that names its own
11
+ // branch gets its own copy of that state rather than the previous field's.
12
+ if (args.branch && args.branch !== req.branch) {
13
+ req.branch = args.branch;
14
+ req.context = {
15
+ ...req.context
16
+ };
17
+ resetBranchState(req);
18
+ }
9
19
  context.req = req;
10
20
  const result = await duplicateOperation({
11
21
  id: args.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/duplicate.ts"],"sourcesContent":["import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload'\n\nimport { duplicateOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TData> = (\n _: unknown,\n args: {\n data: TData\n draft: boolean\n fallbackLocale?: string\n id: string\n locale?: string\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<TData>\n\nexport function duplicateResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<DataFromCollectionSlug<TSlug>> {\n return async function resolver(_, args, context: Context) {\n const { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n context.req = req\n\n const result = await duplicateOperation({\n id: args.id,\n collection,\n data: args.data,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(req, 'transactionID'),\n })\n\n return result\n }\n}\n"],"names":["duplicateOperation","isolateObjectProperty","duplicateResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","result","id","data","depth","draft"],"mappings":"AAEA,SAASA,kBAAkB,EAAEC,qBAAqB,QAAQ,UAAS;AAkBnE,OAAO,SAASC,kBACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,MAAM,EAAEC,GAAG,EAAE,GAAGD;QAChB,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAC5CH,QAAQC,GAAG,GAAGA;QAEd,MAAMG,SAAS,MAAMX,mBAAmB;YACtCY,IAAIN,KAAKM,EAAE;YACXT;YACAU,MAAMP,KAAKO,IAAI;YACfC,OAAO;YACPC,OAAOT,KAAKS,KAAK;YACjBP,KAAKP,sBAAsBO,KAAK;QAClC;QAEA,OAAOG;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/duplicate.ts"],"sourcesContent":["import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload'\n\nimport { duplicateOperation, isolateObjectProperty, resetBranchState } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TData> = (\n _: unknown,\n args: {\n branch?: string\n data: TData\n draft: boolean\n fallbackLocale?: string\n id: string\n locale?: string\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<TData>\n\nexport function duplicateResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<DataFromCollectionSlug<TSlug>> {\n return async function resolver(_, args, context: Context) {\n const { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n\n // Same shape as `locale`: an argument on the field, resolved onto the request the\n // operation reads. Branch state is memoized per request, so a field that names its own\n // branch gets its own copy of that state rather than the previous field's.\n if (args.branch && args.branch !== req.branch) {\n req.branch = args.branch\n req.context = { ...req.context }\n resetBranchState(req)\n }\n context.req = req\n\n const result = await duplicateOperation({\n id: args.id,\n collection,\n data: args.data,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(req, 'transactionID'),\n })\n\n return result\n }\n}\n"],"names":["duplicateOperation","isolateObjectProperty","resetBranchState","duplicateResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","branch","result","id","data","depth","draft"],"mappings":"AAEA,SAASA,kBAAkB,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAmBrF,OAAO,SAASC,kBACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,MAAM,EAAEC,GAAG,EAAE,GAAGD;QAChB,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAE5C,kFAAkF;QAClF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAIJ,KAAKK,MAAM,IAAIL,KAAKK,MAAM,KAAKH,IAAIG,MAAM,EAAE;YAC7CH,IAAIG,MAAM,GAAGL,KAAKK,MAAM;YACxBH,IAAID,OAAO,GAAG;gBAAE,GAAGC,IAAID,OAAO;YAAC;YAC/BN,iBAAiBO;QACnB;QACAD,QAAQC,GAAG,GAAGA;QAEd,MAAMI,SAAS,MAAMb,mBAAmB;YACtCc,IAAIP,KAAKO,EAAE;YACXV;YACAW,MAAMR,KAAKQ,IAAI;YACfC,OAAO;YACPC,OAAOV,KAAKU,KAAK;YACjBR,KAAKR,sBAAsBQ,KAAK;QAClC;QAEA,OAAOI;IACT;AACF"}
@@ -2,6 +2,7 @@ import type { GraphQLResolveInfo } from 'graphql';
2
2
  import type { Collection, PaginatedDocs, Where } from 'payload';
3
3
  import type { Context } from '../types.js';
4
4
  export type Resolver = (_: unknown, args: {
5
+ branch?: string;
5
6
  data: Record<string, unknown>;
6
7
  draft: boolean;
7
8
  fallbackLocale?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KAErB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AAEhC,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CA0C7D"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KAErB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AAEhC,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAqD7D"}
@@ -1,8 +1,10 @@
1
- import { findOperation, isolateObjectProperty } from 'payload';
1
+ import { findOperation, isolateObjectProperty, resetBranchState } from 'payload';
2
2
  import { buildSelectForCollectionMany } from '../../utilities/select.js';
3
3
  export function findResolver(collection) {
4
4
  return async function resolver(_, args, context, info) {
5
5
  const req = context.req = isolateObjectProperty(context.req, [
6
+ 'branch',
7
+ 'context',
6
8
  'locale',
7
9
  'fallbackLocale',
8
10
  'transactionID'
@@ -10,6 +12,16 @@ export function findResolver(collection) {
10
12
  const select = context.select = args.select ? buildSelectForCollectionMany(info) : undefined;
11
13
  req.locale = args.locale || req.locale;
12
14
  req.fallbackLocale = args.fallbackLocale || req.fallbackLocale;
15
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
16
+ // operation reads. Branch state is memoized per request, so a field that names its own
17
+ // branch gets its own copy of that state rather than the previous field's.
18
+ if (args.branch && args.branch !== req.branch) {
19
+ req.branch = args.branch;
20
+ req.context = {
21
+ ...req.context
22
+ };
23
+ resetBranchState(req);
24
+ }
13
25
  req.query = req.query || {};
14
26
  const draft = args.draft ?? req.query?.draft === 'false' ? false : req.query?.draft === 'true' ? true : undefined;
15
27
  if (typeof draft === 'boolean') {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/find.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, PaginatedDocs, Where } from 'payload'\n\nimport { findOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollectionMany } from '../../utilities/select.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n data: Record<string, unknown>\n draft: boolean\n fallbackLocale?: string\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n select?: boolean\n sort?: string\n trash?: boolean\n where?: Where\n },\n context: Context,\n info: GraphQLResolveInfo,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<PaginatedDocs<any>>\n\nexport function findResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context, info) {\n const req = (context.req = isolateObjectProperty(context.req, [\n 'locale',\n 'fallbackLocale',\n 'transactionID',\n ]))\n const select = (context.select = args.select ? buildSelectForCollectionMany(info) : undefined)\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n req.query = req.query || {}\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n const { sort } = args\n\n const options = {\n collection,\n depth: 0,\n draft: args.draft,\n limit: args.limit,\n page: args.page,\n pagination: args.pagination,\n req,\n select,\n sort: sort && typeof sort === 'string' ? sort.split(',') : undefined,\n trash: args.trash,\n where: args.where,\n }\n\n const result = await findOperation(options)\n return result\n }\n}\n"],"names":["findOperation","isolateObjectProperty","buildSelectForCollectionMany","findResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","query","draft","String","sort","options","depth","limit","page","pagination","split","trash","where","result"],"mappings":"AAGA,SAASA,aAAa,EAAEC,qBAAqB,QAAQ,UAAS;AAI9D,SAASC,4BAA4B,QAAQ,4BAA2B;AAsBxE,OAAO,SAASC,aAAaC,UAAsB;IACjD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAOF,QAAQE,GAAG,GAAGT,sBAAsBO,QAAQE,GAAG,EAAE;YAC5D;YACA;YACA;SACD;QACD,MAAMC,SAAUH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,6BAA6BO,QAAQG;QAEpFF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAC9DJ,IAAIK,KAAK,GAAGL,IAAIK,KAAK,IAAI,CAAC;QAE1B,MAAMC,QACJ,AAACT,KAAKS,KAAK,IAAIN,IAAIK,KAAK,EAAEC,UAAU,UAChC,QACAN,IAAIK,KAAK,EAAEC,UAAU,SACnB,OACAJ;QACR,IAAI,OAAOI,UAAU,WAAW;YAC9BN,IAAIK,KAAK,CAACC,KAAK,GAAGC,OAAOD;QAC3B;QAEA,MAAM,EAAEE,IAAI,EAAE,GAAGX;QAEjB,MAAMY,UAAU;YACdf;YACAgB,OAAO;YACPJ,OAAOT,KAAKS,KAAK;YACjBK,OAAOd,KAAKc,KAAK;YACjBC,MAAMf,KAAKe,IAAI;YACfC,YAAYhB,KAAKgB,UAAU;YAC3Bb;YACAC;YACAO,MAAMA,QAAQ,OAAOA,SAAS,WAAWA,KAAKM,KAAK,CAAC,OAAOZ;YAC3Da,OAAOlB,KAAKkB,KAAK;YACjBC,OAAOnB,KAAKmB,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAM3B,cAAcmB;QACnC,OAAOQ;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/find.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, PaginatedDocs, Where } from 'payload'\n\nimport { findOperation, isolateObjectProperty, resetBranchState } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollectionMany } from '../../utilities/select.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n branch?: string\n data: Record<string, unknown>\n draft: boolean\n fallbackLocale?: string\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n select?: boolean\n sort?: string\n trash?: boolean\n where?: Where\n },\n context: Context,\n info: GraphQLResolveInfo,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<PaginatedDocs<any>>\n\nexport function findResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context, info) {\n const req = (context.req = isolateObjectProperty(context.req, [\n 'branch',\n 'context',\n 'locale',\n 'fallbackLocale',\n 'transactionID',\n ]))\n const select = (context.select = args.select ? buildSelectForCollectionMany(info) : undefined)\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n\n // Same shape as `locale`: an argument on the field, resolved onto the request the\n // operation reads. Branch state is memoized per request, so a field that names its own\n // branch gets its own copy of that state rather than the previous field's.\n if (args.branch && args.branch !== req.branch) {\n req.branch = args.branch\n req.context = { ...req.context }\n resetBranchState(req)\n }\n req.query = req.query || {}\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n const { sort } = args\n\n const options = {\n collection,\n depth: 0,\n draft: args.draft,\n limit: args.limit,\n page: args.page,\n pagination: args.pagination,\n req,\n select,\n sort: sort && typeof sort === 'string' ? sort.split(',') : undefined,\n trash: args.trash,\n where: args.where,\n }\n\n const result = await findOperation(options)\n return result\n }\n}\n"],"names":["findOperation","isolateObjectProperty","resetBranchState","buildSelectForCollectionMany","findResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","branch","query","draft","String","sort","options","depth","limit","page","pagination","split","trash","where","result"],"mappings":"AAGA,SAASA,aAAa,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAIhF,SAASC,4BAA4B,QAAQ,4BAA2B;AAuBxE,OAAO,SAASC,aAAaC,UAAsB;IACjD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAOF,QAAQE,GAAG,GAAGV,sBAAsBQ,QAAQE,GAAG,EAAE;YAC5D;YACA;YACA;YACA;YACA;SACD;QACD,MAAMC,SAAUH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,6BAA6BO,QAAQG;QAEpFF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAE9D,kFAAkF;QAClF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAIP,KAAKQ,MAAM,IAAIR,KAAKQ,MAAM,KAAKL,IAAIK,MAAM,EAAE;YAC7CL,IAAIK,MAAM,GAAGR,KAAKQ,MAAM;YACxBL,IAAIF,OAAO,GAAG;gBAAE,GAAGE,IAAIF,OAAO;YAAC;YAC/BP,iBAAiBS;QACnB;QACAA,IAAIM,KAAK,GAAGN,IAAIM,KAAK,IAAI,CAAC;QAE1B,MAAMC,QACJ,AAACV,KAAKU,KAAK,IAAIP,IAAIM,KAAK,EAAEC,UAAU,UAChC,QACAP,IAAIM,KAAK,EAAEC,UAAU,SACnB,OACAL;QACR,IAAI,OAAOK,UAAU,WAAW;YAC9BP,IAAIM,KAAK,CAACC,KAAK,GAAGC,OAAOD;QAC3B;QAEA,MAAM,EAAEE,IAAI,EAAE,GAAGZ;QAEjB,MAAMa,UAAU;YACdhB;YACAiB,OAAO;YACPJ,OAAOV,KAAKU,KAAK;YACjBK,OAAOf,KAAKe,KAAK;YACjBC,MAAMhB,KAAKgB,IAAI;YACfC,YAAYjB,KAAKiB,UAAU;YAC3Bd;YACAC;YACAQ,MAAMA,QAAQ,OAAOA,SAAS,WAAWA,KAAKM,KAAK,CAAC,OAAOb;YAC3Dc,OAAOnB,KAAKmB,KAAK;YACjBC,OAAOpB,KAAKoB,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAM7B,cAAcqB;QACnC,OAAOQ;IACT;AACF"}
@@ -2,6 +2,7 @@ import type { GraphQLResolveInfo } from 'graphql';
2
2
  import type { Collection, CollectionSlug, DataFromCollectionSlug } from 'payload';
3
3
  import type { Context } from '../types.js';
4
4
  export type Resolver<TData> = (_: unknown, args: {
5
+ branch?: string;
5
6
  draft: boolean;
6
7
  fallbackLocale?: string;
7
8
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"findByID.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/findByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAIjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC5B,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,KAAK,CAAC,CAAA;AAEnB,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,cAAc,EAC3D,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAgCzC"}
1
+ {"version":3,"file":"findByID.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/findByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAIjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC5B,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,KAAK,CAAC,CAAA;AAEnB,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,cAAc,EAC3D,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CA+CzC"}
@@ -1,8 +1,10 @@
1
- import { findByIDOperation, isolateObjectProperty } from 'payload';
1
+ import { findByIDOperation, isolateObjectProperty, resetBranchState } from 'payload';
2
2
  import { buildSelectForCollection } from '../../utilities/select.js';
3
3
  export function findByIDResolver(collection) {
4
4
  return async function resolver(_, args, context, info) {
5
5
  const req = context.req = isolateObjectProperty(context.req, [
6
+ 'branch',
7
+ 'context',
6
8
  'locale',
7
9
  'fallbackLocale',
8
10
  'transactionID'
@@ -10,6 +12,16 @@ export function findByIDResolver(collection) {
10
12
  const select = context.select = args.select ? buildSelectForCollection(info) : undefined;
11
13
  req.locale = args.locale || req.locale;
12
14
  req.fallbackLocale = args.fallbackLocale || req.fallbackLocale;
15
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
16
+ // operation reads. Branch state is memoized per request, so a field that names its own
17
+ // branch gets its own copy of that state rather than the previous field's.
18
+ if (args.branch && args.branch !== req.branch) {
19
+ req.branch = args.branch;
20
+ req.context = {
21
+ ...req.context
22
+ };
23
+ resetBranchState(req);
24
+ }
13
25
  req.query = req.query || {};
14
26
  const draft = args.draft ?? req.query?.draft === 'false' ? false : req.query?.draft === 'true' ? true : undefined;
15
27
  if (typeof draft === 'boolean') {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/findByID.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, CollectionSlug, DataFromCollectionSlug } from 'payload'\n\nimport { findByIDOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollection } from '../../utilities/select.js'\n\nexport type Resolver<TData> = (\n _: unknown,\n args: {\n draft: boolean\n fallbackLocale?: string\n id: string\n locale?: string\n select?: boolean\n trash?: boolean\n },\n context: Context,\n info: GraphQLResolveInfo,\n) => Promise<TData>\n\nexport function findByIDResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<DataFromCollectionSlug<TSlug>> {\n return async function resolver(_, args, context, info) {\n const req = context.req = isolateObjectProperty(context.req, ['locale', 'fallbackLocale', 'transactionID'])\n const select = context.select = args.select ? buildSelectForCollection(info) : undefined\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n req.query = req.query || {}\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n draft: args.draft,\n req,\n select,\n trash: args.trash,\n }\n\n const result = await findByIDOperation(options)\n return result\n }\n}\n"],"names":["findByIDOperation","isolateObjectProperty","buildSelectForCollection","findByIDResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","query","draft","String","options","id","depth","trash","result"],"mappings":"AAGA,SAASA,iBAAiB,EAAEC,qBAAqB,QAAQ,UAAS;AAIlE,SAASC,wBAAwB,QAAQ,4BAA2B;AAgBpE,OAAO,SAASC,iBACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAMF,QAAQE,GAAG,GAAGT,sBAAsBO,QAAQE,GAAG,EAAE;YAAC;YAAU;YAAkB;SAAgB;QAC1G,MAAMC,SAASH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,yBAAyBO,QAAQG;QAE/EF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAC9DJ,IAAIK,KAAK,GAAGL,IAAIK,KAAK,IAAI,CAAC;QAE1B,MAAMC,QACJ,AAACT,KAAKS,KAAK,IAAIN,IAAIK,KAAK,EAAEC,UAAU,UAChC,QACAN,IAAIK,KAAK,EAAEC,UAAU,SACnB,OACAJ;QACR,IAAI,OAAOI,UAAU,WAAW;YAC9BN,IAAIK,KAAK,CAACC,KAAK,GAAGC,OAAOD;QAC3B;QAEA,MAAME,UAAU;YACdC,IAAIZ,KAAKY,EAAE;YACXf;YACAgB,OAAO;YACPJ,OAAOT,KAAKS,KAAK;YACjBN;YACAC;YACAU,OAAOd,KAAKc,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMtB,kBAAkBkB;QACvC,OAAOI;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/findByID.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, CollectionSlug, DataFromCollectionSlug } from 'payload'\n\nimport { findByIDOperation, isolateObjectProperty, resetBranchState } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollection } from '../../utilities/select.js'\n\nexport type Resolver<TData> = (\n _: unknown,\n args: {\n branch?: string\n draft: boolean\n fallbackLocale?: string\n id: string\n locale?: string\n select?: boolean\n trash?: boolean\n },\n context: Context,\n info: GraphQLResolveInfo,\n) => Promise<TData>\n\nexport function findByIDResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<DataFromCollectionSlug<TSlug>> {\n return async function resolver(_, args, context, info) {\n const req = (context.req = isolateObjectProperty(context.req, [\n 'branch',\n 'context',\n 'locale',\n 'fallbackLocale',\n 'transactionID',\n ]))\n const select = (context.select = args.select ? buildSelectForCollection(info) : undefined)\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n\n // Same shape as `locale`: an argument on the field, resolved onto the request the\n // operation reads. Branch state is memoized per request, so a field that names its own\n // branch gets its own copy of that state rather than the previous field's.\n if (args.branch && args.branch !== req.branch) {\n req.branch = args.branch\n req.context = { ...req.context }\n resetBranchState(req)\n }\n req.query = req.query || {}\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n draft: args.draft,\n req,\n select,\n trash: args.trash,\n }\n\n const result = await findByIDOperation(options)\n return result\n }\n}\n"],"names":["findByIDOperation","isolateObjectProperty","resetBranchState","buildSelectForCollection","findByIDResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","branch","query","draft","String","options","id","depth","trash","result"],"mappings":"AAGA,SAASA,iBAAiB,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAIpF,SAASC,wBAAwB,QAAQ,4BAA2B;AAiBpE,OAAO,SAASC,iBACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAOF,QAAQE,GAAG,GAAGV,sBAAsBQ,QAAQE,GAAG,EAAE;YAC5D;YACA;YACA;YACA;YACA;SACD;QACD,MAAMC,SAAUH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,yBAAyBO,QAAQG;QAEhFF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAE9D,kFAAkF;QAClF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAIP,KAAKQ,MAAM,IAAIR,KAAKQ,MAAM,KAAKL,IAAIK,MAAM,EAAE;YAC7CL,IAAIK,MAAM,GAAGR,KAAKQ,MAAM;YACxBL,IAAIF,OAAO,GAAG;gBAAE,GAAGE,IAAIF,OAAO;YAAC;YAC/BP,iBAAiBS;QACnB;QACAA,IAAIM,KAAK,GAAGN,IAAIM,KAAK,IAAI,CAAC;QAE1B,MAAMC,QACJ,AAACV,KAAKU,KAAK,IAAIP,IAAIM,KAAK,EAAEC,UAAU,UAChC,QACAP,IAAIM,KAAK,EAAEC,UAAU,SACnB,OACAL;QACR,IAAI,OAAOK,UAAU,WAAW;YAC9BP,IAAIM,KAAK,CAACC,KAAK,GAAGC,OAAOD;QAC3B;QAEA,MAAME,UAAU;YACdC,IAAIb,KAAKa,EAAE;YACXhB;YACAiB,OAAO;YACPJ,OAAOV,KAAKU,KAAK;YACjBP;YACAC;YACAW,OAAOf,KAAKe,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMxB,kBAAkBoB;QACvC,OAAOI;IACT;AACF"}
@@ -2,6 +2,7 @@ import type { GraphQLResolveInfo } from 'graphql';
2
2
  import type { Collection, TypeWithID, TypeWithVersion } from 'payload';
3
3
  import type { Context } from '../types.js';
4
4
  export type Resolver<T extends TypeWithID = any> = (_: unknown, args: {
5
+ branch?: string;
5
6
  fallbackLocale?: string;
6
7
  id: number | string;
7
8
  locale?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/findVersionByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAItE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,IAAI,CACjD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhC,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAqBxE"}
1
+ {"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/findVersionByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAItE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,IAAI,CACjD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhC,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAoCxE"}
@@ -1,8 +1,10 @@
1
- import { findVersionByIDOperation, isolateObjectProperty } from 'payload';
1
+ import { findVersionByIDOperation, isolateObjectProperty, resetBranchState } from 'payload';
2
2
  import { buildSelectForCollection } from '../../utilities/select.js';
3
3
  export function findVersionByIDResolver(collection) {
4
4
  return async function resolver(_, args, context, info) {
5
5
  const req = context.req = isolateObjectProperty(context.req, [
6
+ 'branch',
7
+ 'context',
6
8
  'locale',
7
9
  'fallbackLocale',
8
10
  'transactionID'
@@ -10,6 +12,16 @@ export function findVersionByIDResolver(collection) {
10
12
  const select = context.select = args.select ? buildSelectForCollection(info) : undefined;
11
13
  req.locale = args.locale || req.locale;
12
14
  req.fallbackLocale = args.fallbackLocale || req.fallbackLocale;
15
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
16
+ // operation reads. Branch state is memoized per request, so a field that names its own
17
+ // branch gets its own copy of that state rather than the previous field's.
18
+ if (args.branch && args.branch !== req.branch) {
19
+ req.branch = args.branch;
20
+ req.context = {
21
+ ...req.context
22
+ };
23
+ resetBranchState(req);
24
+ }
13
25
  req.query = req.query || {};
14
26
  const options = {
15
27
  id: args.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/findVersionByID.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, TypeWithID, TypeWithVersion } from 'payload'\n\nimport { findVersionByIDOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollection } from '../../utilities/select.js'\n\nexport type Resolver<T extends TypeWithID = any> = (\n _: unknown,\n args: {\n fallbackLocale?: string\n id: number | string\n locale?: string\n select?: boolean\n trash?: boolean\n },\n context: Context,\n info: GraphQLResolveInfo,\n) => Promise<TypeWithVersion<T>>\n\nexport function findVersionByIDResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context, info) {\n const req = context.req = isolateObjectProperty(context.req, ['locale', 'fallbackLocale', 'transactionID'])\n const select = context.select = args.select ? buildSelectForCollection(info) : undefined\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n req.query = req.query || {}\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n req,\n select,\n trash: args.trash,\n }\n\n const result = await findVersionByIDOperation(options)\n return result\n }\n}\n"],"names":["findVersionByIDOperation","isolateObjectProperty","buildSelectForCollection","findVersionByIDResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","query","options","id","depth","trash","result"],"mappings":"AAGA,SAASA,wBAAwB,EAAEC,qBAAqB,QAAQ,UAAS;AAIzE,SAASC,wBAAwB,QAAQ,4BAA2B;AAepE,OAAO,SAASC,wBAAwBC,UAAsB;IAC5D,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAMF,QAAQE,GAAG,GAAGT,sBAAsBO,QAAQE,GAAG,EAAE;YAAC;YAAU;YAAkB;SAAgB;QAC1G,MAAMC,SAASH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,yBAAyBO,QAAQG;QAE/EF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAC9DJ,IAAIK,KAAK,GAAGL,IAAIK,KAAK,IAAI,CAAC;QAE1B,MAAMC,UAAU;YACdC,IAAIV,KAAKU,EAAE;YACXb;YACAc,OAAO;YACPR;YACAC;YACAQ,OAAOZ,KAAKY,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMpB,yBAAyBgB;QAC9C,OAAOI;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/findVersionByID.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, TypeWithID, TypeWithVersion } from 'payload'\n\nimport { findVersionByIDOperation, isolateObjectProperty, resetBranchState } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollection } from '../../utilities/select.js'\n\nexport type Resolver<T extends TypeWithID = any> = (\n _: unknown,\n args: {\n branch?: string\n fallbackLocale?: string\n id: number | string\n locale?: string\n select?: boolean\n trash?: boolean\n },\n context: Context,\n info: GraphQLResolveInfo,\n) => Promise<TypeWithVersion<T>>\n\nexport function findVersionByIDResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context, info) {\n const req = (context.req = isolateObjectProperty(context.req, [\n 'branch',\n 'context',\n 'locale',\n 'fallbackLocale',\n 'transactionID',\n ]))\n const select = (context.select = args.select ? buildSelectForCollection(info) : undefined)\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n\n // Same shape as `locale`: an argument on the field, resolved onto the request the\n // operation reads. Branch state is memoized per request, so a field that names its own\n // branch gets its own copy of that state rather than the previous field's.\n if (args.branch && args.branch !== req.branch) {\n req.branch = args.branch\n req.context = { ...req.context }\n resetBranchState(req)\n }\n req.query = req.query || {}\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n req,\n select,\n trash: args.trash,\n }\n\n const result = await findVersionByIDOperation(options)\n return result\n }\n}\n"],"names":["findVersionByIDOperation","isolateObjectProperty","resetBranchState","buildSelectForCollection","findVersionByIDResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","branch","query","options","id","depth","trash","result"],"mappings":"AAGA,SAASA,wBAAwB,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAI3F,SAASC,wBAAwB,QAAQ,4BAA2B;AAgBpE,OAAO,SAASC,wBAAwBC,UAAsB;IAC5D,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAOF,QAAQE,GAAG,GAAGV,sBAAsBQ,QAAQE,GAAG,EAAE;YAC5D;YACA;YACA;YACA;YACA;SACD;QACD,MAAMC,SAAUH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,yBAAyBO,QAAQG;QAEhFF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAE9D,kFAAkF;QAClF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAIP,KAAKQ,MAAM,IAAIR,KAAKQ,MAAM,KAAKL,IAAIK,MAAM,EAAE;YAC7CL,IAAIK,MAAM,GAAGR,KAAKQ,MAAM;YACxBL,IAAIF,OAAO,GAAG;gBAAE,GAAGE,IAAIF,OAAO;YAAC;YAC/BP,iBAAiBS;QACnB;QACAA,IAAIM,KAAK,GAAGN,IAAIM,KAAK,IAAI,CAAC;QAE1B,MAAMC,UAAU;YACdC,IAAIX,KAAKW,EAAE;YACXd;YACAe,OAAO;YACPT;YACAC;YACAS,OAAOb,KAAKa,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMtB,yBAAyBkB;QAC9C,OAAOI;IACT;AACF"}
@@ -2,6 +2,7 @@ import type { GraphQLResolveInfo } from 'graphql';
2
2
  import type { Collection, PaginatedDocs, Where } from 'payload';
3
3
  import type { Context } from '../types.js';
4
4
  export type Resolver = (_: unknown, args: {
5
+ branch?: string;
5
6
  draft?: boolean;
6
7
  fallbackLocale?: string;
7
8
  limit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/findVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;CACb,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AAEhC,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAyCrE"}
1
+ {"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/findVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;CACb,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AAEhC,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAoDrE"}
@@ -1,8 +1,10 @@
1
- import { findVersionsOperation, isolateObjectProperty } from 'payload';
1
+ import { findVersionsOperation, isolateObjectProperty, resetBranchState } from 'payload';
2
2
  import { buildSelectForCollectionMany } from '../../utilities/select.js';
3
3
  export function findVersionsResolver(collection) {
4
4
  return async function resolver(_, args, context, info) {
5
5
  const req = context.req = isolateObjectProperty(context.req, [
6
+ 'branch',
7
+ 'context',
6
8
  'locale',
7
9
  'fallbackLocale',
8
10
  'transactionID'
@@ -10,6 +12,16 @@ export function findVersionsResolver(collection) {
10
12
  const select = context.select = args.select ? buildSelectForCollectionMany(info) : undefined;
11
13
  req.locale = args.locale || req.locale;
12
14
  req.fallbackLocale = args.fallbackLocale || req.fallbackLocale;
15
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
16
+ // operation reads. Branch state is memoized per request, so a field that names its own
17
+ // branch gets its own copy of that state rather than the previous field's.
18
+ if (args.branch && args.branch !== req.branch) {
19
+ req.branch = args.branch;
20
+ req.context = {
21
+ ...req.context
22
+ };
23
+ resetBranchState(req);
24
+ }
13
25
  req.query = req.query || {};
14
26
  const draft = args.draft ?? req.query?.draft === 'false' ? false : req.query?.draft === 'true' ? true : undefined;
15
27
  if (typeof draft === 'boolean') {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/findVersions.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, PaginatedDocs, Where } from 'payload'\n\nimport { findVersionsOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollectionMany } from '../../utilities/select.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n draft?: boolean\n fallbackLocale?: string\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n select?: boolean\n sort?: string\n trash?: boolean\n where: Where\n },\n context: Context,\n info: GraphQLResolveInfo,\n) => Promise<PaginatedDocs<any>>\n\nexport function findVersionsResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context, info) {\n const req = (context.req = isolateObjectProperty(context.req, [\n 'locale',\n 'fallbackLocale',\n 'transactionID',\n ]))\n const select = (context.select = args.select ? buildSelectForCollectionMany(info) : undefined)\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n req.query = req.query || {}\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n const { sort } = args\n\n const options = {\n collection,\n depth: 0,\n limit: args.limit,\n page: args.page,\n pagination: args.pagination,\n req,\n select,\n sort: sort && typeof sort === 'string' ? sort.split(',') : undefined,\n trash: args.trash,\n where: args.where,\n }\n\n const result = await findVersionsOperation(options)\n return result\n }\n}\n"],"names":["findVersionsOperation","isolateObjectProperty","buildSelectForCollectionMany","findVersionsResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","query","draft","String","sort","options","depth","limit","page","pagination","split","trash","where","result"],"mappings":"AAGA,SAASA,qBAAqB,EAAEC,qBAAqB,QAAQ,UAAS;AAItE,SAASC,4BAA4B,QAAQ,4BAA2B;AAoBxE,OAAO,SAASC,qBAAqBC,UAAsB;IACzD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAOF,QAAQE,GAAG,GAAGT,sBAAsBO,QAAQE,GAAG,EAAE;YAC5D;YACA;YACA;SACD;QACD,MAAMC,SAAUH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,6BAA6BO,QAAQG;QAEpFF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAC9DJ,IAAIK,KAAK,GAAGL,IAAIK,KAAK,IAAI,CAAC;QAE1B,MAAMC,QACJ,AAACT,KAAKS,KAAK,IAAIN,IAAIK,KAAK,EAAEC,UAAU,UAChC,QACAN,IAAIK,KAAK,EAAEC,UAAU,SACnB,OACAJ;QACR,IAAI,OAAOI,UAAU,WAAW;YAC9BN,IAAIK,KAAK,CAACC,KAAK,GAAGC,OAAOD;QAC3B;QAEA,MAAM,EAAEE,IAAI,EAAE,GAAGX;QAEjB,MAAMY,UAAU;YACdf;YACAgB,OAAO;YACPC,OAAOd,KAAKc,KAAK;YACjBC,MAAMf,KAAKe,IAAI;YACfC,YAAYhB,KAAKgB,UAAU;YAC3Bb;YACAC;YACAO,MAAMA,QAAQ,OAAOA,SAAS,WAAWA,KAAKM,KAAK,CAAC,OAAOZ;YAC3Da,OAAOlB,KAAKkB,KAAK;YACjBC,OAAOnB,KAAKmB,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAM3B,sBAAsBmB;QAC3C,OAAOQ;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/findVersions.ts"],"sourcesContent":["import type { GraphQLResolveInfo } from 'graphql'\nimport type { Collection, PaginatedDocs, Where } from 'payload'\n\nimport { findVersionsOperation, isolateObjectProperty, resetBranchState } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport { buildSelectForCollectionMany } from '../../utilities/select.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n branch?: string\n draft?: boolean\n fallbackLocale?: string\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n select?: boolean\n sort?: string\n trash?: boolean\n where: Where\n },\n context: Context,\n info: GraphQLResolveInfo,\n) => Promise<PaginatedDocs<any>>\n\nexport function findVersionsResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context, info) {\n const req = (context.req = isolateObjectProperty(context.req, [\n 'branch',\n 'context',\n 'locale',\n 'fallbackLocale',\n 'transactionID',\n ]))\n const select = (context.select = args.select ? buildSelectForCollectionMany(info) : undefined)\n\n req.locale = args.locale || req.locale\n req.fallbackLocale = args.fallbackLocale || req.fallbackLocale\n\n // Same shape as `locale`: an argument on the field, resolved onto the request the\n // operation reads. Branch state is memoized per request, so a field that names its own\n // branch gets its own copy of that state rather than the previous field's.\n if (args.branch && args.branch !== req.branch) {\n req.branch = args.branch\n req.context = { ...req.context }\n resetBranchState(req)\n }\n req.query = req.query || {}\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n const { sort } = args\n\n const options = {\n collection,\n depth: 0,\n limit: args.limit,\n page: args.page,\n pagination: args.pagination,\n req,\n select,\n sort: sort && typeof sort === 'string' ? sort.split(',') : undefined,\n trash: args.trash,\n where: args.where,\n }\n\n const result = await findVersionsOperation(options)\n return result\n }\n}\n"],"names":["findVersionsOperation","isolateObjectProperty","resetBranchState","buildSelectForCollectionMany","findVersionsResolver","collection","resolver","_","args","context","info","req","select","undefined","locale","fallbackLocale","branch","query","draft","String","sort","options","depth","limit","page","pagination","split","trash","where","result"],"mappings":"AAGA,SAASA,qBAAqB,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAIxF,SAASC,4BAA4B,QAAQ,4BAA2B;AAqBxE,OAAO,SAASC,qBAAqBC,UAAsB;IACzD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,IAAI;QACnD,MAAMC,MAAOF,QAAQE,GAAG,GAAGV,sBAAsBQ,QAAQE,GAAG,EAAE;YAC5D;YACA;YACA;YACA;YACA;SACD;QACD,MAAMC,SAAUH,QAAQG,MAAM,GAAGJ,KAAKI,MAAM,GAAGT,6BAA6BO,QAAQG;QAEpFF,IAAIG,MAAM,GAAGN,KAAKM,MAAM,IAAIH,IAAIG,MAAM;QACtCH,IAAII,cAAc,GAAGP,KAAKO,cAAc,IAAIJ,IAAII,cAAc;QAE9D,kFAAkF;QAClF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAIP,KAAKQ,MAAM,IAAIR,KAAKQ,MAAM,KAAKL,IAAIK,MAAM,EAAE;YAC7CL,IAAIK,MAAM,GAAGR,KAAKQ,MAAM;YACxBL,IAAIF,OAAO,GAAG;gBAAE,GAAGE,IAAIF,OAAO;YAAC;YAC/BP,iBAAiBS;QACnB;QACAA,IAAIM,KAAK,GAAGN,IAAIM,KAAK,IAAI,CAAC;QAE1B,MAAMC,QACJ,AAACV,KAAKU,KAAK,IAAIP,IAAIM,KAAK,EAAEC,UAAU,UAChC,QACAP,IAAIM,KAAK,EAAEC,UAAU,SACnB,OACAL;QACR,IAAI,OAAOK,UAAU,WAAW;YAC9BP,IAAIM,KAAK,CAACC,KAAK,GAAGC,OAAOD;QAC3B;QAEA,MAAM,EAAEE,IAAI,EAAE,GAAGZ;QAEjB,MAAMa,UAAU;YACdhB;YACAiB,OAAO;YACPC,OAAOf,KAAKe,KAAK;YACjBC,MAAMhB,KAAKgB,IAAI;YACfC,YAAYjB,KAAKiB,UAAU;YAC3Bd;YACAC;YACAQ,MAAMA,QAAQ,OAAOA,SAAS,WAAWA,KAAKM,KAAK,CAAC,OAAOb;YAC3Dc,OAAOnB,KAAKmB,KAAK;YACjBC,OAAOpB,KAAKoB,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAM7B,sBAAsBqB;QAC3C,OAAOQ;IACT;AACF"}
@@ -1,5 +1,6 @@
1
1
  import type { Collection, PayloadRequest } from 'payload';
2
2
  export type Resolver = (_: unknown, args: {
3
+ branch?: string;
3
4
  draft?: boolean;
4
5
  id: number | string;
5
6
  }, context: {
@@ -1 +1 @@
1
- {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/restoreVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMzD,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAevE"}
1
+ {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/restoreVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMzD,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAevE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/restoreVersion.ts"],"sourcesContent":["import type { Collection, PayloadRequest } from 'payload'\n\nimport { isolateObjectProperty, restoreVersionOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n draft?: boolean\n id: number | string\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<Document>\n\nexport function restoreVersionResolver(collection: Collection): Resolver {\n async function resolver(_, args, context: Context) {\n const options = {\n id: args.id,\n collection,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await restoreVersionOperation(options)\n return result\n }\n\n return resolver\n}\n"],"names":["isolateObjectProperty","restoreVersionOperation","restoreVersionResolver","collection","resolver","_","args","context","options","id","depth","draft","req","result"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,uBAAuB,QAAQ,UAAS;AAexE,OAAO,SAASC,uBAAuBC,UAAsB;IAC3D,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdC,IAAIH,KAAKG,EAAE;YACXN;YACAO,OAAO;YACPC,OAAOL,KAAKK,KAAK;YACjBC,KAAKZ,sBAAsBO,QAAQK,GAAG,EAAE;QAC1C;QAEA,MAAMC,SAAS,MAAMZ,wBAAwBO;QAC7C,OAAOK;IACT;IAEA,OAAOT;AACT"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/restoreVersion.ts"],"sourcesContent":["import type { Collection, PayloadRequest } from 'payload'\n\nimport { isolateObjectProperty, restoreVersionOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n branch?: string\n draft?: boolean\n id: number | string\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<Document>\n\nexport function restoreVersionResolver(collection: Collection): Resolver {\n async function resolver(_, args, context: Context) {\n const options = {\n id: args.id,\n collection,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await restoreVersionOperation(options)\n return result\n }\n\n return resolver\n}\n"],"names":["isolateObjectProperty","restoreVersionOperation","restoreVersionResolver","collection","resolver","_","args","context","options","id","depth","draft","req","result"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,uBAAuB,QAAQ,UAAS;AAgBxE,OAAO,SAASC,uBAAuBC,UAAsB;IAC3D,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdC,IAAIH,KAAKG,EAAE;YACXN;YACAO,OAAO;YACPC,OAAOL,KAAKK,KAAK;YACjBC,KAAKZ,sBAAsBO,QAAQK,GAAG,EAAE;QAC1C;QAEA,MAAMC,SAAS,MAAMZ,wBAAwBO;QAC7C,OAAOK;IACT;IAEA,OAAOT;AACT"}
@@ -1,6 +1,7 @@
1
1
  import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload';
2
2
  export type Resolver<TSlug extends CollectionSlug> = (_: unknown, args: {
3
3
  autosave: boolean;
4
+ branch?: string;
4
5
  data: DataFromCollectionSlug<TSlug>;
5
6
  draft: boolean;
6
7
  fallbackLocale?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMjG,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,wBAAgB,cAAc,CAAC,KAAK,SAAS,cAAc,EACzD,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CAwCjB"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMjG,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,cAAc,CAAA;CACpB,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,wBAAgB,cAAc,CAAC,KAAK,SAAS,cAAc,EACzD,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CAiDjB"}
@@ -1,4 +1,4 @@
1
- import { isolateObjectProperty, updateByIDOperation } from 'payload';
1
+ import { isolateObjectProperty, resetBranchState, updateByIDOperation } from 'payload';
2
2
  export function updateResolver(collection) {
3
3
  return async function resolver(_, args, context) {
4
4
  let { req } = context;
@@ -8,6 +8,16 @@ export function updateResolver(collection) {
8
8
  req = isolateObjectProperty(req, 'fallbackLocale');
9
9
  req.locale = args.locale || locale;
10
10
  req.fallbackLocale = args.fallbackLocale || fallbackLocale;
11
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
12
+ // operation reads. Branch state is memoized per request, so a field that names its own
13
+ // branch gets its own copy of that state rather than the previous field's.
14
+ if (args.branch && args.branch !== req.branch) {
15
+ req.branch = args.branch;
16
+ req.context = {
17
+ ...req.context
18
+ };
19
+ resetBranchState(req);
20
+ }
11
21
  if (!req.query) {
12
22
  req.query = {};
13
23
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/resolvers/collections/update.ts"],"sourcesContent":["import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload'\n\nimport { isolateObjectProperty, updateByIDOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n autosave: boolean\n data: DataFromCollectionSlug<TSlug>\n draft: boolean\n fallbackLocale?: string\n id: number | string\n locale?: string\n trash?: boolean\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport function updateResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n if (!req.query) {\n req.query = {}\n }\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n context.req = req\n\n const options = {\n id: args.id,\n autosave: args.autosave,\n collection,\n data: args.data as any,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(req, 'transactionID'),\n trash: args.trash,\n }\n\n const result = await updateByIDOperation<TSlug>(options)\n\n return result\n }\n}\n"],"names":["isolateObjectProperty","updateByIDOperation","updateResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","query","draft","undefined","String","options","id","autosave","data","depth","trash","result"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,mBAAmB,QAAQ,UAAS;AAoBpE,OAAO,SAASC,eACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMR,sBAAsBQ,KAAK;QACjCA,MAAMR,sBAAsBQ,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAC5C,IAAI,CAACF,IAAIG,KAAK,EAAE;YACdH,IAAIG,KAAK,GAAG,CAAC;QACf;QAEA,MAAMC,QACJ,AAACN,KAAKM,KAAK,IAAIJ,IAAIG,KAAK,EAAEC,UAAU,UAChC,QACAJ,IAAIG,KAAK,EAAEC,UAAU,SACnB,OACAC;QACR,IAAI,OAAOD,UAAU,WAAW;YAC9BJ,IAAIG,KAAK,CAACC,KAAK,GAAGE,OAAOF;QAC3B;QAEAL,QAAQC,GAAG,GAAGA;QAEd,MAAMO,UAAU;YACdC,IAAIV,KAAKU,EAAE;YACXC,UAAUX,KAAKW,QAAQ;YACvBd;YACAe,MAAMZ,KAAKY,IAAI;YACfC,OAAO;YACPP,OAAON,KAAKM,KAAK;YACjBJ,KAAKR,sBAAsBQ,KAAK;YAChCY,OAAOd,KAAKc,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMpB,oBAA2Bc;QAEhD,OAAOM;IACT;AACF"}
1
+ {"version":3,"sources":["../../../src/resolvers/collections/update.ts"],"sourcesContent":["import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequest } from 'payload'\n\nimport { isolateObjectProperty, resetBranchState, updateByIDOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n autosave: boolean\n branch?: string\n data: DataFromCollectionSlug<TSlug>\n draft: boolean\n fallbackLocale?: string\n id: number | string\n locale?: string\n trash?: boolean\n },\n context: {\n req: PayloadRequest\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport function updateResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n\n // Same shape as `locale`: an argument on the field, resolved onto the request the\n // operation reads. Branch state is memoized per request, so a field that names its own\n // branch gets its own copy of that state rather than the previous field's.\n if (args.branch && args.branch !== req.branch) {\n req.branch = args.branch\n req.context = { ...req.context }\n resetBranchState(req)\n }\n if (!req.query) {\n req.query = {}\n }\n\n const draft: boolean =\n (args.draft ?? req.query?.draft === 'false')\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') {\n req.query.draft = String(draft)\n }\n\n context.req = req\n\n const options = {\n id: args.id,\n autosave: args.autosave,\n collection,\n data: args.data as any,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(req, 'transactionID'),\n trash: args.trash,\n }\n\n const result = await updateByIDOperation<TSlug>(options)\n\n return result\n }\n}\n"],"names":["isolateObjectProperty","resetBranchState","updateByIDOperation","updateResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","branch","query","draft","undefined","String","options","id","autosave","data","depth","trash","result"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,gBAAgB,EAAEC,mBAAmB,QAAQ,UAAS;AAqBtF,OAAO,SAASC,eACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMT,sBAAsBS,KAAK;QACjCA,MAAMT,sBAAsBS,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAE5C,kFAAkF;QAClF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAIJ,KAAKK,MAAM,IAAIL,KAAKK,MAAM,KAAKH,IAAIG,MAAM,EAAE;YAC7CH,IAAIG,MAAM,GAAGL,KAAKK,MAAM;YACxBH,IAAID,OAAO,GAAG;gBAAE,GAAGC,IAAID,OAAO;YAAC;YAC/BP,iBAAiBQ;QACnB;QACA,IAAI,CAACA,IAAII,KAAK,EAAE;YACdJ,IAAII,KAAK,GAAG,CAAC;QACf;QAEA,MAAMC,QACJ,AAACP,KAAKO,KAAK,IAAIL,IAAII,KAAK,EAAEC,UAAU,UAChC,QACAL,IAAII,KAAK,EAAEC,UAAU,SACnB,OACAC;QACR,IAAI,OAAOD,UAAU,WAAW;YAC9BL,IAAII,KAAK,CAACC,KAAK,GAAGE,OAAOF;QAC3B;QAEAN,QAAQC,GAAG,GAAGA;QAEd,MAAMQ,UAAU;YACdC,IAAIX,KAAKW,EAAE;YACXC,UAAUZ,KAAKY,QAAQ;YACvBf;YACAgB,MAAMb,KAAKa,IAAI;YACfC,OAAO;YACPP,OAAOP,KAAKO,KAAK;YACjBL,KAAKT,sBAAsBS,KAAK;YAChCa,OAAOf,KAAKe,KAAK;QACnB;QAEA,MAAMC,SAAS,MAAMrB,oBAA2Be;QAEhD,OAAOM;IACT;AACF"}
@@ -2,6 +2,7 @@ import type { GraphQLResolveInfo } from 'graphql';
2
2
  import type { Document, SanitizedGlobalConfig } from 'payload';
3
3
  import type { Context } from '../types.js';
4
4
  export type Resolver = (_: unknown, args: {
5
+ branch?: string;
5
6
  draft?: boolean;
6
7
  fallbackLocale?: string;
7
8
  id: number | string;
@@ -1 +1 @@
1
- {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/resolvers/globals/findOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,wBAAgB,OAAO,CAAC,YAAY,EAAE,qBAAqB,GAAG,QAAQ,CAsBrE"}
1
+ {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/resolvers/globals/findOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,MAAM,MAAM,QAAQ,GAAG,CACrB,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,EACD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,wBAAgB,OAAO,CAAC,YAAY,EAAE,qBAAqB,GAAG,QAAQ,CAqCrE"}
@@ -1,8 +1,10 @@
1
- import { findOneOperation, isolateObjectProperty } from 'payload';
1
+ import { findOneOperation, isolateObjectProperty, resetBranchState } from 'payload';
2
2
  import { buildSelectForCollection } from '../../utilities/select.js';
3
3
  export function findOne(globalConfig) {
4
4
  return async function resolver(_, args, context, info) {
5
5
  const req = context.req = isolateObjectProperty(context.req, [
6
+ 'branch',
7
+ 'context',
6
8
  'locale',
7
9
  'fallbackLocale',
8
10
  'transactionID'
@@ -11,6 +13,16 @@ export function findOne(globalConfig) {
11
13
  const { slug } = globalConfig;
12
14
  req.locale = args.locale || req.locale;
13
15
  req.fallbackLocale = args.fallbackLocale || req.fallbackLocale;
16
+ // Same shape as `locale`: an argument on the field, resolved onto the request the
17
+ // operation reads. Branch state is memoized per request, so a field that names its own
18
+ // branch gets its own copy of that state rather than the previous field's.
19
+ if (args.branch && args.branch !== req.branch) {
20
+ req.branch = args.branch;
21
+ req.context = {
22
+ ...req.context
23
+ };
24
+ resetBranchState(req);
25
+ }
14
26
  req.query = req.query || {};
15
27
  const options = {
16
28
  slug,