@payloadcms/drizzle 3.11.0 → 3.11.1-canary.54f6c59
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/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +19 -4
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/queries/buildAndOrConditions.d.ts +3 -2
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +2 -1
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/buildOrderBy.d.ts +3 -1
- package/dist/queries/buildOrderBy.d.ts.map +1 -1
- package/dist/queries/buildOrderBy.js +3 -2
- package/dist/queries/buildOrderBy.js.map +1 -1
- package/dist/queries/buildQuery.d.ts +3 -2
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +3 -1
- package/dist/queries/buildQuery.js.map +1 -1
- package/dist/queries/parseParams.d.ts +3 -2
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +9 -5
- package/dist/queries/parseParams.js.map +1 -1
- package/package.json +4 -4
- package/dist/postgres/createMigration.d.ts +0 -3
- package/dist/postgres/createMigration.d.ts.map +0 -1
- package/dist/postgres/createMigration.js +0 -91
- package/dist/postgres/createMigration.js.map +0 -1
- package/dist/postgres/getMigrationTemplate.d.ts +0 -4
- package/dist/postgres/getMigrationTemplate.d.ts.map +0 -1
- package/dist/postgres/getMigrationTemplate.js +0 -13
- package/dist/postgres/getMigrationTemplate.js.map +0 -1
- package/dist/postgres/schema/build.d.ts +0 -42
- package/dist/postgres/schema/build.d.ts.map +0 -1
- package/dist/postgres/schema/build.js +0 -404
- package/dist/postgres/schema/build.js.map +0 -1
- package/dist/postgres/schema/createIndex.d.ts +0 -11
- package/dist/postgres/schema/createIndex.d.ts.map +0 -1
- package/dist/postgres/schema/createIndex.js +0 -20
- package/dist/postgres/schema/createIndex.js.map +0 -1
- package/dist/postgres/schema/idToUUID.d.ts +0 -3
- package/dist/postgres/schema/idToUUID.d.ts.map +0 -1
- package/dist/postgres/schema/idToUUID.js +0 -11
- package/dist/postgres/schema/idToUUID.js.map +0 -1
- package/dist/postgres/schema/parentIDColumnMap.d.ts +0 -4
- package/dist/postgres/schema/parentIDColumnMap.d.ts.map +0 -1
- package/dist/postgres/schema/parentIDColumnMap.js +0 -9
- package/dist/postgres/schema/parentIDColumnMap.js.map +0 -1
- package/dist/postgres/schema/traverseFields.d.ts +0 -42
- package/dist/postgres/schema/traverseFields.d.ts.map +0 -1
- package/dist/postgres/schema/traverseFields.js +0 -599
- package/dist/postgres/schema/traverseFields.js.map +0 -1
- package/dist/postgres/schema/withDefault.d.ts +0 -4
- package/dist/postgres/schema/withDefault.d.ts.map +0 -1
- package/dist/postgres/schema/withDefault.js +0 -15
- package/dist/postgres/schema/withDefault.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/find/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAS,MAAM,SAAS,CAAA;AAMvF,OAAO,KAAK,EAAE,qBAAqB,EAAkB,cAAc,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/find/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAS,MAAM,SAAS,CAAA;AAMvF,OAAO,KAAK,EAAE,qBAAqB,EAAkB,cAAc,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AASpD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,gBAAgB,EAAE;QAChB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc,oQAqBxB,iBAAiB,4BAsgBnB,CAAA"}
|
|
@@ -2,6 +2,8 @@ import { sql } from 'drizzle-orm';
|
|
|
2
2
|
import { fieldIsVirtual } from 'payload/shared';
|
|
3
3
|
import toSnakeCase from 'to-snake-case';
|
|
4
4
|
import buildQuery from '../queries/buildQuery.js';
|
|
5
|
+
import { getTableAlias } from '../queries/getTableAlias.js';
|
|
6
|
+
import { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js';
|
|
5
7
|
import { jsonAggBuildObject } from '../utilities/json.js';
|
|
6
8
|
import { rawConstraint } from '../utilities/rawConstraint.js';
|
|
7
9
|
import { chainMethods } from './chainMethods.js';
|
|
@@ -247,8 +249,15 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
|
|
|
247
249
|
]
|
|
248
250
|
};
|
|
249
251
|
}
|
|
252
|
+
const columnName = `${path.replaceAll('.', '_')}${field.name}`;
|
|
253
|
+
const subQueryAlias = `${columnName}_alias`;
|
|
254
|
+
const { newAliasTable } = getTableAlias({
|
|
255
|
+
adapter,
|
|
256
|
+
tableName: joinCollectionTableName
|
|
257
|
+
});
|
|
250
258
|
const { orderBy, selectFields, where: subQueryWhere } = buildQuery({
|
|
251
259
|
adapter,
|
|
260
|
+
aliasTable: newAliasTable,
|
|
252
261
|
fields,
|
|
253
262
|
joins,
|
|
254
263
|
locale,
|
|
@@ -276,11 +285,17 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
|
|
|
276
285
|
});
|
|
277
286
|
}
|
|
278
287
|
const db = adapter.drizzle;
|
|
279
|
-
|
|
280
|
-
|
|
288
|
+
for(let key in selectFields){
|
|
289
|
+
const val = selectFields[key];
|
|
290
|
+
if (val.table && getNameFromDrizzleTable(val.table) === joinCollectionTableName) {
|
|
291
|
+
delete selectFields[key];
|
|
292
|
+
key = key.split('.').pop();
|
|
293
|
+
selectFields[key] = newAliasTable[key];
|
|
294
|
+
}
|
|
295
|
+
}
|
|
281
296
|
const subQuery = chainMethods({
|
|
282
297
|
methods: chainedMethods,
|
|
283
|
-
query: db.select(selectFields).from(
|
|
298
|
+
query: db.select(selectFields).from(newAliasTable).where(subQueryWhere).orderBy(()=>orderBy.map(({ column, order })=>order(column)))
|
|
284
299
|
}).as(subQueryAlias);
|
|
285
300
|
currentArgs.extras[columnName] = sql`${db.select({
|
|
286
301
|
result: jsonAggBuildObject(adapter, {
|
|
@@ -289,7 +304,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
|
|
|
289
304
|
locale: sql.raw(`"${subQueryAlias}".${selectFields._locale.name}`)
|
|
290
305
|
}
|
|
291
306
|
})
|
|
292
|
-
}).from(sql`${subQuery}`)}`.as(
|
|
307
|
+
}).from(sql`${subQuery}`)}`.as(subQueryAlias);
|
|
293
308
|
break;
|
|
294
309
|
}
|
|
295
310
|
case 'point':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { FlattenedField, JoinQuery, SelectMode, SelectType, Where } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, ChainedMethods, DrizzleAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport buildQuery from '../queries/buildQuery.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport { chainMethods } from './chainMethods.js'\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n fields: FlattenedField[]\n joinQuery: JoinQuery\n joins?: BuildQueryJoinAliases\n locale?: string\n path: string\n select?: SelectType\n selectAllOnCurrentLevel?: boolean\n selectMode?: SelectMode\n tablePath: string\n topLevelArgs: Record<string, unknown>\n topLevelTableName: string\n versions?: boolean\n withinLocalizedField?: boolean\n withTabledFields: {\n numbers?: boolean\n rels?: boolean\n texts?: boolean\n }\n}\n\nexport const traverseFields = ({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields,\n joinQuery = {},\n joins,\n locale,\n path,\n select,\n selectAllOnCurrentLevel = false,\n selectMode,\n tablePath,\n topLevelArgs,\n topLevelTableName,\n versions,\n withinLocalizedField = false,\n withTabledFields,\n}: TraverseFieldArgs) => {\n fields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n // handle simple relationship\n if (\n depth > 0 &&\n (field.type === 'upload' || field.type === 'relationship') &&\n !field.hasMany &&\n typeof field.relationTo === 'string'\n ) {\n if (field.localized) {\n _locales.with[`${path}${field.name}`] = true\n } else {\n currentArgs.with[`${path}${field.name}`] = true\n }\n }\n\n switch (field.type) {\n case 'array': {\n const arraySelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && typeof arraySelect === 'undefined') ||\n (selectMode === 'exclude' && arraySelect === false)\n ) {\n break\n }\n }\n\n const withArray: Result = {\n columns:\n typeof arraySelect === 'object'\n ? {\n id: true,\n _order: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n if (typeof arraySelect === 'object') {\n if (adapter.tables[arrayTableName]._locale) {\n withArray.columns._locale = true\n }\n\n if (adapter.tables[arrayTableName]._uuid) {\n withArray.columns._uuid = true\n }\n }\n\n const arrayTableNameWithLocales = `${arrayTableName}${adapter.localesSuffix}`\n\n if (adapter.tables[arrayTableNameWithLocales]) {\n withArray.with._locales = {\n columns:\n typeof arraySelect === 'object'\n ? {\n _locale: true,\n }\n : {\n id: false,\n _parentID: false,\n },\n with: {},\n }\n }\n\n currentArgs.with[`${path}${field.name}`] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n locale,\n path: '',\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n if (\n typeof arraySelect === 'object' &&\n withArray.with._locales &&\n Object.keys(withArray.with._locales).length === 1\n ) {\n delete withArray.with._locales\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && !blocksSelect) ||\n (selectMode === 'exclude' && blocksSelect === false)\n ) {\n break\n }\n }\n\n field.blocks.forEach((block) => {\n const blockKey = `_blocks_${block.slug}`\n\n let blockSelect: boolean | SelectType | undefined\n\n let blockSelectMode = selectMode\n\n if (selectMode === 'include' && blocksSelect === true) {\n blockSelect = true\n }\n\n if (typeof blocksSelect === 'object') {\n if (typeof blocksSelect[block.slug] === 'object') {\n blockSelect = blocksSelect[block.slug]\n } else if (\n (selectMode === 'include' && typeof blocksSelect[block.slug] === 'undefined') ||\n (selectMode === 'exclude' && blocksSelect[block.slug] === false)\n ) {\n blockSelect = {}\n blockSelectMode = 'include'\n } else if (selectMode === 'include' && blocksSelect[block.slug] === true) {\n blockSelect = true\n }\n }\n\n if (!topLevelArgs[blockKey]) {\n const withBlock: Result = {\n columns:\n typeof blockSelect === 'object'\n ? {\n id: true,\n _order: true,\n _path: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const tableName = adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n if (typeof blockSelect === 'object') {\n if (adapter.tables[tableName]._locale) {\n withBlock.columns._locale = true\n }\n\n if (adapter.tables[tableName]._uuid) {\n withBlock.columns._uuid = true\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.localesSuffix}`]) {\n withBlock.with._locales = {\n with: {},\n }\n\n if (typeof blockSelect === 'object') {\n withBlock.with._locales.columns = {\n _locale: true,\n }\n }\n }\n topLevelArgs.with[blockKey] = withBlock\n\n traverseFields({\n _locales: withBlock.with._locales,\n adapter,\n currentArgs: withBlock,\n currentTableName: tableName,\n depth,\n fields: block.flattenedFields,\n joinQuery,\n locale,\n path: '',\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n if (\n typeof blockSelect === 'object' &&\n withBlock.with._locales &&\n Object.keys(withBlock.with._locales.columns).length === 1\n ) {\n delete withBlock.with._locales\n }\n }\n })\n\n break\n }\n\n case 'group':\n case 'tab': {\n const fieldSelect = select?.[field.name]\n\n if (fieldSelect === false) {\n break\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n joins,\n locale,\n path: `${path}${field.name}_`,\n select: typeof fieldSelect === 'object' ? fieldSelect : undefined,\n selectAllOnCurrentLevel:\n selectAllOnCurrentLevel ||\n fieldSelect === true ||\n (selectMode === 'exclude' && typeof fieldSelect === 'undefined'),\n selectMode,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n topLevelArgs,\n topLevelTableName,\n versions,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n break\n }\n case 'join': {\n // when `joinsQuery` is false, do not join\n if (joinQuery === false) {\n break\n }\n\n if (\n (select && selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n\n const joinSchemaPath = `${path.replaceAll('_', '.')}${field.name}`\n\n if (joinQuery[joinSchemaPath] === false) {\n break\n }\n\n const {\n limit: limitArg = field.defaultLimit ?? 10,\n sort = field.defaultSort,\n where,\n } = joinQuery[joinSchemaPath] || {}\n let limit = limitArg\n\n if (limit !== 0) {\n // get an additional document and slice it later to determine if there is a next page\n limit += 1\n }\n\n const fields = adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(toSnakeCase(field.collection))\n\n const joins: BuildQueryJoinAliases = []\n\n const currentIDColumn = versions\n ? adapter.tables[currentTableName].parent\n : adapter.tables[currentTableName].id\n\n let joinQueryWhere: Where\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDColumn),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDColumn),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n const {\n orderBy,\n selectFields,\n where: subQueryWhere,\n } = buildQuery({\n adapter,\n fields,\n joins,\n locale,\n selectLocale: true,\n sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\n\n const chainedMethods: ChainedMethods = []\n\n joins.forEach(({ type, condition, table }) => {\n chainedMethods.push({\n args: [table, condition],\n method: type ?? 'leftJoin',\n })\n })\n\n if (limit !== 0) {\n chainedMethods.push({\n args: [limit],\n method: 'limit',\n })\n }\n\n const db = adapter.drizzle as LibSQLDatabase\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const subQueryAlias = `${columnName}_alias`\n\n const subQuery = chainMethods({\n methods: chainedMethods,\n query: db\n .select(selectFields as any)\n .from(adapter.tables[joinCollectionTableName])\n .where(subQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column))),\n }).as(subQueryAlias)\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".id`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(columnName)\n\n break\n }\n\n case 'point': {\n if (adapter.name === 'sqlite') {\n break\n }\n\n const args = field.localized ? _locales : currentArgs\n if (!args.columns) {\n args.columns = {}\n }\n\n if (!args.extras) {\n args.extras = {}\n }\n\n const name = `${path}${field.name}`\n\n // Drizzle handles that poorly. See https://github.com/drizzle-team/drizzle-orm/issues/2526\n // Additionally, this way we format the column value straight in the database using ST_AsGeoJSON\n args.columns[name] = false\n\n let shouldSelect = false\n\n if (select || selectAllOnCurrentLevel) {\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n\n if (shouldSelect) {\n args.extras[name] = sql.raw(`ST_AsGeoJSON(${toSnakeCase(name)})::jsonb`).as(name)\n }\n break\n }\n\n case 'select': {\n if (select && !selectAllOnCurrentLevel) {\n if (\n (selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n }\n\n if (field.hasMany) {\n const withSelect: Result = {\n columns: {\n id: false,\n order: false,\n parent: false,\n },\n orderBy: ({ order }, { asc }) => [asc(order)],\n }\n\n currentArgs.with[`${path}${field.name}`] = withSelect\n break\n }\n\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((field.localized || withinLocalizedField) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n default: {\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n const fieldPath = `${path}${field.name}`\n\n if ((field.localized || withinLocalizedField) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n\n if (\n !withTabledFields.rels &&\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (!withTabledFields.numbers && field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (!withTabledFields.texts && field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n break\n }\n }\n })\n\n return topLevelArgs\n}\n"],"names":["sql","fieldIsVirtual","toSnakeCase","buildQuery","jsonAggBuildObject","rawConstraint","chainMethods","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","fields","joinQuery","joins","locale","path","select","selectAllOnCurrentLevel","selectMode","tablePath","topLevelArgs","topLevelTableName","versions","withinLocalizedField","withTabledFields","forEach","field","type","hasMany","relationTo","localized","with","name","arraySelect","withArray","columns","id","_order","_parentID","orderBy","asc","arrayTableName","tableNameMap","get","tables","_locale","_uuid","arrayTableNameWithLocales","localesSuffix","flattenedFields","undefined","Object","keys","length","blocksSelect","blocks","block","blockKey","slug","blockSelect","blockSelectMode","withBlock","_path","tableName","fieldSelect","joinSchemaPath","replaceAll","limit","limitArg","defaultLimit","sort","defaultSort","where","payload","collections","collection","config","joinCollectionTableName","currentIDColumn","parent","joinQueryWhere","Array","isArray","targetField","on","equals","value","and","selectFields","subQueryWhere","selectLocale","chainedMethods","condition","table","push","args","method","db","drizzle","columnName","subQueryAlias","subQuery","methods","query","from","map","column","order","as","extras","result","raw","shouldSelect","withSelect","fieldPath","rels","numbers","texts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { FlattenedField, JoinQuery, SelectMode, SelectType, Where } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, ChainedMethods, DrizzleAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport buildQuery from '../queries/buildQuery.js'\nimport { getTableAlias } from '../queries/getTableAlias.js'\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport { chainMethods } from './chainMethods.js'\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n fields: FlattenedField[]\n joinQuery: JoinQuery\n joins?: BuildQueryJoinAliases\n locale?: string\n path: string\n select?: SelectType\n selectAllOnCurrentLevel?: boolean\n selectMode?: SelectMode\n tablePath: string\n topLevelArgs: Record<string, unknown>\n topLevelTableName: string\n versions?: boolean\n withinLocalizedField?: boolean\n withTabledFields: {\n numbers?: boolean\n rels?: boolean\n texts?: boolean\n }\n}\n\nexport const traverseFields = ({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields,\n joinQuery = {},\n joins,\n locale,\n path,\n select,\n selectAllOnCurrentLevel = false,\n selectMode,\n tablePath,\n topLevelArgs,\n topLevelTableName,\n versions,\n withinLocalizedField = false,\n withTabledFields,\n}: TraverseFieldArgs) => {\n fields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n // handle simple relationship\n if (\n depth > 0 &&\n (field.type === 'upload' || field.type === 'relationship') &&\n !field.hasMany &&\n typeof field.relationTo === 'string'\n ) {\n if (field.localized) {\n _locales.with[`${path}${field.name}`] = true\n } else {\n currentArgs.with[`${path}${field.name}`] = true\n }\n }\n\n switch (field.type) {\n case 'array': {\n const arraySelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && typeof arraySelect === 'undefined') ||\n (selectMode === 'exclude' && arraySelect === false)\n ) {\n break\n }\n }\n\n const withArray: Result = {\n columns:\n typeof arraySelect === 'object'\n ? {\n id: true,\n _order: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n if (typeof arraySelect === 'object') {\n if (adapter.tables[arrayTableName]._locale) {\n withArray.columns._locale = true\n }\n\n if (adapter.tables[arrayTableName]._uuid) {\n withArray.columns._uuid = true\n }\n }\n\n const arrayTableNameWithLocales = `${arrayTableName}${adapter.localesSuffix}`\n\n if (adapter.tables[arrayTableNameWithLocales]) {\n withArray.with._locales = {\n columns:\n typeof arraySelect === 'object'\n ? {\n _locale: true,\n }\n : {\n id: false,\n _parentID: false,\n },\n with: {},\n }\n }\n\n currentArgs.with[`${path}${field.name}`] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n locale,\n path: '',\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n if (\n typeof arraySelect === 'object' &&\n withArray.with._locales &&\n Object.keys(withArray.with._locales).length === 1\n ) {\n delete withArray.with._locales\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && !blocksSelect) ||\n (selectMode === 'exclude' && blocksSelect === false)\n ) {\n break\n }\n }\n\n field.blocks.forEach((block) => {\n const blockKey = `_blocks_${block.slug}`\n\n let blockSelect: boolean | SelectType | undefined\n\n let blockSelectMode = selectMode\n\n if (selectMode === 'include' && blocksSelect === true) {\n blockSelect = true\n }\n\n if (typeof blocksSelect === 'object') {\n if (typeof blocksSelect[block.slug] === 'object') {\n blockSelect = blocksSelect[block.slug]\n } else if (\n (selectMode === 'include' && typeof blocksSelect[block.slug] === 'undefined') ||\n (selectMode === 'exclude' && blocksSelect[block.slug] === false)\n ) {\n blockSelect = {}\n blockSelectMode = 'include'\n } else if (selectMode === 'include' && blocksSelect[block.slug] === true) {\n blockSelect = true\n }\n }\n\n if (!topLevelArgs[blockKey]) {\n const withBlock: Result = {\n columns:\n typeof blockSelect === 'object'\n ? {\n id: true,\n _order: true,\n _path: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const tableName = adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n if (typeof blockSelect === 'object') {\n if (adapter.tables[tableName]._locale) {\n withBlock.columns._locale = true\n }\n\n if (adapter.tables[tableName]._uuid) {\n withBlock.columns._uuid = true\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.localesSuffix}`]) {\n withBlock.with._locales = {\n with: {},\n }\n\n if (typeof blockSelect === 'object') {\n withBlock.with._locales.columns = {\n _locale: true,\n }\n }\n }\n topLevelArgs.with[blockKey] = withBlock\n\n traverseFields({\n _locales: withBlock.with._locales,\n adapter,\n currentArgs: withBlock,\n currentTableName: tableName,\n depth,\n fields: block.flattenedFields,\n joinQuery,\n locale,\n path: '',\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n if (\n typeof blockSelect === 'object' &&\n withBlock.with._locales &&\n Object.keys(withBlock.with._locales.columns).length === 1\n ) {\n delete withBlock.with._locales\n }\n }\n })\n\n break\n }\n\n case 'group':\n case 'tab': {\n const fieldSelect = select?.[field.name]\n\n if (fieldSelect === false) {\n break\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n fields: field.flattenedFields,\n joinQuery,\n joins,\n locale,\n path: `${path}${field.name}_`,\n select: typeof fieldSelect === 'object' ? fieldSelect : undefined,\n selectAllOnCurrentLevel:\n selectAllOnCurrentLevel ||\n fieldSelect === true ||\n (selectMode === 'exclude' && typeof fieldSelect === 'undefined'),\n selectMode,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n topLevelArgs,\n topLevelTableName,\n versions,\n withinLocalizedField: withinLocalizedField || field.localized,\n withTabledFields,\n })\n\n break\n }\n case 'join': {\n // when `joinsQuery` is false, do not join\n if (joinQuery === false) {\n break\n }\n\n if (\n (select && selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n\n const joinSchemaPath = `${path.replaceAll('_', '.')}${field.name}`\n\n if (joinQuery[joinSchemaPath] === false) {\n break\n }\n\n const {\n limit: limitArg = field.defaultLimit ?? 10,\n sort = field.defaultSort,\n where,\n } = joinQuery[joinSchemaPath] || {}\n let limit = limitArg\n\n if (limit !== 0) {\n // get an additional document and slice it later to determine if there is a next page\n limit += 1\n }\n\n const fields = adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(toSnakeCase(field.collection))\n\n const joins: BuildQueryJoinAliases = []\n\n const currentIDColumn = versions\n ? adapter.tables[currentTableName].parent\n : adapter.tables[currentTableName].id\n\n let joinQueryWhere: Where\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDColumn),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDColumn),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const subQueryAlias = `${columnName}_alias`\n\n const { newAliasTable } = getTableAlias({\n adapter,\n tableName: joinCollectionTableName,\n })\n\n const {\n orderBy,\n selectFields,\n where: subQueryWhere,\n } = buildQuery({\n adapter,\n aliasTable: newAliasTable,\n fields,\n joins,\n locale,\n selectLocale: true,\n sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\n\n const chainedMethods: ChainedMethods = []\n\n joins.forEach(({ type, condition, table }) => {\n chainedMethods.push({\n args: [table, condition],\n method: type ?? 'leftJoin',\n })\n })\n\n if (limit !== 0) {\n chainedMethods.push({\n args: [limit],\n method: 'limit',\n })\n }\n\n const db = adapter.drizzle as LibSQLDatabase\n\n for (let key in selectFields) {\n const val = selectFields[key]\n\n if (val.table && getNameFromDrizzleTable(val.table) === joinCollectionTableName) {\n delete selectFields[key]\n key = key.split('.').pop()\n selectFields[key] = newAliasTable[key]\n }\n }\n\n const subQuery = chainMethods({\n methods: chainedMethods,\n query: db\n .select(selectFields as any)\n .from(newAliasTable)\n .where(subQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column))),\n }).as(subQueryAlias)\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".id`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(subQueryAlias)\n\n break\n }\n\n case 'point': {\n if (adapter.name === 'sqlite') {\n break\n }\n\n const args = field.localized ? _locales : currentArgs\n if (!args.columns) {\n args.columns = {}\n }\n\n if (!args.extras) {\n args.extras = {}\n }\n\n const name = `${path}${field.name}`\n\n // Drizzle handles that poorly. See https://github.com/drizzle-team/drizzle-orm/issues/2526\n // Additionally, this way we format the column value straight in the database using ST_AsGeoJSON\n args.columns[name] = false\n\n let shouldSelect = false\n\n if (select || selectAllOnCurrentLevel) {\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n\n if (shouldSelect) {\n args.extras[name] = sql.raw(`ST_AsGeoJSON(${toSnakeCase(name)})::jsonb`).as(name)\n }\n break\n }\n\n case 'select': {\n if (select && !selectAllOnCurrentLevel) {\n if (\n (selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n }\n\n if (field.hasMany) {\n const withSelect: Result = {\n columns: {\n id: false,\n order: false,\n parent: false,\n },\n orderBy: ({ order }, { asc }) => [asc(order)],\n }\n\n currentArgs.with[`${path}${field.name}`] = withSelect\n break\n }\n\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((field.localized || withinLocalizedField) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n default: {\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n const fieldPath = `${path}${field.name}`\n\n if ((field.localized || withinLocalizedField) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n\n if (\n !withTabledFields.rels &&\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (!withTabledFields.numbers && field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (!withTabledFields.texts && field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n break\n }\n }\n })\n\n return topLevelArgs\n}\n"],"names":["sql","fieldIsVirtual","toSnakeCase","buildQuery","getTableAlias","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","chainMethods","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","fields","joinQuery","joins","locale","path","select","selectAllOnCurrentLevel","selectMode","tablePath","topLevelArgs","topLevelTableName","versions","withinLocalizedField","withTabledFields","forEach","field","type","hasMany","relationTo","localized","with","name","arraySelect","withArray","columns","id","_order","_parentID","orderBy","asc","arrayTableName","tableNameMap","get","tables","_locale","_uuid","arrayTableNameWithLocales","localesSuffix","flattenedFields","undefined","Object","keys","length","blocksSelect","blocks","block","blockKey","slug","blockSelect","blockSelectMode","withBlock","_path","tableName","fieldSelect","joinSchemaPath","replaceAll","limit","limitArg","defaultLimit","sort","defaultSort","where","payload","collections","collection","config","joinCollectionTableName","currentIDColumn","parent","joinQueryWhere","Array","isArray","targetField","on","equals","value","and","columnName","subQueryAlias","newAliasTable","selectFields","subQueryWhere","aliasTable","selectLocale","chainedMethods","condition","table","push","args","method","db","drizzle","key","val","split","pop","subQuery","methods","query","from","map","column","order","as","extras","result","raw","shouldSelect","withSelect","fieldPath","rels","numbers","texts"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { SQL } from 'drizzle-orm';
|
|
1
|
+
import type { SQL, Table } from 'drizzle-orm';
|
|
2
2
|
import type { FlattenedField, Where } from 'payload';
|
|
3
3
|
import type { DrizzleAdapter, GenericColumn } from '../types.js';
|
|
4
4
|
import type { BuildQueryJoinAliases } from './buildQuery.js';
|
|
5
|
-
export declare function buildAndOrConditions({ adapter, fields, joins, locale, selectFields, selectLocale, tableName, where, }: {
|
|
5
|
+
export declare function buildAndOrConditions({ adapter, aliasTable, fields, joins, locale, selectFields, selectLocale, tableName, where, }: {
|
|
6
6
|
adapter: DrizzleAdapter;
|
|
7
|
+
aliasTable?: Table;
|
|
7
8
|
collectionSlug?: string;
|
|
8
9
|
fields: FlattenedField[];
|
|
9
10
|
globalSlug?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAndOrConditions.d.ts","sourceRoot":"","sources":["../../src/queries/buildAndOrConditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"buildAndOrConditions.d.ts","sourceRoot":"","sources":["../../src/queries/buildAndOrConditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAI5D,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,EAAE,CAAA;CACf,GAAG,GAAG,EAAE,CAyBR"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseParams } from './parseParams.js';
|
|
2
|
-
export function buildAndOrConditions({ adapter, fields, joins, locale, selectFields, selectLocale, tableName, where }) {
|
|
2
|
+
export function buildAndOrConditions({ adapter, aliasTable, fields, joins, locale, selectFields, selectLocale, tableName, where }) {
|
|
3
3
|
const completedConditions = [];
|
|
4
4
|
// Loop over all AND / OR operations and add them to the AND / OR query param
|
|
5
5
|
// Operations should come through as an array
|
|
@@ -8,6 +8,7 @@ export function buildAndOrConditions({ adapter, fields, joins, locale, selectFie
|
|
|
8
8
|
if (typeof condition === 'object') {
|
|
9
9
|
const result = parseParams({
|
|
10
10
|
adapter,
|
|
11
|
+
aliasTable,
|
|
11
12
|
fields,
|
|
12
13
|
joins,
|
|
13
14
|
locale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queries/buildAndOrConditions.ts"],"sourcesContent":["import type { SQL } from 'drizzle-orm'\nimport type { FlattenedField, Where } from 'payload'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { parseParams } from './parseParams.js'\n\nexport function buildAndOrConditions({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n selectLocale,\n tableName,\n where,\n}: {\n adapter: DrizzleAdapter\n collectionSlug?: string\n fields: FlattenedField[]\n globalSlug?: string\n joins: BuildQueryJoinAliases\n locale?: string\n selectFields: Record<string, GenericColumn>\n selectLocale?: boolean\n tableName: string\n where: Where[]\n}): SQL[] {\n const completedConditions = []\n // Loop over all AND / OR operations and add them to the AND / OR query param\n // Operations should come through as an array\n\n for (const condition of where) {\n // If the operation is properly formatted as an object\n if (typeof condition === 'object') {\n const result = parseParams({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n selectLocale,\n tableName,\n where: condition,\n })\n if (result && Object.keys(result).length > 0) {\n completedConditions.push(result)\n }\n }\n }\n return completedConditions\n}\n"],"names":["parseParams","buildAndOrConditions","adapter","fields","joins","locale","selectFields","selectLocale","tableName","where","completedConditions","condition","result","Object","keys","length","push"],"mappings":"AAMA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,SAASC,qBAAqB,EACnCC,OAAO,EACPC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,YAAY,EACZC,YAAY,EACZC,SAAS,EACTC,KAAK,
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildAndOrConditions.ts"],"sourcesContent":["import type { SQL, Table } from 'drizzle-orm'\nimport type { FlattenedField, Where } from 'payload'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { parseParams } from './parseParams.js'\n\nexport function buildAndOrConditions({\n adapter,\n aliasTable,\n fields,\n joins,\n locale,\n selectFields,\n selectLocale,\n tableName,\n where,\n}: {\n adapter: DrizzleAdapter\n aliasTable?: Table\n collectionSlug?: string\n fields: FlattenedField[]\n globalSlug?: string\n joins: BuildQueryJoinAliases\n locale?: string\n selectFields: Record<string, GenericColumn>\n selectLocale?: boolean\n tableName: string\n where: Where[]\n}): SQL[] {\n const completedConditions = []\n // Loop over all AND / OR operations and add them to the AND / OR query param\n // Operations should come through as an array\n\n for (const condition of where) {\n // If the operation is properly formatted as an object\n if (typeof condition === 'object') {\n const result = parseParams({\n adapter,\n aliasTable,\n fields,\n joins,\n locale,\n selectFields,\n selectLocale,\n tableName,\n where: condition,\n })\n if (result && Object.keys(result).length > 0) {\n completedConditions.push(result)\n }\n }\n }\n return completedConditions\n}\n"],"names":["parseParams","buildAndOrConditions","adapter","aliasTable","fields","joins","locale","selectFields","selectLocale","tableName","where","completedConditions","condition","result","Object","keys","length","push"],"mappings":"AAMA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,SAASC,qBAAqB,EACnCC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,YAAY,EACZC,YAAY,EACZC,SAAS,EACTC,KAAK,EAaN;IACC,MAAMC,sBAAsB,EAAE;IAC9B,6EAA6E;IAC7E,6CAA6C;IAE7C,KAAK,MAAMC,aAAaF,MAAO;QAC7B,sDAAsD;QACtD,IAAI,OAAOE,cAAc,UAAU;YACjC,MAAMC,SAASb,YAAY;gBACzBE;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC,OAAOE;YACT;YACA,IAAIC,UAAUC,OAAOC,IAAI,CAACF,QAAQG,MAAM,GAAG,GAAG;gBAC5CL,oBAAoBM,IAAI,CAACJ;YAC3B;QACF;IACF;IACA,OAAOF;AACT"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { Table } from 'drizzle-orm';
|
|
1
2
|
import type { FlattenedField, Sort } from 'payload';
|
|
2
3
|
import type { DrizzleAdapter, GenericColumn } from '../types.js';
|
|
3
4
|
import type { BuildQueryJoinAliases, BuildQueryResult } from './buildQuery.js';
|
|
4
5
|
type Args = {
|
|
5
6
|
adapter: DrizzleAdapter;
|
|
7
|
+
aliasTable?: Table;
|
|
6
8
|
fields: FlattenedField[];
|
|
7
9
|
joins: BuildQueryJoinAliases;
|
|
8
10
|
locale?: string;
|
|
@@ -13,6 +15,6 @@ type Args = {
|
|
|
13
15
|
/**
|
|
14
16
|
* Gets the order by column and direction constructed from the sort argument adds the column to the select fields and joins if necessary
|
|
15
17
|
*/
|
|
16
|
-
export declare const buildOrderBy: ({ adapter, fields, joins, locale, selectFields, sort, tableName, }: Args) => BuildQueryResult["orderBy"];
|
|
18
|
+
export declare const buildOrderBy: ({ adapter, aliasTable, fields, joins, locale, selectFields, sort, tableName, }: Args) => BuildQueryResult["orderBy"];
|
|
17
19
|
export {};
|
|
18
20
|
//# sourceMappingURL=buildOrderBy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildOrderBy.d.ts","sourceRoot":"","sources":["../../src/queries/buildOrderBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAInD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"buildOrderBy.d.ts","sourceRoot":"","sources":["../../src/queries/buildOrderBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAInD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAK9E,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,mFAStB,IAAI,KAAG,gBAAgB,CAAC,SAAS,CAuDnC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { asc, desc } from 'drizzle-orm';
|
|
2
|
+
import { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js';
|
|
2
3
|
import { getTableColumnFromPath } from './getTableColumnFromPath.js';
|
|
3
4
|
/**
|
|
4
5
|
* Gets the order by column and direction constructed from the sort argument adds the column to the select fields and joins if necessary
|
|
5
|
-
*/ export const buildOrderBy = ({ adapter, fields, joins, locale, selectFields, sort, tableName })=>{
|
|
6
|
+
*/ export const buildOrderBy = ({ adapter, aliasTable, fields, joins, locale, selectFields, sort, tableName })=>{
|
|
6
7
|
const orderBy = [];
|
|
7
8
|
if (!sort) {
|
|
8
9
|
const createdAt = adapter.tables[tableName]?.createdAt;
|
|
@@ -41,7 +42,7 @@ import { getTableColumnFromPath } from './getTableColumnFromPath.js';
|
|
|
41
42
|
});
|
|
42
43
|
if (sortTable?.[sortTableColumnName]) {
|
|
43
44
|
orderBy.push({
|
|
44
|
-
column: sortTable[sortTableColumnName],
|
|
45
|
+
column: aliasTable && tableName === getNameFromDrizzleTable(sortTable) ? aliasTable[sortTableColumnName] : sortTable[sortTableColumnName],
|
|
45
46
|
order: sortDirection === 'asc' ? asc : desc
|
|
46
47
|
});
|
|
47
48
|
selectFields[sortTableColumnName] = sortTable[sortTableColumnName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queries/buildOrderBy.ts"],"sourcesContent":["import type { FlattenedField, Sort } from 'payload'\n\nimport { asc, desc } from 'drizzle-orm'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases, BuildQueryResult } from './buildQuery.js'\n\nimport { getTableColumnFromPath } from './getTableColumnFromPath.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n fields: FlattenedField[]\n joins: BuildQueryJoinAliases\n locale?: string\n selectFields: Record<string, GenericColumn>\n sort?: Sort\n tableName: string\n}\n\n/**\n * Gets the order by column and direction constructed from the sort argument adds the column to the select fields and joins if necessary\n */\nexport const buildOrderBy = ({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n sort,\n tableName,\n}: Args): BuildQueryResult['orderBy'] => {\n const orderBy: BuildQueryResult['orderBy'] = []\n\n if (!sort) {\n const createdAt = adapter.tables[tableName]?.createdAt\n if (createdAt) {\n sort = '-createdAt'\n } else {\n sort = '-id'\n }\n }\n\n if (typeof sort === 'string') {\n sort = [sort]\n }\n\n for (const sortItem of sort) {\n let sortProperty: string\n let sortDirection: 'asc' | 'desc'\n if (sortItem[0] === '-') {\n sortProperty = sortItem.substring(1)\n sortDirection = 'desc'\n } else {\n sortProperty = sortItem\n sortDirection = 'asc'\n }\n try {\n const { columnName: sortTableColumnName, table: sortTable } = getTableColumnFromPath({\n adapter,\n collectionPath: sortProperty,\n fields,\n joins,\n locale,\n pathSegments: sortProperty.replace(/__/g, '.').split('.'),\n selectFields,\n tableName,\n value: sortProperty,\n })\n if (sortTable?.[sortTableColumnName]) {\n orderBy.push({\n column: sortTable[sortTableColumnName],\n order: sortDirection === 'asc' ? asc : desc,\n })\n\n selectFields[sortTableColumnName] = sortTable[sortTableColumnName]\n }\n } catch (err) {\n // continue\n }\n }\n\n return orderBy\n}\n"],"names":["asc","desc","getTableColumnFromPath","buildOrderBy","adapter","fields","joins","locale","selectFields","sort","tableName","orderBy","createdAt","tables","sortItem","sortProperty","sortDirection","substring","columnName","sortTableColumnName","table","sortTable","collectionPath","pathSegments","replace","split","value","push","column","order","err"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildOrderBy.ts"],"sourcesContent":["import type { Table } from 'drizzle-orm'\nimport type { FlattenedField, Sort } from 'payload'\n\nimport { asc, desc } from 'drizzle-orm'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases, BuildQueryResult } from './buildQuery.js'\n\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { getTableColumnFromPath } from './getTableColumnFromPath.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n aliasTable?: Table\n fields: FlattenedField[]\n joins: BuildQueryJoinAliases\n locale?: string\n selectFields: Record<string, GenericColumn>\n sort?: Sort\n tableName: string\n}\n\n/**\n * Gets the order by column and direction constructed from the sort argument adds the column to the select fields and joins if necessary\n */\nexport const buildOrderBy = ({\n adapter,\n aliasTable,\n fields,\n joins,\n locale,\n selectFields,\n sort,\n tableName,\n}: Args): BuildQueryResult['orderBy'] => {\n const orderBy: BuildQueryResult['orderBy'] = []\n\n if (!sort) {\n const createdAt = adapter.tables[tableName]?.createdAt\n if (createdAt) {\n sort = '-createdAt'\n } else {\n sort = '-id'\n }\n }\n\n if (typeof sort === 'string') {\n sort = [sort]\n }\n\n for (const sortItem of sort) {\n let sortProperty: string\n let sortDirection: 'asc' | 'desc'\n if (sortItem[0] === '-') {\n sortProperty = sortItem.substring(1)\n sortDirection = 'desc'\n } else {\n sortProperty = sortItem\n sortDirection = 'asc'\n }\n try {\n const { columnName: sortTableColumnName, table: sortTable } = getTableColumnFromPath({\n adapter,\n collectionPath: sortProperty,\n fields,\n joins,\n locale,\n pathSegments: sortProperty.replace(/__/g, '.').split('.'),\n selectFields,\n tableName,\n value: sortProperty,\n })\n if (sortTable?.[sortTableColumnName]) {\n orderBy.push({\n column:\n aliasTable && tableName === getNameFromDrizzleTable(sortTable)\n ? aliasTable[sortTableColumnName]\n : sortTable[sortTableColumnName],\n order: sortDirection === 'asc' ? asc : desc,\n })\n\n selectFields[sortTableColumnName] = sortTable[sortTableColumnName]\n }\n } catch (err) {\n // continue\n }\n }\n\n return orderBy\n}\n"],"names":["asc","desc","getNameFromDrizzleTable","getTableColumnFromPath","buildOrderBy","adapter","aliasTable","fields","joins","locale","selectFields","sort","tableName","orderBy","createdAt","tables","sortItem","sortProperty","sortDirection","substring","columnName","sortTableColumnName","table","sortTable","collectionPath","pathSegments","replace","split","value","push","column","order","err"],"mappings":"AAGA,SAASA,GAAG,EAAEC,IAAI,QAAQ,cAAa;AAKvC,SAASC,uBAAuB,QAAQ,0CAAyC;AACjF,SAASC,sBAAsB,QAAQ,8BAA6B;AAapE;;CAEC,GACD,OAAO,MAAMC,eAAe,CAAC,EAC3BC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,YAAY,EACZC,IAAI,EACJC,SAAS,EACJ;IACL,MAAMC,UAAuC,EAAE;IAE/C,IAAI,CAACF,MAAM;QACT,MAAMG,YAAYT,QAAQU,MAAM,CAACH,UAAU,EAAEE;QAC7C,IAAIA,WAAW;YACbH,OAAO;QACT,OAAO;YACLA,OAAO;QACT;IACF;IAEA,IAAI,OAAOA,SAAS,UAAU;QAC5BA,OAAO;YAACA;SAAK;IACf;IAEA,KAAK,MAAMK,YAAYL,KAAM;QAC3B,IAAIM;QACJ,IAAIC;QACJ,IAAIF,QAAQ,CAAC,EAAE,KAAK,KAAK;YACvBC,eAAeD,SAASG,SAAS,CAAC;YAClCD,gBAAgB;QAClB,OAAO;YACLD,eAAeD;YACfE,gBAAgB;QAClB;QACA,IAAI;YACF,MAAM,EAAEE,YAAYC,mBAAmB,EAAEC,OAAOC,SAAS,EAAE,GAAGpB,uBAAuB;gBACnFE;gBACAmB,gBAAgBP;gBAChBV;gBACAC;gBACAC;gBACAgB,cAAcR,aAAaS,OAAO,CAAC,OAAO,KAAKC,KAAK,CAAC;gBACrDjB;gBACAE;gBACAgB,OAAOX;YACT;YACA,IAAIM,WAAW,CAACF,oBAAoB,EAAE;gBACpCR,QAAQgB,IAAI,CAAC;oBACXC,QACExB,cAAcM,cAAcV,wBAAwBqB,aAChDjB,UAAU,CAACe,oBAAoB,GAC/BE,SAAS,CAACF,oBAAoB;oBACpCU,OAAOb,kBAAkB,QAAQlB,MAAMC;gBACzC;gBAEAS,YAAY,CAACW,oBAAoB,GAAGE,SAAS,CAACF,oBAAoB;YACpE;QACF,EAAE,OAAOW,KAAK;QACZ,WAAW;QACb;IACF;IAEA,OAAOnB;AACT,EAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { asc, desc, SQL } from 'drizzle-orm';
|
|
1
|
+
import type { asc, desc, SQL, Table } from 'drizzle-orm';
|
|
2
2
|
import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
3
3
|
import type { FlattenedField, Sort, Where } from 'payload';
|
|
4
4
|
import type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js';
|
|
@@ -9,6 +9,7 @@ export type BuildQueryJoinAliases = {
|
|
|
9
9
|
}[];
|
|
10
10
|
type BuildQueryArgs = {
|
|
11
11
|
adapter: DrizzleAdapter;
|
|
12
|
+
aliasTable?: Table;
|
|
12
13
|
fields: FlattenedField[];
|
|
13
14
|
joins?: BuildQueryJoinAliases;
|
|
14
15
|
locale?: string;
|
|
@@ -26,6 +27,6 @@ export type BuildQueryResult = {
|
|
|
26
27
|
selectFields: Record<string, GenericColumn>;
|
|
27
28
|
where: SQL;
|
|
28
29
|
};
|
|
29
|
-
declare const buildQuery: ({ adapter, fields, joins, locale, selectLocale, sort, tableName, where: incomingWhere, }: BuildQueryArgs) => BuildQueryResult;
|
|
30
|
+
declare const buildQuery: ({ adapter, aliasTable, fields, joins, locale, selectLocale, sort, tableName, where: incomingWhere, }: BuildQueryArgs) => BuildQueryResult;
|
|
30
31
|
export default buildQuery;
|
|
31
32
|
//# sourceMappingURL=buildQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildQuery.d.ts","sourceRoot":"","sources":["../../src/queries/buildQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"buildQuery.d.ts","sourceRoot":"","sources":["../../src/queries/buildQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,GAAG,CAAA;IACd,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC7C,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW,CAAA;CAC9C,EAAE,CAAA;AAEH,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,qBAAqB,CAAA;IAC5B,OAAO,EAAE;QACP,MAAM,EAAE,aAAa,CAAA;QACrB,KAAK,EAAE,OAAO,GAAG,GAAG,OAAO,IAAI,CAAA;KAChC,EAAE,CAAA;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,KAAK,EAAE,GAAG,CAAA;CACX,CAAA;AACD,QAAA,MAAM,UAAU,yGAUb,cAAc,KAAG,gBAsCnB,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { buildOrderBy } from './buildOrderBy.js';
|
|
2
2
|
import { parseParams } from './parseParams.js';
|
|
3
|
-
const buildQuery = function buildQuery({ adapter, fields, joins = [], locale, selectLocale, sort, tableName, where: incomingWhere }) {
|
|
3
|
+
const buildQuery = function buildQuery({ adapter, aliasTable, fields, joins = [], locale, selectLocale, sort, tableName, where: incomingWhere }) {
|
|
4
4
|
const selectFields = {
|
|
5
5
|
id: adapter.tables[tableName].id
|
|
6
6
|
};
|
|
7
7
|
const orderBy = buildOrderBy({
|
|
8
8
|
adapter,
|
|
9
|
+
aliasTable,
|
|
9
10
|
fields,
|
|
10
11
|
joins,
|
|
11
12
|
locale,
|
|
@@ -17,6 +18,7 @@ const buildQuery = function buildQuery({ adapter, fields, joins = [], locale, se
|
|
|
17
18
|
if (incomingWhere && Object.keys(incomingWhere).length > 0) {
|
|
18
19
|
where = parseParams({
|
|
19
20
|
adapter,
|
|
21
|
+
aliasTable,
|
|
20
22
|
fields,
|
|
21
23
|
joins,
|
|
22
24
|
locale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queries/buildQuery.ts"],"sourcesContent":["import type { asc, desc, SQL } from 'drizzle-orm'\nimport type { PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport type { FlattenedField, Sort, Where } from 'payload'\n\nimport type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js'\n\nimport { buildOrderBy } from './buildOrderBy.js'\nimport { parseParams } from './parseParams.js'\n\nexport type BuildQueryJoinAliases = {\n condition: SQL\n table: GenericTable | PgTableWithColumns<any>\n type?: 'innerJoin' | 'leftJoin' | 'rightJoin'\n}[]\n\ntype BuildQueryArgs = {\n adapter: DrizzleAdapter\n fields: FlattenedField[]\n joins?: BuildQueryJoinAliases\n locale?: string\n selectLocale?: boolean\n sort?: Sort\n tableName: string\n where: Where\n}\n\nexport type BuildQueryResult = {\n joins: BuildQueryJoinAliases\n orderBy: {\n column: GenericColumn\n order: typeof asc | typeof desc\n }[]\n selectFields: Record<string, GenericColumn>\n where: SQL\n}\nconst buildQuery = function buildQuery({\n adapter,\n fields,\n joins = [],\n locale,\n selectLocale,\n sort,\n tableName,\n where: incomingWhere,\n}: BuildQueryArgs): BuildQueryResult {\n const selectFields: Record<string, GenericColumn> = {\n id: adapter.tables[tableName].id,\n }\n\n const orderBy = buildOrderBy({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n sort,\n tableName,\n })\n\n let where: SQL\n\n if (incomingWhere && Object.keys(incomingWhere).length > 0) {\n where = parseParams({\n adapter,\n fields,\n joins,\n locale,\n selectFields,\n selectLocale,\n tableName,\n where: incomingWhere,\n })\n }\n\n return {\n joins,\n orderBy,\n selectFields,\n where,\n }\n}\n\nexport default buildQuery\n"],"names":["buildOrderBy","parseParams","buildQuery","adapter","fields","joins","locale","selectLocale","sort","tableName","where","incomingWhere","selectFields","id","tables","orderBy","Object","keys","length"],"mappings":"AAMA,SAASA,YAAY,QAAQ,oBAAmB;AAChD,SAASC,WAAW,QAAQ,mBAAkB;
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildQuery.ts"],"sourcesContent":["import type { asc, desc, SQL, Table } from 'drizzle-orm'\nimport type { PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport type { FlattenedField, Sort, Where } from 'payload'\n\nimport type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js'\n\nimport { buildOrderBy } from './buildOrderBy.js'\nimport { parseParams } from './parseParams.js'\n\nexport type BuildQueryJoinAliases = {\n condition: SQL\n table: GenericTable | PgTableWithColumns<any>\n type?: 'innerJoin' | 'leftJoin' | 'rightJoin'\n}[]\n\ntype BuildQueryArgs = {\n adapter: DrizzleAdapter\n aliasTable?: Table\n fields: FlattenedField[]\n joins?: BuildQueryJoinAliases\n locale?: string\n selectLocale?: boolean\n sort?: Sort\n tableName: string\n where: Where\n}\n\nexport type BuildQueryResult = {\n joins: BuildQueryJoinAliases\n orderBy: {\n column: GenericColumn\n order: typeof asc | typeof desc\n }[]\n selectFields: Record<string, GenericColumn>\n where: SQL\n}\nconst buildQuery = function buildQuery({\n adapter,\n aliasTable,\n fields,\n joins = [],\n locale,\n selectLocale,\n sort,\n tableName,\n where: incomingWhere,\n}: BuildQueryArgs): BuildQueryResult {\n const selectFields: Record<string, GenericColumn> = {\n id: adapter.tables[tableName].id,\n }\n\n const orderBy = buildOrderBy({\n adapter,\n aliasTable,\n fields,\n joins,\n locale,\n selectFields,\n sort,\n tableName,\n })\n\n let where: SQL\n\n if (incomingWhere && Object.keys(incomingWhere).length > 0) {\n where = parseParams({\n adapter,\n aliasTable,\n fields,\n joins,\n locale,\n selectFields,\n selectLocale,\n tableName,\n where: incomingWhere,\n })\n }\n\n return {\n joins,\n orderBy,\n selectFields,\n where,\n }\n}\n\nexport default buildQuery\n"],"names":["buildOrderBy","parseParams","buildQuery","adapter","aliasTable","fields","joins","locale","selectLocale","sort","tableName","where","incomingWhere","selectFields","id","tables","orderBy","Object","keys","length"],"mappings":"AAMA,SAASA,YAAY,QAAQ,oBAAmB;AAChD,SAASC,WAAW,QAAQ,mBAAkB;AA6B9C,MAAMC,aAAa,SAASA,WAAW,EACrCC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,QAAQ,EAAE,EACVC,MAAM,EACNC,YAAY,EACZC,IAAI,EACJC,SAAS,EACTC,OAAOC,aAAa,EACL;IACf,MAAMC,eAA8C;QAClDC,IAAIX,QAAQY,MAAM,CAACL,UAAU,CAACI,EAAE;IAClC;IAEA,MAAME,UAAUhB,aAAa;QAC3BG;QACAC;QACAC;QACAC;QACAC;QACAM;QACAJ;QACAC;IACF;IAEA,IAAIC;IAEJ,IAAIC,iBAAiBK,OAAOC,IAAI,CAACN,eAAeO,MAAM,GAAG,GAAG;QAC1DR,QAAQV,YAAY;YAClBE;YACAC;YACAC;YACAC;YACAC;YACAM;YACAL;YACAE;YACAC,OAAOC;QACT;IACF;IAEA,OAAO;QACLN;QACAU;QACAH;QACAF;IACF;AACF;AAEA,eAAeT,WAAU"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { SQL } from 'drizzle-orm';
|
|
1
|
+
import type { SQL, Table } from 'drizzle-orm';
|
|
2
2
|
import type { FlattenedField, Where } from 'payload';
|
|
3
3
|
import type { DrizzleAdapter, GenericColumn } from '../types.js';
|
|
4
4
|
import type { BuildQueryJoinAliases } from './buildQuery.js';
|
|
5
5
|
type Args = {
|
|
6
6
|
adapter: DrizzleAdapter;
|
|
7
|
+
aliasTable?: Table;
|
|
7
8
|
fields: FlattenedField[];
|
|
8
9
|
joins: BuildQueryJoinAliases;
|
|
9
10
|
locale: string;
|
|
@@ -12,6 +13,6 @@ type Args = {
|
|
|
12
13
|
tableName: string;
|
|
13
14
|
where: Where;
|
|
14
15
|
};
|
|
15
|
-
export declare function parseParams({ adapter, fields, joins, locale, selectFields, selectLocale, tableName, where, }: Args): SQL;
|
|
16
|
+
export declare function parseParams({ adapter, aliasTable, fields, joins, locale, selectFields, selectLocale, tableName, where, }: Args): SQL;
|
|
16
17
|
export {};
|
|
17
18
|
//# sourceMappingURL=parseParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseParams.d.ts","sourceRoot":"","sources":["../../src/queries/parseParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"parseParams.d.ts","sourceRoot":"","sources":["../../src/queries/parseParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAY,KAAK,EAAE,MAAM,SAAS,CAAA;AAO9D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAO5D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE,IAAI,GAAG,GAAG,CAqUZ"}
|
|
@@ -2,10 +2,11 @@ import { and, isNotNull, isNull, ne, notInArray, or, sql } from 'drizzle-orm';
|
|
|
2
2
|
import { PgUUID } from 'drizzle-orm/pg-core';
|
|
3
3
|
import { QueryError } from 'payload';
|
|
4
4
|
import { validOperators } from 'payload/shared';
|
|
5
|
+
import { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js';
|
|
5
6
|
import { buildAndOrConditions } from './buildAndOrConditions.js';
|
|
6
7
|
import { getTableColumnFromPath } from './getTableColumnFromPath.js';
|
|
7
8
|
import { sanitizeQueryValue } from './sanitizeQueryValue.js';
|
|
8
|
-
export function parseParams({ adapter, fields, joins, locale, selectFields, selectLocale, tableName, where }) {
|
|
9
|
+
export function parseParams({ adapter, aliasTable, fields, joins, locale, selectFields, selectLocale, tableName, where }) {
|
|
9
10
|
let result;
|
|
10
11
|
const constraints = [];
|
|
11
12
|
if (typeof where === 'object' && Object.keys(where).length > 0) {
|
|
@@ -22,6 +23,7 @@ export function parseParams({ adapter, fields, joins, locale, selectFields, sele
|
|
|
22
23
|
if (Array.isArray(condition)) {
|
|
23
24
|
const builtConditions = buildAndOrConditions({
|
|
24
25
|
adapter,
|
|
26
|
+
aliasTable,
|
|
25
27
|
fields,
|
|
26
28
|
joins,
|
|
27
29
|
locale,
|
|
@@ -44,6 +46,7 @@ export function parseParams({ adapter, fields, joins, locale, selectFields, sele
|
|
|
44
46
|
const val = where[relationOrPath][operator];
|
|
45
47
|
const { columnName, columns, constraints: queryConstraints, field, getNotNullColumnByValue, pathSegments, rawColumn, table } = getTableColumnFromPath({
|
|
46
48
|
adapter,
|
|
49
|
+
aliasTable,
|
|
47
50
|
collectionPath: relationOrPath,
|
|
48
51
|
fields,
|
|
49
52
|
joins,
|
|
@@ -199,8 +202,9 @@ export function parseParams({ adapter, fields, joins, locale, selectFields, sele
|
|
|
199
202
|
constraints.push(wrapOperator(...queryColumns.map(({ rawColumn, value })=>adapter.operators[queryOperator](rawColumn, value))));
|
|
200
203
|
break;
|
|
201
204
|
}
|
|
205
|
+
const resolvedColumn = rawColumn || (aliasTable && tableName === getNameFromDrizzleTable(table) ? aliasTable[columnName] : table[columnName]);
|
|
202
206
|
if (queryOperator === 'not_equals' && queryValue !== null) {
|
|
203
|
-
constraints.push(or(isNull(
|
|
207
|
+
constraints.push(or(isNull(resolvedColumn), /* eslint-disable @typescript-eslint/no-explicit-any */ ne(resolvedColumn, queryValue)));
|
|
204
208
|
break;
|
|
205
209
|
}
|
|
206
210
|
if ((field.type === 'relationship' || field.type === 'upload') && Array.isArray(queryValue) && operator === 'not_in') {
|
|
@@ -211,11 +215,11 @@ export function parseParams({ adapter, fields, joins, locale, selectFields, sele
|
|
|
211
215
|
break;
|
|
212
216
|
}
|
|
213
217
|
if (operator === 'equals' && queryValue === null) {
|
|
214
|
-
constraints.push(isNull(
|
|
218
|
+
constraints.push(isNull(resolvedColumn));
|
|
215
219
|
break;
|
|
216
220
|
}
|
|
217
221
|
if (operator === 'not_equals' && queryValue === null) {
|
|
218
|
-
constraints.push(isNotNull(
|
|
222
|
+
constraints.push(isNotNull(resolvedColumn));
|
|
219
223
|
break;
|
|
220
224
|
}
|
|
221
225
|
if (field.type === 'point' && adapter.name === 'postgres') {
|
|
@@ -245,7 +249,7 @@ export function parseParams({ adapter, fields, joins, locale, selectFields, sele
|
|
|
245
249
|
}
|
|
246
250
|
break;
|
|
247
251
|
}
|
|
248
|
-
constraints.push(adapter.operators[queryOperator](
|
|
252
|
+
constraints.push(adapter.operators[queryOperator](resolvedColumn, queryValue));
|
|
249
253
|
}
|
|
250
254
|
}
|
|
251
255
|
}
|