@payloadcms/drizzle 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ee5d8bd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/count.d.ts.map +1 -1
- package/dist/count.js +3 -25
- package/dist/count.js.map +1 -1
- package/dist/countVersions.d.ts.map +1 -1
- package/dist/countVersions.js +4 -28
- package/dist/countVersions.js.map +1 -1
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js +2 -15
- package/dist/createGlobalVersion.js.map +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +1 -12
- package/dist/createVersion.js.map +1 -1
- package/dist/deleteOne.d.ts.map +1 -1
- package/dist/deleteOne.js +1 -18
- package/dist/deleteOne.js.map +1 -1
- package/dist/find/buildFindManyArgs.d.ts +2 -3
- package/dist/find/buildFindManyArgs.d.ts.map +1 -1
- package/dist/find/buildFindManyArgs.js +1 -2
- package/dist/find/buildFindManyArgs.js.map +1 -1
- package/dist/find/buildPolymorphicJoinQuery.d.ts +4 -4
- package/dist/find/buildPolymorphicJoinQuery.d.ts.map +1 -1
- package/dist/find/buildPolymorphicJoinQuery.js +26 -32
- package/dist/find/buildPolymorphicJoinQuery.js.map +1 -1
- package/dist/find/buildPolymorphicJoinWhere.js +1 -1
- package/dist/find/buildPolymorphicJoinWhere.js.map +1 -1
- package/dist/find/createPolymorphicJoinWherePlan.d.ts +2 -1
- package/dist/find/createPolymorphicJoinWherePlan.d.ts.map +1 -1
- package/dist/find/createPolymorphicJoinWherePlan.js +14 -5
- package/dist/find/createPolymorphicJoinWherePlan.js.map +1 -1
- package/dist/find/findMany.d.ts +1 -6
- package/dist/find/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +3 -16
- package/dist/find/findMany.js.map +1 -1
- package/dist/find/traverseFields.d.ts +2 -3
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +8 -54
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +4 -32
- package/dist/find.js.map +1 -1
- package/dist/findDistinct.d.ts.map +1 -1
- package/dist/findDistinct.js +8 -107
- package/dist/findDistinct.js.map +1 -1
- package/dist/findGlobal.d.ts.map +1 -1
- package/dist/findGlobal.js +5 -22
- package/dist/findGlobal.js.map +1 -1
- package/dist/findGlobalVersions.js +3 -8
- package/dist/findGlobalVersions.js.map +1 -1
- package/dist/findOne.d.ts +1 -1
- package/dist/findOne.d.ts.map +1 -1
- package/dist/findOne.js +3 -30
- package/dist/findOne.js.map +1 -1
- package/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +5 -32
- package/dist/findVersions.js.map +1 -1
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -10
- package/dist/index.js.map +1 -1
- package/dist/postgres/insert.d.ts.map +1 -1
- package/dist/postgres/insert.js +2 -4
- package/dist/postgres/insert.js.map +1 -1
- package/dist/postgres/types.d.ts +0 -4
- package/dist/postgres/types.d.ts.map +1 -1
- package/dist/postgres/types.js.map +1 -1
- package/dist/queries/buildAndOrConditions.d.ts +2 -3
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +1 -2
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/buildOrderBy.d.ts +2 -3
- package/dist/queries/buildOrderBy.d.ts.map +1 -1
- package/dist/queries/buildOrderBy.js +1 -2
- package/dist/queries/buildOrderBy.js.map +1 -1
- package/dist/queries/buildQuery.d.ts +2 -3
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +2 -4
- package/dist/queries/buildQuery.js.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +2 -3
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +27 -166
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/parseParams.d.ts +2 -3
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +1 -4
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queryDrafts.d.ts.map +1 -1
- package/dist/queryDrafts.js +4 -23
- package/dist/queryDrafts.js.map +1 -1
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +20 -23
- package/dist/schema/build.js.map +1 -1
- package/dist/sqlite/execute.js.map +1 -1
- package/dist/sqlite/insert.d.ts.map +1 -1
- package/dist/sqlite/insert.js +3 -5
- package/dist/sqlite/insert.js.map +1 -1
- package/dist/sqlite/types.d.ts +0 -4
- package/dist/sqlite/types.d.ts.map +1 -1
- package/dist/sqlite/types.js.map +1 -1
- package/dist/transactions/beginTransaction.d.ts.map +1 -1
- package/dist/transactions/beginTransaction.js +5 -13
- package/dist/transactions/beginTransaction.js.map +1 -1
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +5 -1
- package/dist/transactions/commitTransaction.js.map +1 -1
- package/dist/transform/read/traverseFields.js.map +1 -1
- package/dist/transform/write/array.d.ts +2 -3
- package/dist/transform/write/array.d.ts.map +1 -1
- package/dist/transform/write/array.js +1 -2
- package/dist/transform/write/array.js.map +1 -1
- package/dist/transform/write/blocks.d.ts +2 -3
- package/dist/transform/write/blocks.d.ts.map +1 -1
- package/dist/transform/write/blocks.js +1 -2
- package/dist/transform/write/blocks.js.map +1 -1
- package/dist/transform/write/index.d.ts.map +1 -1
- package/dist/transform/write/index.js +0 -2
- package/dist/transform/write/index.js.map +1 -1
- package/dist/transform/write/traverseFields.d.ts +1 -2
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +6 -32
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/transform/write/types.d.ts +0 -7
- package/dist/transform/write/types.d.ts.map +1 -1
- package/dist/transform/write/types.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/updateGlobal.d.ts +1 -5
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +4 -96
- package/dist/updateGlobal.js.map +1 -1
- package/dist/updateOne.d.ts.map +1 -1
- package/dist/updateOne.js +5 -47
- package/dist/updateOne.js.map +1 -1
- package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
- package/dist/upsertRow/deleteExistingRowsByPath.js +12 -17
- package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -1
- package/dist/upsertRow/index.d.ts +1 -1
- package/dist/upsertRow/index.d.ts.map +1 -1
- package/dist/upsertRow/index.js +42 -132
- package/dist/upsertRow/index.js.map +1 -1
- package/dist/upsertRow/types.d.ts +0 -3
- package/dist/upsertRow/types.d.ts.map +1 -1
- package/dist/upsertRow/types.js.map +1 -1
- package/dist/utilities/blocksToJsonMigrator.d.ts.map +1 -1
- package/dist/utilities/blocksToJsonMigrator.js +6 -17
- package/dist/utilities/blocksToJsonMigrator.js.map +1 -1
- package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
- package/dist/utilities/createSchemaGenerator.js +7 -12
- package/dist/utilities/createSchemaGenerator.js.map +1 -1
- package/dist/utilities/executeSchemaHooks.js +1 -1
- package/dist/utilities/executeSchemaHooks.js.map +1 -1
- package/dist/utilities/formatGeneratedFile.d.ts +10 -0
- package/dist/utilities/formatGeneratedFile.d.ts.map +1 -0
- package/dist/utilities/formatGeneratedFile.js +58 -0
- package/dist/utilities/formatGeneratedFile.js.map +1 -0
- package/dist/utilities/getTransaction.js.map +1 -1
- package/package.json +16 -19
- package/dist/deleteBranchGlobal.d.ts +0 -10
- package/dist/deleteBranchGlobal.d.ts.map +0 -1
- package/dist/deleteBranchGlobal.js +0 -27
- package/dist/deleteBranchGlobal.js.map +0 -1
- package/dist/queries/buildBranchVisibility.d.ts +0 -11
- package/dist/queries/buildBranchVisibility.d.ts.map +0 -1
- package/dist/queries/buildBranchVisibility.js +0 -48
- package/dist/queries/buildBranchVisibility.js.map +0 -1
- package/dist/upsertBranchGlobalChange.d.ts +0 -3
- package/dist/upsertBranchGlobalChange.d.ts.map +0 -1
- package/dist/upsertBranchGlobalChange.js +0 -35
- package/dist/upsertBranchGlobalChange.js.map +0 -1
package/dist/count.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../src/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../src/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,SAAS,CAAA;AAS/D,eAAO,MAAM,KAAK,EAAE,KA0BnB,CAAA"}
|
package/dist/count.js
CHANGED
|
@@ -1,38 +1,16 @@
|
|
|
1
|
-
import { and } from 'drizzle-orm';
|
|
2
|
-
import { resolveBranchQuery, resolveBranchReadState, rewriteBranchIDs } from 'payload';
|
|
3
1
|
import toSnakeCase from 'to-snake-case';
|
|
4
|
-
import { buildBranchVisibility } from './queries/buildBranchVisibility.js';
|
|
5
2
|
import { buildQuery } from './queries/buildQuery.js';
|
|
6
3
|
import { getTransaction } from './utilities/getTransaction.js';
|
|
7
|
-
export const count = async function count({
|
|
4
|
+
export const count = async function count({ collection, locale, req, where: whereArg }) {
|
|
8
5
|
const collectionConfig = this.payload.collections[collection].config;
|
|
9
6
|
const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug));
|
|
10
|
-
const
|
|
11
|
-
branch,
|
|
12
|
-
collectionSlug: collectionConfig.slug,
|
|
13
|
-
req
|
|
14
|
-
});
|
|
15
|
-
const branchedWhere = branchReadState.useBranching ? rewriteBranchIDs(whereArg) : await resolveBranchQuery({
|
|
16
|
-
branch,
|
|
17
|
-
collectionSlug: collectionConfig.slug,
|
|
18
|
-
req,
|
|
19
|
-
where: whereArg
|
|
20
|
-
});
|
|
21
|
-
const { joins, where: queryWhere } = buildQuery({
|
|
7
|
+
const { joins, where } = buildQuery({
|
|
22
8
|
adapter: this,
|
|
23
9
|
fields: collectionConfig.flattenedFields,
|
|
24
10
|
locale,
|
|
25
|
-
req,
|
|
26
11
|
tableName,
|
|
27
|
-
where:
|
|
12
|
+
where: whereArg
|
|
28
13
|
});
|
|
29
|
-
const branchVisibilityWhere = branchReadState.useBranching ? buildBranchVisibility({
|
|
30
|
-
adapter: this,
|
|
31
|
-
branch: branchReadState.branch,
|
|
32
|
-
collectionSlug: collectionConfig.slug,
|
|
33
|
-
table: this.tables[tableName]
|
|
34
|
-
}) : undefined;
|
|
35
|
-
const where = branchVisibilityWhere ? and(queryWhere, branchVisibilityWhere) : queryWhere;
|
|
36
14
|
const db = await getTransaction(this, req);
|
|
37
15
|
const countResult = await this.countDistinct({
|
|
38
16
|
db,
|
package/dist/count.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/count.ts"],"sourcesContent":["import type { Count, SanitizedCollectionConfig } from 'payload'\n\nimport
|
|
1
|
+
{"version":3,"sources":["../src/count.ts"],"sourcesContent":["import type { Count, SanitizedCollectionConfig } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const count: Count = async function count(\n this: DrizzleAdapter,\n { collection, locale, req, where: whereArg },\n) {\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const { joins, where } = buildQuery({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n locale,\n tableName,\n where: whereArg,\n })\n\n const db = await getTransaction(this, req)\n\n const countResult = await this.countDistinct({\n db,\n joins,\n tableName,\n where,\n })\n\n return { totalDocs: countResult }\n}\n"],"names":["toSnakeCase","buildQuery","getTransaction","count","collection","locale","req","where","whereArg","collectionConfig","payload","collections","config","tableName","tableNameMap","get","slug","joins","adapter","fields","flattenedFields","db","countResult","countDistinct","totalDocs"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,QAAe,eAAeA,MAEzC,EAAEC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAE5C,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACP,WAAW,CAACQ,MAAM;IAE/F,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACf,YAAYS,iBAAiBO,IAAI;IAEzE,MAAM,EAAEC,KAAK,EAAEV,KAAK,EAAE,GAAGN,WAAW;QAClCiB,SAAS,IAAI;QACbC,QAAQV,iBAAiBW,eAAe;QACxCf;QACAQ;QACAN,OAAOC;IACT;IAEA,MAAMa,KAAK,MAAMnB,eAAe,IAAI,EAAEI;IAEtC,MAAMgB,cAAc,MAAM,IAAI,CAACC,aAAa,CAAC;QAC3CF;QACAJ;QACAJ;QACAN;IACF;IAEA,OAAO;QAAEiB,WAAWF;IAAY;AAClC,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countVersions.d.ts","sourceRoot":"","sources":["../src/countVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"countVersions.d.ts","sourceRoot":"","sources":["../src/countVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,SAAS,CAAA;AAUvE,eAAO,MAAM,aAAa,EAAE,aA8B3B,CAAA"}
|
package/dist/countVersions.js
CHANGED
|
@@ -1,42 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { buildVersionCollectionFields, resolveBranchReadState, resolveBranchVersionHistoryQuery, rewriteBranchVersionParents } from 'payload';
|
|
1
|
+
import { buildVersionCollectionFields } from 'payload';
|
|
3
2
|
import toSnakeCase from 'to-snake-case';
|
|
4
|
-
import { buildBranchVisibility } from './queries/buildBranchVisibility.js';
|
|
5
3
|
import { buildQuery } from './queries/buildQuery.js';
|
|
6
4
|
import { getTransaction } from './utilities/getTransaction.js';
|
|
7
|
-
export const countVersions = async function countVersions({
|
|
5
|
+
export const countVersions = async function countVersions({ collection, locale, req, where: whereArg }) {
|
|
8
6
|
const collectionConfig = this.payload.collections[collection].config;
|
|
9
7
|
const tableName = this.tableNameMap.get(`_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`);
|
|
10
8
|
const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true);
|
|
11
|
-
const
|
|
12
|
-
branch,
|
|
13
|
-
collectionSlug: collection,
|
|
14
|
-
req
|
|
15
|
-
});
|
|
16
|
-
// Shares the list's predicate so the count in the Versions tab can never
|
|
17
|
-
// disagree with the rows the Versions view actually renders.
|
|
18
|
-
const branchedWhere = branchReadState.useBranching ? rewriteBranchVersionParents(whereArg) : await resolveBranchVersionHistoryQuery({
|
|
19
|
-
branch,
|
|
20
|
-
collectionSlug: collection,
|
|
21
|
-
req,
|
|
22
|
-
where: whereArg
|
|
23
|
-
});
|
|
24
|
-
const { joins, where: queryWhere } = buildQuery({
|
|
9
|
+
const { joins, where } = buildQuery({
|
|
25
10
|
adapter: this,
|
|
26
11
|
fields,
|
|
27
12
|
locale,
|
|
28
13
|
tableName,
|
|
29
|
-
where:
|
|
14
|
+
where: whereArg
|
|
30
15
|
});
|
|
31
|
-
const branchVisibilityWhere = branchReadState.useBranching ? buildBranchVisibility({
|
|
32
|
-
adapter: this,
|
|
33
|
-
branch: branchReadState.branch,
|
|
34
|
-
canonicalIDExpression: undefined,
|
|
35
|
-
collectionSlug: collection,
|
|
36
|
-
mode: 'history',
|
|
37
|
-
table: this.tables[tableName]
|
|
38
|
-
}) : undefined;
|
|
39
|
-
const where = branchVisibilityWhere ? and(queryWhere, branchVisibilityWhere) : queryWhere;
|
|
40
16
|
const db = await getTransaction(this, req);
|
|
41
17
|
const countResult = await this.countDistinct({
|
|
42
18
|
db,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/countVersions.ts"],"sourcesContent":["import type { CountVersions, SanitizedCollectionConfig } from 'payload'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/countVersions.ts"],"sourcesContent":["import type { CountVersions, SanitizedCollectionConfig } from 'payload'\n\nimport { buildVersionCollectionFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const countVersions: CountVersions = async function countVersions(\n this: DrizzleAdapter,\n { collection, locale, req, where: whereArg },\n) {\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n\n const { joins, where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereArg,\n })\n\n const db = await getTransaction(this, req)\n\n const countResult = await this.countDistinct({\n db,\n joins,\n tableName,\n where,\n })\n\n return { totalDocs: countResult }\n}\n"],"names":["buildVersionCollectionFields","toSnakeCase","buildQuery","getTransaction","countVersions","collection","locale","req","where","whereArg","collectionConfig","payload","collections","config","tableName","tableNameMap","get","slug","versionsSuffix","fields","joins","adapter","db","countResult","countDistinct","totalDocs"],"mappings":"AAEA,SAASA,4BAA4B,QAAQ,UAAS;AACtD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,gBAA+B,eAAeA,cAEzD,EAAEC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAE5C,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACP,WAAW,CAACQ,MAAM;IAE/F,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEf,YAAYS,iBAAiBO,IAAI,IAAI,IAAI,CAACC,cAAc,EAAE;IAGhE,MAAMC,SAASnB,6BAA6B,IAAI,CAACW,OAAO,CAACE,MAAM,EAAEH,kBAAkB;IAEnF,MAAM,EAAEU,KAAK,EAAEZ,KAAK,EAAE,GAAGN,WAAW;QAClCmB,SAAS,IAAI;QACbF;QACAb;QACAQ;QACAN,OAAOC;IACT;IAEA,MAAMa,KAAK,MAAMnB,eAAe,IAAI,EAAEI;IAEtC,MAAMgB,cAAc,MAAM,IAAI,CAACC,aAAa,CAAC;QAC3CF;QACAF;QACAN;QACAN;IACF;IAEA,OAAO;QAAEiB,WAAWF;IAAY;AAClC,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGlobalVersion.d.ts","sourceRoot":"","sources":["../src/createGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAOnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACzE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,SAAS,EACT,UAAU,EACV,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,uBAAuB,GACzB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"createGlobalVersion.d.ts","sourceRoot":"","sources":["../src/createGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAOnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACzE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,SAAS,EACT,UAAU,EACV,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,uBAAuB,GACzB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA6C7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sql } from 'drizzle-orm';
|
|
2
|
-
import { buildVersionGlobalFields
|
|
2
|
+
import { buildVersionGlobalFields } from 'payload';
|
|
3
3
|
import { hasDraftsEnabled } from 'payload/shared';
|
|
4
4
|
import toSnakeCase from 'to-snake-case';
|
|
5
5
|
import { upsertRow } from './upsertRow/index.js';
|
|
@@ -9,17 +9,12 @@ export async function createGlobalVersion({ autosave, createdAt, globalSlug, pub
|
|
|
9
9
|
const global = this.payload.globals.config.find(({ slug })=>slug === globalSlug);
|
|
10
10
|
const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`);
|
|
11
11
|
const db = getPrimaryDb(this, await getTransaction(this, req));
|
|
12
|
-
const isBranchable = Boolean(req?.payload?.config?.branching?.branchableGlobals?.has(globalSlug));
|
|
13
|
-
const versionBranch = isBranchable ? resolveBranch(req) : MAIN_BRANCH;
|
|
14
12
|
const result = await upsertRow({
|
|
15
13
|
adapter: this,
|
|
16
14
|
data: {
|
|
17
15
|
autosave,
|
|
18
16
|
createdAt,
|
|
19
17
|
latest: true,
|
|
20
|
-
...isBranchable ? {
|
|
21
|
-
_branch: versionBranch
|
|
22
|
-
} : {},
|
|
23
18
|
publishedLocale,
|
|
24
19
|
snapshot,
|
|
25
20
|
updatedAt,
|
|
@@ -36,17 +31,9 @@ export async function createGlobalVersion({ autosave, createdAt, globalSlug, pub
|
|
|
36
31
|
});
|
|
37
32
|
const table = this.tables[tableName];
|
|
38
33
|
if (hasDraftsEnabled(global)) {
|
|
39
|
-
// Scoped by `_branch` when the global is branchable. Global versions have no
|
|
40
|
-
// `parent` to separate streams by — every version of a global shares one —
|
|
41
|
-
// so an unscoped clear would wipe main's latest flag from a branch.
|
|
42
34
|
await this.execute({
|
|
43
35
|
db,
|
|
44
|
-
sql:
|
|
45
|
-
UPDATE ${table}
|
|
46
|
-
SET latest = false
|
|
47
|
-
WHERE ${table.id} != ${result.id}
|
|
48
|
-
AND ${table._branch} = ${versionBranch};
|
|
49
|
-
` : sql`
|
|
36
|
+
sql: sql`
|
|
50
37
|
UPDATE ${table}
|
|
51
38
|
SET latest = false
|
|
52
39
|
WHERE ${table.id} != ${result.id};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createGlobalVersion.ts"],"sourcesContent":["import type { CreateGlobalVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionGlobalFields
|
|
1
|
+
{"version":3,"sources":["../src/createGlobalVersion.ts"],"sourcesContent":["import type { CreateGlobalVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionGlobalFields } from 'payload'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getPrimaryDb } from './utilities/getPrimaryDb.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createGlobalVersion<T extends JsonObject = JsonObject>(\n this: DrizzleAdapter,\n {\n autosave,\n createdAt,\n globalSlug,\n publishedLocale,\n req,\n returning,\n select,\n snapshot,\n updatedAt,\n versionData,\n }: CreateGlobalVersionArgs,\n): Promise<TypeWithVersion<T>> {\n const global = this.payload.globals.config.find(({ slug }) => slug === globalSlug)\n\n const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`)\n\n const db = getPrimaryDb(this, await getTransaction(this, req))\n\n const result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n data: {\n autosave,\n createdAt,\n latest: true,\n publishedLocale,\n snapshot,\n updatedAt,\n version: versionData,\n },\n db,\n fields: buildVersionGlobalFields(this.payload.config, global, true),\n globalSlug,\n ignoreResult: returning === false ? 'idOnly' : false,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n if (hasDraftsEnabled(global)) {\n await this.execute({\n db,\n sql: sql`\n UPDATE ${table}\n SET latest = false\n WHERE ${table.id} != ${result.id};\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionGlobalFields","hasDraftsEnabled","toSnakeCase","upsertRow","getPrimaryDb","getTransaction","createGlobalVersion","autosave","createdAt","globalSlug","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","global","payload","globals","config","find","slug","tableName","tableNameMap","get","versionsSuffix","db","result","adapter","data","latest","version","fields","ignoreResult","operation","table","tables","execute","id"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,wBAAwB,QAAQ,UAAS;AAClD,SAASC,gBAAgB,QAAQ,iBAAgB;AACjD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,oBAEpB,EACEC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACa;IAE1B,MAAMC,SAAS,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASb;IAEvE,MAAMc,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEvB,YAAYe,OAAOK,IAAI,IAAI,IAAI,CAACI,cAAc,EAAE;IAE5F,MAAMC,KAAKvB,aAAa,IAAI,EAAE,MAAMC,eAAe,IAAI,EAAEM;IAEzD,MAAMiB,SAAS,MAAMzB,UAA8B;QACjD0B,SAAS,IAAI;QACbC,MAAM;YACJvB;YACAC;YACAuB,QAAQ;YACRrB;YACAI;YACAC;YACAiB,SAAShB;QACX;QACAW;QACAM,QAAQjC,yBAAyB,IAAI,CAACkB,OAAO,CAACE,MAAM,EAAEH,QAAQ;QAC9DR;QACAyB,cAActB,cAAc,QAAQ,WAAW;QAC/CuB,WAAW;QACXxB;QACAE;QACAU;IACF;IAEA,MAAMa,QAAQ,IAAI,CAACC,MAAM,CAACd,UAAU;IACpC,IAAItB,iBAAiBgB,SAAS;QAC5B,MAAM,IAAI,CAACqB,OAAO,CAAC;YACjBX;YACA5B,KAAKA,GAAG,CAAC;iBACE,EAAEqC,MAAM;;gBAET,EAAEA,MAAMG,EAAE,CAAC,IAAI,EAAEX,OAAOW,EAAE,CAAC;QACnC,CAAC;QACL;IACF;IAEA,IAAI3B,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOgB;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createVersion.d.ts","sourceRoot":"","sources":["../src/createVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACnE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,cAAc,EACd,SAAS,EACT,MAAM,EACN,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"createVersion.d.ts","sourceRoot":"","sources":["../src/createVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACnE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,cAAc,EACd,SAAS,EACT,MAAM,EACN,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA8D7B"}
|
package/dist/createVersion.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sql } from 'drizzle-orm';
|
|
2
|
-
import { buildVersionCollectionFields
|
|
2
|
+
import { buildVersionCollectionFields } from 'payload';
|
|
3
3
|
import { hasDraftsEnabled } from 'payload/shared';
|
|
4
4
|
import toSnakeCase from 'to-snake-case';
|
|
5
5
|
import { upsertRow } from './upsertRow/index.js';
|
|
@@ -14,13 +14,6 @@ export async function createVersion({ autosave, collectionSlug, createdAt, paren
|
|
|
14
14
|
}
|
|
15
15
|
const defaultTableName = toSnakeCase(collection.slug);
|
|
16
16
|
const tableName = this.tableNameMap.get(`_${defaultTableName}${this.versionsSuffix}`);
|
|
17
|
-
const branched = await resolveBranchVersionParent({
|
|
18
|
-
collectionSlug,
|
|
19
|
-
parent,
|
|
20
|
-
req,
|
|
21
|
-
versionData: versionData
|
|
22
|
-
});
|
|
23
|
-
parent = branched.parent;
|
|
24
17
|
const version = {
|
|
25
18
|
...versionData
|
|
26
19
|
};
|
|
@@ -32,10 +25,6 @@ export async function createVersion({ autosave, collectionSlug, createdAt, paren
|
|
|
32
25
|
createdAt,
|
|
33
26
|
latest: true,
|
|
34
27
|
parent,
|
|
35
|
-
...branched.versionData._branch ? {
|
|
36
|
-
_branch: branched.versionData._branch,
|
|
37
|
-
_branchParent: branched.versionData._branchParent
|
|
38
|
-
} : {},
|
|
39
28
|
publishedLocale,
|
|
40
29
|
snapshot,
|
|
41
30
|
updatedAt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createVersion.ts"],"sourcesContent":["import type { CreateVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionCollectionFields
|
|
1
|
+
{"version":3,"sources":["../src/createVersion.ts"],"sourcesContent":["import type { CreateVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionCollectionFields } from 'payload'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getPrimaryDb } from './utilities/getPrimaryDb.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createVersion<T extends JsonObject = JsonObject>(\n this: DrizzleAdapter,\n {\n autosave,\n collectionSlug,\n createdAt,\n parent,\n publishedLocale,\n req,\n returning,\n select,\n snapshot,\n updatedAt,\n versionData,\n }: CreateVersionArgs<T>,\n): Promise<TypeWithVersion<T>> {\n const collection = this.payload.collections[collectionSlug].config\n if (collection.versions.drafts) {\n if (typeof select === 'object') {\n select.updatedAt = true\n }\n }\n\n const defaultTableName = toSnakeCase(collection.slug)\n const tableName = this.tableNameMap.get(`_${defaultTableName}${this.versionsSuffix}`)\n\n const version = { ...versionData }\n if (version.id) {\n delete version.id\n }\n\n const data: Record<string, unknown> = {\n autosave,\n createdAt,\n latest: true,\n parent,\n publishedLocale,\n snapshot,\n updatedAt,\n version,\n }\n\n const db = getPrimaryDb(this, await getTransaction(this, req))\n\n const result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n collectionSlug,\n data,\n db,\n fields: buildVersionCollectionFields(this.payload.config, collection, true),\n ignoreResult: returning === false ? 'idOnly' : undefined,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n\n if (hasDraftsEnabled(collection)) {\n await this.execute({\n db,\n sql: sql`\n UPDATE ${table}\n SET latest = false\n WHERE ${table.id} != ${result.id}\n AND ${table.parent} = ${parent}\n AND ${table.updatedAt} < ${result.updatedAt || updatedAt}\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionCollectionFields","hasDraftsEnabled","toSnakeCase","upsertRow","getPrimaryDb","getTransaction","createVersion","autosave","collectionSlug","createdAt","parent","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","collection","payload","collections","config","versions","drafts","defaultTableName","slug","tableName","tableNameMap","get","versionsSuffix","version","id","data","latest","db","result","adapter","fields","ignoreResult","undefined","operation","table","tables","execute"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,4BAA4B,QAAQ,UAAS;AACtD,SAASC,gBAAgB,QAAQ,iBAAgB;AACjD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,cAEpB,EACEC,QAAQ,EACRC,cAAc,EACdC,SAAS,EACTC,MAAM,EACNC,eAAe,EACfC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACU;IAEvB,MAAMC,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAACZ,eAAe,CAACa,MAAM;IAClE,IAAIH,WAAWI,QAAQ,CAACC,MAAM,EAAE;QAC9B,IAAI,OAAOT,WAAW,UAAU;YAC9BA,OAAOE,SAAS,GAAG;QACrB;IACF;IAEA,MAAMQ,mBAAmBtB,YAAYgB,WAAWO,IAAI;IACpD,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEJ,mBAAmB,IAAI,CAACK,cAAc,EAAE;IAEpF,MAAMC,UAAU;QAAE,GAAGb,WAAW;IAAC;IACjC,IAAIa,QAAQC,EAAE,EAAE;QACd,OAAOD,QAAQC,EAAE;IACnB;IAEA,MAAMC,OAAgC;QACpCzB;QACAE;QACAwB,QAAQ;QACRvB;QACAC;QACAI;QACAC;QACAc;IACF;IAEA,MAAMI,KAAK9B,aAAa,IAAI,EAAE,MAAMC,eAAe,IAAI,EAAEO;IAEzD,MAAMuB,SAAS,MAAMhC,UAA8B;QACjDiC,SAAS,IAAI;QACb5B;QACAwB;QACAE;QACAG,QAAQrC,6BAA6B,IAAI,CAACmB,OAAO,CAACE,MAAM,EAAEH,YAAY;QACtEoB,cAAczB,cAAc,QAAQ,WAAW0B;QAC/CC,WAAW;QACX5B;QACAE;QACAY;IACF;IAEA,MAAMe,QAAQ,IAAI,CAACC,MAAM,CAAChB,UAAU;IAEpC,IAAIzB,iBAAiBiB,aAAa;QAChC,MAAM,IAAI,CAACyB,OAAO,CAAC;YACjBT;YACAnC,KAAKA,GAAG,CAAC;eACA,EAAE0C,MAAM;;cAET,EAAEA,MAAMV,EAAE,CAAC,IAAI,EAAEI,OAAOJ,EAAE,CAAC;cAC3B,EAAEU,MAAM/B,MAAM,CAAC,GAAG,EAAEA,OAAO;cAC3B,EAAE+B,MAAMzB,SAAS,CAAC,GAAG,EAAEmB,OAAOnB,SAAS,IAAIA,UAAU;MAC7D,CAAC;QACH;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOsB;AACT"}
|
package/dist/deleteOne.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../src/deleteOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../src/deleteOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAexC,eAAO,MAAM,SAAS,EAAE,SA0EvB,CAAA"}
|
package/dist/deleteOne.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { eq } from 'drizzle-orm';
|
|
2
|
-
import { resolveBranchDelete } from 'payload';
|
|
3
2
|
import toSnakeCase from 'to-snake-case';
|
|
4
3
|
import { buildFindManyArgs } from './find/buildFindManyArgs.js';
|
|
5
4
|
import { buildQuery } from './queries/buildQuery.js';
|
|
@@ -8,25 +7,9 @@ import { transform } from './transform/read/index.js';
|
|
|
8
7
|
import { getPrimaryDb } from './utilities/getPrimaryDb.js';
|
|
9
8
|
import { getTransaction } from './utilities/getTransaction.js';
|
|
10
9
|
import { markWrite } from './utilities/readAfterWrite.js';
|
|
11
|
-
export const deleteOne = async function deleteOne({
|
|
10
|
+
export const deleteOne = async function deleteOne({ collection: collectionSlug, req, returning, select, where: whereArg }) {
|
|
12
11
|
const collection = this.payload.collections[collectionSlug].config;
|
|
13
12
|
const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
|
|
14
|
-
const branchDelete = await resolveBranchDelete({
|
|
15
|
-
branch,
|
|
16
|
-
collectionSlug,
|
|
17
|
-
req,
|
|
18
|
-
where: whereArg
|
|
19
|
-
});
|
|
20
|
-
if (branchDelete.tombstoned) {
|
|
21
|
-
return returning === false ? null : branchDelete.doc;
|
|
22
|
-
}
|
|
23
|
-
if (branchDelete.deleteRowID !== undefined) {
|
|
24
|
-
whereArg = {
|
|
25
|
-
id: {
|
|
26
|
-
equals: branchDelete.deleteRowID
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
13
|
let docToDelete;
|
|
31
14
|
const { joins, selectFields, where } = buildQuery({
|
|
32
15
|
adapter: this,
|
package/dist/deleteOne.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { DeleteOne } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport
|
|
1
|
+
{"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { DeleteOne } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildFindManyArgs } from './find/buildFindManyArgs.js'\nimport { buildQuery } from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { transform } from './transform/read/index.js'\nimport { getPrimaryDb } from './utilities/getPrimaryDb.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { markWrite } from './utilities/readAfterWrite.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: DrizzleAdapter,\n { collection: collectionSlug, req, returning, select, where: whereArg },\n) {\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n let docToDelete: Record<string, unknown>\n\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale: req?.locale,\n tableName,\n where: whereArg,\n })\n\n const db = getPrimaryDb(this, await getTransaction(this, req))\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n joins,\n query: ({ query }) => query.limit(1),\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n docToDelete = await db.query[tableName].findFirst({\n where: eq(this.tables[tableName].id, selectDistinctResult[0].id),\n })\n } else {\n const findManyArgs = buildFindManyArgs({\n adapter: this,\n depth: 0,\n fields: collection.flattenedFields,\n joinQuery: false,\n select,\n tableName,\n })\n\n findManyArgs.where = where\n\n docToDelete = await db.query[tableName].findFirst(findManyArgs)\n }\n\n if (!docToDelete) {\n return null\n }\n\n const result =\n returning === false\n ? null\n : transform({\n adapter: this,\n config: this.payload.config,\n data: docToDelete,\n fields: collection.flattenedFields,\n joinQuery: false,\n tableName,\n })\n\n await this.deleteWhere({\n db,\n tableName,\n where: eq(this.tables[tableName].id, docToDelete.id),\n })\n\n markWrite(this)\n\n return result\n}\n"],"names":["eq","toSnakeCase","buildFindManyArgs","buildQuery","selectDistinct","transform","getPrimaryDb","getTransaction","markWrite","deleteOne","collection","collectionSlug","req","returning","select","where","whereArg","payload","collections","config","tableName","tableNameMap","get","slug","docToDelete","joins","selectFields","adapter","fields","flattenedFields","locale","db","selectDistinctResult","query","limit","id","findFirst","tables","findManyArgs","depth","joinQuery","result","data","deleteWhere"],"mappings":"AAEA,SAASA,EAAE,QAAQ,cAAa;AAChC,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,SAAS,QAAQ,gCAA+B;AAEzD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAE;IAEvE,MAAMN,aAAa,IAAI,CAACO,OAAO,CAACC,WAAW,CAACP,eAAe,CAACQ,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACrB,YAAYS,WAAWa,IAAI;IAEnE,IAAIC;IAEJ,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEX,KAAK,EAAE,GAAGZ,WAAW;QAChDwB,SAAS,IAAI;QACbC,QAAQlB,WAAWmB,eAAe;QAClCC,QAAQlB,KAAKkB;QACbV;QACAL,OAAOC;IACT;IAEA,MAAMe,KAAKzB,aAAa,IAAI,EAAE,MAAMC,eAAe,IAAI,EAAEK;IAEzD,MAAMoB,uBAAuB,MAAM5B,eAAe;QAChDuB,SAAS,IAAI;QACbI;QACAN;QACAQ,OAAO,CAAC,EAAEA,KAAK,EAAE,GAAKA,MAAMC,KAAK,CAAC;QAClCR;QACAN;QACAL;IACF;IAEA,IAAIiB,sBAAsB,CAAC,EAAE,EAAEG,IAAI;QACjCX,cAAc,MAAMO,GAAGE,KAAK,CAACb,UAAU,CAACgB,SAAS,CAAC;YAChDrB,OAAOf,GAAG,IAAI,CAACqC,MAAM,CAACjB,UAAU,CAACe,EAAE,EAAEH,oBAAoB,CAAC,EAAE,CAACG,EAAE;QACjE;IACF,OAAO;QACL,MAAMG,eAAepC,kBAAkB;YACrCyB,SAAS,IAAI;YACbY,OAAO;YACPX,QAAQlB,WAAWmB,eAAe;YAClCW,WAAW;YACX1B;YACAM;QACF;QAEAkB,aAAavB,KAAK,GAAGA;QAErBS,cAAc,MAAMO,GAAGE,KAAK,CAACb,UAAU,CAACgB,SAAS,CAACE;IACpD;IAEA,IAAI,CAACd,aAAa;QAChB,OAAO;IACT;IAEA,MAAMiB,SACJ5B,cAAc,QACV,OACAR,UAAU;QACRsB,SAAS,IAAI;QACbR,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;QAC3BuB,MAAMlB;QACNI,QAAQlB,WAAWmB,eAAe;QAClCW,WAAW;QACXpB;IACF;IAEN,MAAM,IAAI,CAACuB,WAAW,CAAC;QACrBZ;QACAX;QACAL,OAAOf,GAAG,IAAI,CAACqC,MAAM,CAACjB,UAAU,CAACe,EAAE,EAAEX,YAAYW,EAAE;IACrD;IAEA3B,UAAU,IAAI;IAEd,OAAOiC;AACT,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DBQueryConfig } from 'drizzle-orm';
|
|
2
|
-
import type { FlattenedField, JoinQuery,
|
|
2
|
+
import type { FlattenedField, JoinQuery, SelectType } from 'payload';
|
|
3
3
|
import type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js';
|
|
4
4
|
type BuildFindQueryArgs = {
|
|
5
5
|
adapter: DrizzleAdapter;
|
|
@@ -13,7 +13,6 @@ type BuildFindQueryArgs = {
|
|
|
13
13
|
*/
|
|
14
14
|
joins?: BuildQueryJoinAliases;
|
|
15
15
|
locale?: string;
|
|
16
|
-
req?: Partial<PayloadRequest>;
|
|
17
16
|
select?: SelectType;
|
|
18
17
|
tableName: string;
|
|
19
18
|
versions?: boolean;
|
|
@@ -23,6 +22,6 @@ export type Result = {
|
|
|
23
22
|
_locales?: DBQueryConfig<'many', true, any, any>;
|
|
24
23
|
} & DBQueryConfig<'many', true, any, any>;
|
|
25
24
|
} & DBQueryConfig<'many', true, any, any>;
|
|
26
|
-
export declare const buildFindManyArgs: ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins, locale,
|
|
25
|
+
export declare const buildFindManyArgs: ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins, locale, select, tableName, versions, }: BuildFindQueryArgs) => Result;
|
|
27
26
|
export {};
|
|
28
27
|
//# sourceMappingURL=buildFindManyArgs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFindManyArgs.d.ts","sourceRoot":"","sources":["../../src/find/buildFindManyArgs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"buildFindManyArgs.d.ts","sourceRoot":"","sources":["../../src/find/buildFindManyArgs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIxE,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KACjD,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAC1C,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAIzC,eAAO,MAAM,iBAAiB,sHAY3B,kBAAkB,KAAG,MAkGvB,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { getSelectMode } from 'payload/shared';
|
|
|
2
2
|
import { traverseFields } from './traverseFields.js';
|
|
3
3
|
// Generate the Drizzle query for findMany based on
|
|
4
4
|
// a collection field structure
|
|
5
|
-
export const buildFindManyArgs = ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins = [], locale,
|
|
5
|
+
export const buildFindManyArgs = ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins = [], locale, select, tableName, versions })=>{
|
|
6
6
|
const result = {
|
|
7
7
|
extras: {},
|
|
8
8
|
with: {}
|
|
@@ -40,7 +40,6 @@ export const buildFindManyArgs = ({ adapter, collectionSlug, depth, draftsEnable
|
|
|
40
40
|
joins,
|
|
41
41
|
locale,
|
|
42
42
|
path: '',
|
|
43
|
-
req,
|
|
44
43
|
select,
|
|
45
44
|
selectMode: select ? getSelectMode(select) : undefined,
|
|
46
45
|
tablePath: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/find/buildFindManyArgs.ts"],"sourcesContent":["import type { DBQueryConfig } from 'drizzle-orm'\nimport type { FlattenedField, JoinQuery,
|
|
1
|
+
{"version":3,"sources":["../../src/find/buildFindManyArgs.ts"],"sourcesContent":["import type { DBQueryConfig } from 'drizzle-orm'\nimport type { FlattenedField, JoinQuery, SelectType } from 'payload'\n\nimport { getSelectMode } from 'payload/shared'\n\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype BuildFindQueryArgs = {\n adapter: DrizzleAdapter\n collectionSlug?: string\n depth: number\n draftsEnabled?: boolean\n fields: FlattenedField[]\n joinQuery?: JoinQuery\n /**\n * The joins array will be mutated by pushing any joins needed for the where queries of join field joins\n */\n joins?: BuildQueryJoinAliases\n locale?: string\n select?: SelectType\n tableName: string\n versions?: boolean\n}\n\nexport type Result = {\n with?: {\n _locales?: DBQueryConfig<'many', true, any, any>\n } & DBQueryConfig<'many', true, any, any>\n} & DBQueryConfig<'many', true, any, any>\n\n// Generate the Drizzle query for findMany based on\n// a collection field structure\nexport const buildFindManyArgs = ({\n adapter,\n collectionSlug,\n depth,\n draftsEnabled,\n fields,\n joinQuery,\n joins = [],\n locale,\n select,\n tableName,\n versions,\n}: BuildFindQueryArgs): Result => {\n const result: Result = {\n extras: {},\n with: {},\n }\n\n if (select) {\n result.columns = {\n id: true,\n }\n }\n\n const _locales: Result = {\n columns: select\n ? { _locale: true }\n : {\n id: false,\n _parentID: false,\n },\n extras: {},\n with: {},\n }\n\n const withTabledFields = select\n ? {}\n : {\n numbers: true,\n rels: true,\n texts: true,\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs: result,\n currentTableName: tableName,\n depth,\n draftsEnabled,\n fields,\n joinQuery,\n joins,\n locale,\n path: '',\n select,\n selectMode: select ? getSelectMode(select) : undefined,\n tablePath: '',\n topLevelArgs: result,\n topLevelTableName: tableName,\n versions,\n withTabledFields,\n })\n\n if (adapter.tables[`${tableName}_texts`] && withTabledFields.texts) {\n result.with._texts = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (adapter.tables[`${tableName}_numbers`] && withTabledFields.numbers) {\n result.with._numbers = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.relationshipsSuffix}`] && withTabledFields.rels) {\n result.with._rels = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (\n adapter.tables[`${tableName}${adapter.localesSuffix}`] &&\n (!select || Object.keys(_locales.columns).length > 1)\n ) {\n result.with._locales = _locales\n }\n\n // Delete properties that are empty\n for (const key of Object.keys(result)) {\n if (!Object.keys(result[key]).length) {\n delete result[key]\n }\n }\n\n return result\n}\n"],"names":["getSelectMode","traverseFields","buildFindManyArgs","adapter","collectionSlug","depth","draftsEnabled","fields","joinQuery","joins","locale","select","tableName","versions","result","extras","with","columns","id","_locales","_locale","_parentID","withTabledFields","numbers","rels","texts","currentArgs","currentTableName","path","selectMode","undefined","tablePath","topLevelArgs","topLevelTableName","tables","_texts","parent","orderBy","order","asc","ASC","_numbers","relationshipsSuffix","_rels","localesSuffix","Object","keys","length","key"],"mappings":"AAGA,SAASA,aAAa,QAAQ,iBAAgB;AAI9C,SAASC,cAAc,QAAQ,sBAAqB;AAyBpD,mDAAmD;AACnD,+BAA+B;AAC/B,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,aAAa,EACbC,MAAM,EACNC,SAAS,EACTC,QAAQ,EAAE,EACVC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACW;IACnB,MAAMC,SAAiB;QACrBC,QAAQ,CAAC;QACTC,MAAM,CAAC;IACT;IAEA,IAAIL,QAAQ;QACVG,OAAOG,OAAO,GAAG;YACfC,IAAI;QACN;IACF;IAEA,MAAMC,WAAmB;QACvBF,SAASN,SACL;YAAES,SAAS;QAAK,IAChB;YACEF,IAAI;YACJG,WAAW;QACb;QACJN,QAAQ,CAAC;QACTC,MAAM,CAAC;IACT;IAEA,MAAMM,mBAAmBX,SACrB,CAAC,IACD;QACEY,SAAS;QACTC,MAAM;QACNC,OAAO;IACT;IAEJxB,eAAe;QACbkB;QACAhB;QACAC;QACAsB,aAAaZ;QACba,kBAAkBf;QAClBP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAkB,MAAM;QACNjB;QACAkB,YAAYlB,SAASX,cAAcW,UAAUmB;QAC7CC,WAAW;QACXC,cAAclB;QACdmB,mBAAmBrB;QACnBC;QACAS;IACF;IAEA,IAAInB,QAAQ+B,MAAM,CAAC,GAAGtB,UAAU,MAAM,CAAC,CAAC,IAAIU,iBAAiBG,KAAK,EAAE;QAClEX,OAAOE,IAAI,CAACmB,MAAM,GAAG;YACnBlB,SAAS;gBACPC,IAAI;gBACJkB,QAAQ;YACV;YACAC,SAAS,CAAC,EAAEC,KAAK,EAAE,EAAE,EAAEC,KAAKC,GAAG,EAAE,GAAK;oBAACA,IAAIF;iBAAO;QACpD;IACF;IAEA,IAAInC,QAAQ+B,MAAM,CAAC,GAAGtB,UAAU,QAAQ,CAAC,CAAC,IAAIU,iBAAiBC,OAAO,EAAE;QACtET,OAAOE,IAAI,CAACyB,QAAQ,GAAG;YACrBxB,SAAS;gBACPC,IAAI;gBACJkB,QAAQ;YACV;YACAC,SAAS,CAAC,EAAEC,KAAK,EAAE,EAAE,EAAEC,KAAKC,GAAG,EAAE,GAAK;oBAACA,IAAIF;iBAAO;QACpD;IACF;IAEA,IAAInC,QAAQ+B,MAAM,CAAC,GAAGtB,YAAYT,QAAQuC,mBAAmB,EAAE,CAAC,IAAIpB,iBAAiBE,IAAI,EAAE;QACzFV,OAAOE,IAAI,CAAC2B,KAAK,GAAG;YAClB1B,SAAS;gBACPC,IAAI;gBACJkB,QAAQ;YACV;YACAC,SAAS,CAAC,EAAEC,KAAK,EAAE,EAAE,EAAEC,KAAKC,GAAG,EAAE,GAAK;oBAACA,IAAIF;iBAAO;QACpD;IACF;IAEA,IACEnC,QAAQ+B,MAAM,CAAC,GAAGtB,YAAYT,QAAQyC,aAAa,EAAE,CAAC,IACrD,CAAA,CAACjC,UAAUkC,OAAOC,IAAI,CAAC3B,SAASF,OAAO,EAAE8B,MAAM,GAAG,CAAA,GACnD;QACAjC,OAAOE,IAAI,CAACG,QAAQ,GAAGA;IACzB;IAEA,mCAAmC;IACnC,KAAK,MAAM6B,OAAOH,OAAOC,IAAI,CAAChC,QAAS;QACrC,IAAI,CAAC+B,OAAOC,IAAI,CAAChC,MAAM,CAACkC,IAAI,EAAED,MAAM,EAAE;YACpC,OAAOjC,MAAM,CAACkC,IAAI;QACpB;IACF;IAEA,OAAOlC;AACT,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SQL } from 'drizzle-orm';
|
|
2
|
-
import { type FlattenedJoinField, type
|
|
2
|
+
import { type FlattenedJoinField, type Where } from 'payload';
|
|
3
3
|
import type { DrizzleAdapter } from '../types.js';
|
|
4
4
|
type BuildPolymorphicJoinQueryArgs = {
|
|
5
5
|
adapter: DrizzleAdapter;
|
|
@@ -8,8 +8,8 @@ type BuildPolymorphicJoinQueryArgs = {
|
|
|
8
8
|
limit: number;
|
|
9
9
|
locale?: string;
|
|
10
10
|
page?: number;
|
|
11
|
+
pageSize?: number;
|
|
11
12
|
path: string;
|
|
12
|
-
req?: Partial<PayloadRequest>;
|
|
13
13
|
shouldCount: boolean;
|
|
14
14
|
sort?: string | string[];
|
|
15
15
|
where?: Where;
|
|
@@ -27,13 +27,13 @@ type PolymorphicJoinQuery = {
|
|
|
27
27
|
*
|
|
28
28
|
* `field.collection` must contain at least one configured collection. Each mapped table must have
|
|
29
29
|
* an `id` column and the column named by `field.on`. The supplied `limit` is used as-is; callers can
|
|
30
|
-
* include an extra look-ahead row
|
|
30
|
+
* include an extra look-ahead row and supply the original `pageSize` for offset calculation.
|
|
31
31
|
*
|
|
32
32
|
* @returns The stable projection name, the document projection, and the count projection when
|
|
33
33
|
* `shouldCount` is true.
|
|
34
34
|
* @throws If the join definition, target collection, mapped table, required columns, or sort shape
|
|
35
35
|
* cannot be represented by the polymorphic query.
|
|
36
36
|
*/
|
|
37
|
-
export declare const buildPolymorphicJoinQuery: ({ adapter, currentTableName, field, limit, locale, page,
|
|
37
|
+
export declare const buildPolymorphicJoinQuery: ({ adapter, currentTableName, field, limit, locale, page, pageSize, path, shouldCount, sort, where, }: BuildPolymorphicJoinQueryArgs) => PolymorphicJoinQuery;
|
|
38
38
|
export {};
|
|
39
39
|
//# sourceMappingURL=buildPolymorphicJoinQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPolymorphicJoinQuery.d.ts","sourceRoot":"","sources":["../../src/find/buildPolymorphicJoinQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAKtC,OAAO,
|
|
1
|
+
{"version":3,"file":"buildPolymorphicJoinQuery.d.ts","sourceRoot":"","sources":["../../src/find/buildPolymorphicJoinQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAKtC,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAG7D,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAA;AAO/D,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,EAAE,kBAAkB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACnB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,yGAYnC,6BAA6B,KAAG,oBAmJlC,CAAA"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { and, asc, count, desc, eq, sql } from 'drizzle-orm';
|
|
2
|
-
import { combineQueries, getBranchPredicateSync, resolveBranchReadState } from 'payload';
|
|
1
|
+
import { and, asc, count, desc, eq, getTableName, sql } from 'drizzle-orm';
|
|
3
2
|
import toSnakeCase from 'to-snake-case';
|
|
4
|
-
import { buildBranchVisibility } from '../queries/buildBranchVisibility.js';
|
|
5
3
|
import { jsonAggBuildObject } from '../utilities/json.js';
|
|
6
4
|
import { buildPolymorphicJoinWhere } from './buildPolymorphicJoinWhere.js';
|
|
7
5
|
import { createPolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan.js';
|
|
@@ -13,13 +11,13 @@ import { createPolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan
|
|
|
13
11
|
*
|
|
14
12
|
* `field.collection` must contain at least one configured collection. Each mapped table must have
|
|
15
13
|
* an `id` column and the column named by `field.on`. The supplied `limit` is used as-is; callers can
|
|
16
|
-
* include an extra look-ahead row
|
|
14
|
+
* include an extra look-ahead row and supply the original `pageSize` for offset calculation.
|
|
17
15
|
*
|
|
18
16
|
* @returns The stable projection name, the document projection, and the count projection when
|
|
19
17
|
* `shouldCount` is true.
|
|
20
18
|
* @throws If the join definition, target collection, mapped table, required columns, or sort shape
|
|
21
19
|
* cannot be represented by the polymorphic query.
|
|
22
|
-
*/ export const buildPolymorphicJoinQuery = ({ adapter, currentTableName, field, limit, locale, page,
|
|
20
|
+
*/ export const buildPolymorphicJoinQuery = ({ adapter, currentTableName, field, limit, locale, page, pageSize = limit, path, shouldCount, sort, where })=>{
|
|
23
21
|
if (!Array.isArray(field.collection)) {
|
|
24
22
|
throw new Error('A polymorphic join requires a collection array');
|
|
25
23
|
}
|
|
@@ -60,46 +58,42 @@ import { createPolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan
|
|
|
60
58
|
});
|
|
61
59
|
const sortOrder = sortField.startsWith('-') ? desc : asc;
|
|
62
60
|
const sortPath = sortField.replace('-', '').split('.').join('_');
|
|
61
|
+
const wherePlan = where ? createPolymorphicJoinWherePlan({
|
|
62
|
+
adapter,
|
|
63
|
+
collections,
|
|
64
|
+
where
|
|
65
|
+
}) : new Map();
|
|
63
66
|
let unionQuery = null;
|
|
64
67
|
for (const { collection, table } of collectionTables){
|
|
65
|
-
const branchReadState = resolveBranchReadState({
|
|
66
|
-
collectionSlug: collection,
|
|
67
|
-
req
|
|
68
|
-
});
|
|
69
|
-
const branchPredicate = branchReadState.useBranching ? null : getBranchPredicateSync({
|
|
70
|
-
collectionSlug: collection,
|
|
71
|
-
req
|
|
72
|
-
});
|
|
73
|
-
const collectionWhere = branchPredicate ? combineQueries(where ?? {}, branchPredicate) : where;
|
|
74
|
-
const wherePlan = collectionWhere ? createPolymorphicJoinWherePlan({
|
|
75
|
-
adapter,
|
|
76
|
-
collections,
|
|
77
|
-
where: collectionWhere
|
|
78
|
-
}) : new Map();
|
|
79
68
|
const sortColumn = table[sortPath];
|
|
80
69
|
const selectFields = {
|
|
81
|
-
id:
|
|
70
|
+
id: table['id'],
|
|
82
71
|
parent: sql`${table[onPath]}`.as(onPath),
|
|
83
72
|
relationTo: sql`${collection}`.as('relationTo'),
|
|
84
73
|
sortPath: sql`${sortColumn ?? null}`.as('sortPath')
|
|
85
74
|
};
|
|
86
|
-
const
|
|
75
|
+
const collectionWhere = where && Object.keys(where).length > 0 ? buildPolymorphicJoinWhere({
|
|
87
76
|
adapter,
|
|
88
77
|
collection,
|
|
89
78
|
locale,
|
|
90
79
|
table,
|
|
91
|
-
where
|
|
80
|
+
where,
|
|
92
81
|
wherePlan
|
|
93
82
|
}) : undefined;
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
83
|
+
const hasLocalizedWhere = [
|
|
84
|
+
...wherePlan.values()
|
|
85
|
+
].some((pathPlan)=>{
|
|
86
|
+
const collectionField = pathPlan.fieldsByCollection.get(collection);
|
|
87
|
+
return collectionField?.type === 'scalar' && collectionField.isLocalized;
|
|
88
|
+
});
|
|
89
|
+
const shouldDeduplicate = hasLocalizedWhere && (!locale || locale === 'all');
|
|
90
|
+
let collectionQuery = (shouldDeduplicate ? db.selectDistinct(selectFields) : db.select(selectFields)).from(table).$dynamic();
|
|
91
|
+
if (hasLocalizedWhere) {
|
|
92
|
+
const localesTable = adapter.tables[`${getTableName(table)}${adapter.localesSuffix}`];
|
|
93
|
+
collectionQuery = collectionQuery.leftJoin(localesTable, and(eq(table['id'], localesTable._parentID), locale && locale !== 'all' ? eq(localesTable._locale, locale) : undefined));
|
|
94
|
+
}
|
|
95
|
+
if (collectionWhere) {
|
|
96
|
+
collectionQuery = collectionQuery.where(collectionWhere);
|
|
103
97
|
}
|
|
104
98
|
if (unionQuery === null) {
|
|
105
99
|
unionQuery = collectionQuery;
|
|
@@ -119,7 +113,7 @@ import { createPolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan
|
|
|
119
113
|
limitOffsetSQL = sql` LIMIT ${limit}`;
|
|
120
114
|
}
|
|
121
115
|
if (page && limit !== 0) {
|
|
122
|
-
const offset = (page - 1) *
|
|
116
|
+
const offset = (page - 1) * pageSize;
|
|
123
117
|
if (offset > 0) {
|
|
124
118
|
limitOffsetSQL = sql`${limitOffsetSQL} OFFSET ${offset}`;
|
|
125
119
|
}
|