@payloadcms/drizzle 3.59.0-canary.5 → 3.59.0-canary.6

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 +1 @@
1
- {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,SAAS,CAAA;AAU3F,eAAO,MAAM,YAAY,EAAE,YAoH1B,CAAA"}
1
+ {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,SAAS,CAAA;AAU3F,eAAO,MAAM,YAAY,EAAE,YAsH1B,CAAA"}
@@ -53,7 +53,9 @@ export const findDistinct = async function(args) {
53
53
  where
54
54
  });
55
55
  const field = getFieldByPath({
56
+ config: this.payload.config,
56
57
  fields: collectionConfig.flattenedFields,
58
+ includeRelationships: true,
57
59
  path: args.field
58
60
  })?.field;
59
61
  if (field && 'relationTo' in field && Array.isArray(field.relationTo)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/findDistinct.ts"],"sourcesContent":["import { type FindDistinct, getFieldByPath, type SanitizedCollectionConfig } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, GenericColumn } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { DistinctSymbol } from './utilities/rawConstraint.js'\n\nexport const findDistinct: FindDistinct = async function (this: DrizzleAdapter, args) {\n const db = await getTransaction(this, args.req)\n const collectionConfig: SanitizedCollectionConfig =\n this.payload.collections[args.collection].config\n const page = args.page || 1\n const offset = args.limit ? (page - 1) * args.limit : undefined\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const { joins, orderBy, selectFields, where } = buildQuery({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n sort: args.sort ?? args.field,\n tableName,\n where: {\n and: [\n args.where ?? {},\n {\n [args.field]: {\n equals: DistinctSymbol,\n },\n },\n ],\n },\n })\n\n orderBy.pop()\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n forceRun: true,\n joins,\n query: ({ query }) => {\n query = query.orderBy(() => orderBy.map(({ column, order }) => order(column)))\n\n if (args.limit) {\n if (offset) {\n query = query.offset(offset)\n }\n\n query = query.limit(args.limit)\n }\n\n return query\n },\n selectFields: {\n _selected: selectFields['_selected'],\n ...(orderBy.length &&\n (orderBy[0].column === selectFields['_selected'] ? {} : { _order: orderBy[0]?.column })),\n } as Record<string, GenericColumn>,\n tableName,\n where,\n })\n\n const field = getFieldByPath({\n fields: collectionConfig.flattenedFields,\n path: args.field,\n })?.field\n\n if (field && 'relationTo' in field && Array.isArray(field.relationTo)) {\n for (const row of selectDistinctResult as any) {\n const json = JSON.parse(row._selected)\n const relationTo = Object.keys(json).find((each) => Boolean(json[each]))\n const value = json[relationTo]\n\n if (!value) {\n row._selected = null\n } else {\n row._selected = { relationTo, value }\n }\n }\n }\n\n const values = selectDistinctResult.map((each) => ({\n [args.field]: (each as Record<string, any>)._selected,\n }))\n\n if (args.limit) {\n const totalDocs = await this.countDistinct({\n column: selectFields['_selected'],\n db,\n joins,\n tableName,\n where,\n })\n\n const totalPages = Math.ceil(totalDocs / args.limit)\n const hasPrevPage = page > 1\n const hasNextPage = totalPages > page\n const pagingCounter = (page - 1) * args.limit + 1\n\n return {\n hasNextPage,\n hasPrevPage,\n limit: args.limit,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n values,\n }\n }\n\n return {\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n page: 1,\n pagingCounter: 1,\n totalDocs: values.length,\n totalPages: 1,\n values,\n }\n}\n"],"names":["getFieldByPath","toSnakeCase","buildQuery","selectDistinct","getTransaction","DistinctSymbol","findDistinct","args","db","req","collectionConfig","payload","collections","collection","config","page","offset","limit","undefined","tableName","tableNameMap","get","slug","joins","orderBy","selectFields","where","adapter","fields","flattenedFields","locale","sort","field","and","equals","pop","selectDistinctResult","forceRun","query","map","column","order","_selected","length","_order","path","Array","isArray","relationTo","row","json","JSON","parse","Object","keys","find","each","Boolean","value","values","totalDocs","countDistinct","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","nextPage","prevPage"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/findDistinct.ts"],"sourcesContent":["import { type FindDistinct, getFieldByPath, type SanitizedCollectionConfig } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, GenericColumn } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { DistinctSymbol } from './utilities/rawConstraint.js'\n\nexport const findDistinct: FindDistinct = async function (this: DrizzleAdapter, args) {\n const db = await getTransaction(this, args.req)\n const collectionConfig: SanitizedCollectionConfig =\n this.payload.collections[args.collection].config\n const page = args.page || 1\n const offset = args.limit ? (page - 1) * args.limit : undefined\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const { joins, orderBy, selectFields, where } = buildQuery({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n sort: args.sort ?? args.field,\n tableName,\n where: {\n and: [\n args.where ?? {},\n {\n [args.field]: {\n equals: DistinctSymbol,\n },\n },\n ],\n },\n })\n\n orderBy.pop()\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n forceRun: true,\n joins,\n query: ({ query }) => {\n query = query.orderBy(() => orderBy.map(({ column, order }) => order(column)))\n\n if (args.limit) {\n if (offset) {\n query = query.offset(offset)\n }\n\n query = query.limit(args.limit)\n }\n\n return query\n },\n selectFields: {\n _selected: selectFields['_selected'],\n ...(orderBy.length &&\n (orderBy[0].column === selectFields['_selected'] ? {} : { _order: orderBy[0]?.column })),\n } as Record<string, GenericColumn>,\n tableName,\n where,\n })\n\n const field = getFieldByPath({\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n includeRelationships: true,\n path: args.field,\n })?.field\n\n if (field && 'relationTo' in field && Array.isArray(field.relationTo)) {\n for (const row of selectDistinctResult as any) {\n const json = JSON.parse(row._selected)\n const relationTo = Object.keys(json).find((each) => Boolean(json[each]))\n const value = json[relationTo]\n\n if (!value) {\n row._selected = null\n } else {\n row._selected = { relationTo, value }\n }\n }\n }\n\n const values = selectDistinctResult.map((each) => ({\n [args.field]: (each as Record<string, any>)._selected,\n }))\n\n if (args.limit) {\n const totalDocs = await this.countDistinct({\n column: selectFields['_selected'],\n db,\n joins,\n tableName,\n where,\n })\n\n const totalPages = Math.ceil(totalDocs / args.limit)\n const hasPrevPage = page > 1\n const hasNextPage = totalPages > page\n const pagingCounter = (page - 1) * args.limit + 1\n\n return {\n hasNextPage,\n hasPrevPage,\n limit: args.limit,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n values,\n }\n }\n\n return {\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n page: 1,\n pagingCounter: 1,\n totalDocs: values.length,\n totalPages: 1,\n values,\n }\n}\n"],"names":["getFieldByPath","toSnakeCase","buildQuery","selectDistinct","getTransaction","DistinctSymbol","findDistinct","args","db","req","collectionConfig","payload","collections","collection","config","page","offset","limit","undefined","tableName","tableNameMap","get","slug","joins","orderBy","selectFields","where","adapter","fields","flattenedFields","locale","sort","field","and","equals","pop","selectDistinctResult","forceRun","query","map","column","order","_selected","length","_order","includeRelationships","path","Array","isArray","relationTo","row","json","JSON","parse","Object","keys","find","each","Boolean","value","values","totalDocs","countDistinct","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","nextPage","prevPage"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/drizzle",
3
- "version": "3.59.0-canary.5",
3
+ "version": "3.59.0-canary.6",
4
4
  "description": "A library of shared functions used by different payload database adapters",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -60,10 +60,10 @@
60
60
  "@types/pg": "8.10.2",
61
61
  "@types/to-snake-case": "1.0.0",
62
62
  "@payloadcms/eslint-config": "3.28.0",
63
- "payload": "3.59.0-canary.5"
63
+ "payload": "3.59.0-canary.6"
64
64
  },
65
65
  "peerDependencies": {
66
- "payload": "3.59.0-canary.5"
66
+ "payload": "3.59.0-canary.6"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "pnpm build:swc && pnpm build:types",