@payloadcms/drizzle 4.0.0-internal.e55ccef → 4.0.0-internal.ea6e8f8
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 +25 -3
- package/dist/count.js.map +1 -1
- package/dist/countVersions.d.ts.map +1 -1
- package/dist/countVersions.js +28 -4
- package/dist/countVersions.js.map +1 -1
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js +15 -2
- package/dist/createGlobalVersion.js.map +1 -1
- package/dist/createTableName.d.ts.map +1 -1
- package/dist/createTableName.js +2 -7
- package/dist/createTableName.js.map +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +12 -1
- package/dist/createVersion.js.map +1 -1
- package/dist/deleteBranchGlobal.d.ts +10 -0
- package/dist/deleteBranchGlobal.d.ts.map +1 -0
- package/dist/deleteBranchGlobal.js +27 -0
- package/dist/deleteBranchGlobal.js.map +1 -0
- package/dist/deleteOne.d.ts.map +1 -1
- package/dist/deleteOne.js +18 -1
- package/dist/deleteOne.js.map +1 -1
- package/dist/exports/postgres.d.ts +3 -0
- package/dist/exports/postgres.d.ts.map +1 -1
- package/dist/exports/postgres.js +3 -0
- package/dist/exports/postgres.js.map +1 -1
- package/dist/exports/sqlite.d.ts +1 -0
- package/dist/exports/sqlite.d.ts.map +1 -1
- package/dist/exports/sqlite.js +1 -0
- package/dist/exports/sqlite.js.map +1 -1
- package/dist/find/buildFindManyArgs.d.ts +3 -2
- package/dist/find/buildFindManyArgs.d.ts.map +1 -1
- package/dist/find/buildFindManyArgs.js +2 -1
- package/dist/find/buildFindManyArgs.js.map +1 -1
- package/dist/find/buildPolymorphicJoinQuery.d.ts +39 -0
- package/dist/find/buildPolymorphicJoinQuery.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinQuery.js +152 -0
- package/dist/find/buildPolymorphicJoinQuery.js.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts +20 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.js +301 -0
- package/dist/find/buildPolymorphicJoinWhere.js.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts +37 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.js +191 -0
- package/dist/find/createPolymorphicJoinWherePlan.js.map +1 -0
- package/dist/find/findMany.d.ts +6 -1
- package/dist/find/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +16 -3
- package/dist/find/findMany.js.map +1 -1
- package/dist/find/traverseFields.d.ts +3 -2
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +72 -197
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +32 -4
- package/dist/find.js.map +1 -1
- package/dist/findDistinct.d.ts.map +1 -1
- package/dist/findDistinct.js +107 -8
- package/dist/findDistinct.js.map +1 -1
- package/dist/findGlobal.d.ts.map +1 -1
- package/dist/findGlobal.js +22 -5
- package/dist/findGlobal.js.map +1 -1
- package/dist/findGlobalVersions.js +8 -3
- 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 +30 -3
- package/dist/findOne.js.map +1 -1
- package/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +32 -5
- package/dist/findVersions.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +41 -15
- package/dist/migrate.js.map +1 -1
- package/dist/migrateDown.d.ts +2 -1
- package/dist/migrateDown.d.ts.map +1 -1
- package/dist/migrateDown.js +17 -4
- package/dist/migrateDown.js.map +1 -1
- package/dist/migrateFresh.d.ts +4 -2
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +26 -9
- package/dist/migrateFresh.js.map +1 -1
- package/dist/migrateRefresh.d.ts +2 -1
- package/dist/migrateRefresh.d.ts.map +1 -1
- package/dist/migrateRefresh.js +20 -5
- package/dist/migrateRefresh.js.map +1 -1
- package/dist/migrateReset.d.ts +2 -1
- package/dist/migrateReset.d.ts.map +1 -1
- package/dist/migrateReset.js +18 -4
- package/dist/migrateReset.js.map +1 -1
- package/dist/migrateStatus.d.ts +2 -1
- package/dist/migrateStatus.d.ts.map +1 -1
- package/dist/migrateStatus.js +11 -6
- package/dist/migrateStatus.js.map +1 -1
- package/dist/postgres/createJSONQuery/index.js +3 -3
- package/dist/postgres/createJSONQuery/index.js.map +1 -1
- package/dist/postgres/init.d.ts.map +1 -1
- package/dist/postgres/init.js +6 -0
- package/dist/postgres/init.js.map +1 -1
- package/dist/postgres/insert.d.ts.map +1 -1
- package/dist/postgres/insert.js +4 -2
- package/dist/postgres/insert.js.map +1 -1
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.d.ts +35 -0
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.d.ts.map +1 -0
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.js +185 -0
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.js.map +1 -0
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js +8 -4
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js.map +1 -1
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts +15 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts.map +1 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js +25 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js.map +1 -0
- package/dist/postgres/query/postgresUnaccent.d.ts +13 -0
- package/dist/postgres/query/postgresUnaccent.d.ts.map +1 -0
- package/dist/postgres/query/postgresUnaccent.js +40 -0
- package/dist/postgres/query/postgresUnaccent.js.map +1 -0
- package/dist/postgres/types.d.ts +17 -2
- package/dist/postgres/types.d.ts.map +1 -1
- package/dist/postgres/types.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/buildBranchVisibility.d.ts +11 -0
- package/dist/queries/buildBranchVisibility.d.ts.map +1 -0
- package/dist/queries/buildBranchVisibility.js +48 -0
- package/dist/queries/buildBranchVisibility.js.map +1 -0
- package/dist/queries/buildOperatorConstraint.d.ts +22 -0
- package/dist/queries/buildOperatorConstraint.d.ts.map +1 -0
- package/dist/queries/buildOperatorConstraint.js +63 -0
- package/dist/queries/buildOperatorConstraint.js.map +1 -0
- package/dist/queries/buildOrderBy.d.ts +3 -2
- package/dist/queries/buildOrderBy.d.ts.map +1 -1
- package/dist/queries/buildOrderBy.js +2 -1
- 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 +4 -2
- package/dist/queries/buildQuery.js.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +15 -5
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +225 -54
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/operatorMap.d.ts +7 -3
- package/dist/queries/operatorMap.d.ts.map +1 -1
- package/dist/queries/operatorMap.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 +266 -11
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/resolveRelationshipPath.d.ts +36 -0
- package/dist/queries/resolveRelationshipPath.d.ts.map +1 -0
- package/dist/queries/resolveRelationshipPath.js +66 -0
- package/dist/queries/resolveRelationshipPath.js.map +1 -0
- package/dist/queries/validateOperatorHandlers.d.ts +8 -0
- package/dist/queries/validateOperatorHandlers.d.ts.map +1 -0
- package/dist/queries/validateOperatorHandlers.js +30 -0
- package/dist/queries/validateOperatorHandlers.js.map +1 -0
- package/dist/queryDrafts.d.ts.map +1 -1
- package/dist/queryDrafts.js +23 -4
- package/dist/queryDrafts.js.map +1 -1
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +20 -17
- package/dist/schema/build.js.map +1 -1
- package/dist/schema/traverseFields.js +5 -5
- package/dist/schema/traverseFields.js.map +1 -1
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js +3 -2
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js.map +1 -1
- package/dist/sqlite/createJSONQuery/index.d.ts.map +1 -1
- package/dist/sqlite/createJSONQuery/index.js +6 -5
- package/dist/sqlite/createJSONQuery/index.js.map +1 -1
- package/dist/sqlite/insert.d.ts.map +1 -1
- package/dist/sqlite/insert.js +9 -4
- package/dist/sqlite/insert.js.map +1 -1
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.d.ts +15 -0
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.d.ts.map +1 -0
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.js +114 -0
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.js.map +1 -0
- package/dist/sqlite/types.d.ts +4 -0
- 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 +13 -5
- package/dist/transactions/beginTransaction.js.map +1 -1
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +1 -5
- package/dist/transactions/commitTransaction.js.map +1 -1
- package/dist/transform/write/array.d.ts +3 -2
- package/dist/transform/write/array.d.ts.map +1 -1
- package/dist/transform/write/array.js +2 -1
- package/dist/transform/write/array.js.map +1 -1
- package/dist/transform/write/blocks.d.ts +3 -2
- package/dist/transform/write/blocks.d.ts.map +1 -1
- package/dist/transform/write/blocks.js +2 -1
- 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 +2 -0
- package/dist/transform/write/index.js.map +1 -1
- package/dist/transform/write/traverseFields.d.ts +2 -1
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +40 -20
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/transform/write/types.d.ts +7 -0
- package/dist/transform/write/types.d.ts.map +1 -1
- package/dist/transform/write/types.js.map +1 -1
- package/dist/types.d.ts +51 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/updateGlobal.d.ts +5 -1
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +96 -4
- package/dist/updateGlobal.js.map +1 -1
- package/dist/updateJobs.d.ts.map +1 -1
- package/dist/updateJobs.js +37 -0
- package/dist/updateJobs.js.map +1 -1
- package/dist/updateOne.d.ts.map +1 -1
- package/dist/updateOne.js +86 -4
- package/dist/updateOne.js.map +1 -1
- package/dist/upsertBranchGlobalChange.d.ts +3 -0
- package/dist/upsertBranchGlobalChange.d.ts.map +1 -0
- package/dist/upsertBranchGlobalChange.js +35 -0
- package/dist/upsertBranchGlobalChange.js.map +1 -0
- package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
- package/dist/upsertRow/deleteExistingRowsByPath.js +17 -12
- 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 +156 -46
- package/dist/upsertRow/index.js.map +1 -1
- package/dist/upsertRow/types.d.ts +3 -0
- package/dist/upsertRow/types.d.ts.map +1 -1
- package/dist/upsertRow/types.js.map +1 -1
- package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
- package/dist/utilities/buildCreateMigration.js +12 -8
- package/dist/utilities/buildCreateMigration.js.map +1 -1
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.d.ts +15 -0
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.d.ts.map +1 -0
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.js +110 -0
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.js.map +1 -0
- package/dist/utilities/buildForeignKeyName.d.ts.map +1 -1
- package/dist/utilities/buildForeignKeyName.js +3 -2
- package/dist/utilities/buildForeignKeyName.js.map +1 -1
- package/dist/utilities/buildIndexName.d.ts.map +1 -1
- package/dist/utilities/buildIndexName.js +3 -2
- package/dist/utilities/buildIndexName.js.map +1 -1
- package/dist/utilities/checkTruncatedIdentifiers.d.ts +13 -0
- package/dist/utilities/checkTruncatedIdentifiers.d.ts.map +1 -0
- package/dist/utilities/checkTruncatedIdentifiers.js +56 -0
- package/dist/utilities/checkTruncatedIdentifiers.js.map +1 -0
- package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
- package/dist/utilities/createSchemaGenerator.js +3 -0
- package/dist/utilities/createSchemaGenerator.js.map +1 -1
- package/dist/utilities/getSizesToVariantsRenames.d.ts +54 -0
- package/dist/utilities/getSizesToVariantsRenames.d.ts.map +1 -0
- package/dist/utilities/getSizesToVariantsRenames.js +251 -0
- package/dist/utilities/getSizesToVariantsRenames.js.map +1 -0
- package/dist/utilities/parseJSONPathSegment.d.ts +9 -0
- package/dist/utilities/parseJSONPathSegment.d.ts.map +1 -0
- package/dist/utilities/parseJSONPathSegment.js +17 -0
- package/dist/utilities/parseJSONPathSegment.js.map +1 -0
- package/dist/utilities/validateExistingBlockIsIdentical.d.ts +1 -5
- package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -1
- package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -1
- package/dist/utilities/validateIdentifierLength.d.ts +12 -0
- package/dist/utilities/validateIdentifierLength.d.ts.map +1 -0
- package/dist/utilities/validateIdentifierLength.js +18 -0
- package/dist/utilities/validateIdentifierLength.js.map +1 -0
- package/package.json +3 -3
- package/dist/upsertRow/handleUpsertError.spec.js +0 -42
- package/dist/upsertRow/handleUpsertError.spec.js.map +0 -1
- package/dist/utilities/isValidStringID.spec.js +0 -15
- package/dist/utilities/isValidStringID.spec.js.map +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { APIError } from 'payload';
|
|
2
|
+
const isTransformHandler = (handler)=>typeof handler.transformOperands === 'function';
|
|
3
|
+
const isReplacementHandler = (handler)=>typeof handler.build === 'function';
|
|
4
|
+
const handlerMatches = (handler, args)=>{
|
|
5
|
+
if (!handler.operators.includes(args.resolvedOperator)) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
if (handler.fieldTypes && !handler.fieldTypes.includes(args.field.type)) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return true;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Builds the final, user-facing SQL comparison for one query leaf: applies every matching
|
|
15
|
+
* operand-transform handler in configuration order, then either calls the single matching
|
|
16
|
+
* replacement handler or falls back to `adapter.operators[resolvedOperator]`.
|
|
17
|
+
*/ export const buildOperatorConstraint = (args)=>{
|
|
18
|
+
const { adapter, field, locale, originalOperator, path, resolvedOperator } = args;
|
|
19
|
+
const matchingHandlers = (adapter.operatorHandlers ?? []).filter((handler)=>handlerMatches(handler, args));
|
|
20
|
+
const context = {
|
|
21
|
+
adapter,
|
|
22
|
+
column: args.column,
|
|
23
|
+
field,
|
|
24
|
+
locale,
|
|
25
|
+
originalOperator,
|
|
26
|
+
path,
|
|
27
|
+
resolvedOperator,
|
|
28
|
+
storage: 'column',
|
|
29
|
+
value: args.value
|
|
30
|
+
};
|
|
31
|
+
for (const handler of matchingHandlers.filter(isTransformHandler)){
|
|
32
|
+
let result;
|
|
33
|
+
try {
|
|
34
|
+
result = handler.transformOperands({
|
|
35
|
+
...context
|
|
36
|
+
});
|
|
37
|
+
} catch (error) {
|
|
38
|
+
throw new Error(`Operator handler "${handler.name}" threw while transforming operands for the "${resolvedOperator}" operator at path "${path}".`, {
|
|
39
|
+
cause: error
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (!result || typeof result !== 'object' || !('column' in result) || !('value' in result)) {
|
|
43
|
+
throw new APIError(`Operator handler "${handler.name}" returned an invalid operand transform for the "${resolvedOperator}" operator at path "${path}". Expected an object with "column" and "value" properties.`);
|
|
44
|
+
}
|
|
45
|
+
context.column = result.column;
|
|
46
|
+
context.value = result.value;
|
|
47
|
+
}
|
|
48
|
+
const replacementHandler = matchingHandlers.find(isReplacementHandler);
|
|
49
|
+
if (replacementHandler) {
|
|
50
|
+
try {
|
|
51
|
+
return replacementHandler.build({
|
|
52
|
+
...context
|
|
53
|
+
});
|
|
54
|
+
} catch (error) {
|
|
55
|
+
throw new Error(`Operator handler "${replacementHandler.name}" threw while building the "${resolvedOperator}" comparison at path "${path}".`, {
|
|
56
|
+
cause: error
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return adapter.operators[resolvedOperator](context.column, context.value);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=buildOperatorConstraint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildOperatorConstraint.ts"],"sourcesContent":["import type { Column, SQL } from 'drizzle-orm'\nimport type { FlattenedField, Operator } from 'payload'\n\nimport { APIError } from 'payload'\n\nimport type {\n DrizzleAdapter,\n DrizzleOperandTransformHandler,\n DrizzleOperatorHandler,\n DrizzleOperatorHandlerContext,\n DrizzleOperatorReplacementHandler,\n} from '../types.js'\nimport type { DrizzleResolvedOperator } from './operatorMap.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n column: Column | SQL\n field: FlattenedField\n locale?: string\n originalOperator: Operator\n path: string\n resolvedOperator: DrizzleResolvedOperator\n value: unknown\n}\n\nconst isTransformHandler = (\n handler: DrizzleOperatorHandler,\n): handler is DrizzleOperandTransformHandler => typeof handler.transformOperands === 'function'\n\nconst isReplacementHandler = (\n handler: DrizzleOperatorHandler,\n): handler is DrizzleOperatorReplacementHandler => typeof handler.build === 'function'\n\nconst handlerMatches = (handler: DrizzleOperatorHandler, args: Args): boolean => {\n if (!handler.operators.includes(args.resolvedOperator)) {\n return false\n }\n\n if (handler.fieldTypes && !handler.fieldTypes.includes(args.field.type)) {\n return false\n }\n\n return true\n}\n\n/**\n * Builds the final, user-facing SQL comparison for one query leaf: applies every matching\n * operand-transform handler in configuration order, then either calls the single matching\n * replacement handler or falls back to `adapter.operators[resolvedOperator]`.\n */\nexport const buildOperatorConstraint = (args: Args): SQL => {\n const { adapter, field, locale, originalOperator, path, resolvedOperator } = args\n\n const matchingHandlers = (adapter.operatorHandlers ?? []).filter((handler) =>\n handlerMatches(handler, args),\n )\n\n const context: DrizzleOperatorHandlerContext = {\n adapter,\n column: args.column,\n field,\n locale,\n originalOperator,\n path,\n resolvedOperator,\n storage: 'column',\n value: args.value,\n }\n\n for (const handler of matchingHandlers.filter(isTransformHandler)) {\n let result: { column: Column | SQL; value: unknown }\n\n try {\n result = handler.transformOperands({ ...context })\n } catch (error) {\n throw new Error(\n `Operator handler \"${handler.name}\" threw while transforming operands for the \"${resolvedOperator}\" operator at path \"${path}\".`,\n { cause: error },\n )\n }\n\n if (!result || typeof result !== 'object' || !('column' in result) || !('value' in result)) {\n throw new APIError(\n `Operator handler \"${handler.name}\" returned an invalid operand transform for the \"${resolvedOperator}\" operator at path \"${path}\". Expected an object with \"column\" and \"value\" properties.`,\n )\n }\n\n context.column = result.column\n context.value = result.value\n }\n\n const replacementHandler = matchingHandlers.find(isReplacementHandler)\n\n if (replacementHandler) {\n try {\n return replacementHandler.build({ ...context })\n } catch (error) {\n throw new Error(\n `Operator handler \"${replacementHandler.name}\" threw while building the \"${resolvedOperator}\" comparison at path \"${path}\".`,\n { cause: error },\n )\n }\n }\n\n return adapter.operators[resolvedOperator](context.column, context.value)\n}\n"],"names":["APIError","isTransformHandler","handler","transformOperands","isReplacementHandler","build","handlerMatches","args","operators","includes","resolvedOperator","fieldTypes","field","type","buildOperatorConstraint","adapter","locale","originalOperator","path","matchingHandlers","operatorHandlers","filter","context","column","storage","value","result","error","Error","name","cause","replacementHandler","find"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,UAAS;AAsBlC,MAAMC,qBAAqB,CACzBC,UAC8C,OAAOA,QAAQC,iBAAiB,KAAK;AAErF,MAAMC,uBAAuB,CAC3BF,UACiD,OAAOA,QAAQG,KAAK,KAAK;AAE5E,MAAMC,iBAAiB,CAACJ,SAAiCK;IACvD,IAAI,CAACL,QAAQM,SAAS,CAACC,QAAQ,CAACF,KAAKG,gBAAgB,GAAG;QACtD,OAAO;IACT;IAEA,IAAIR,QAAQS,UAAU,IAAI,CAACT,QAAQS,UAAU,CAACF,QAAQ,CAACF,KAAKK,KAAK,CAACC,IAAI,GAAG;QACvE,OAAO;IACT;IAEA,OAAO;AACT;AAEA;;;;CAIC,GACD,OAAO,MAAMC,0BAA0B,CAACP;IACtC,MAAM,EAAEQ,OAAO,EAAEH,KAAK,EAAEI,MAAM,EAAEC,gBAAgB,EAAEC,IAAI,EAAER,gBAAgB,EAAE,GAAGH;IAE7E,MAAMY,mBAAmB,AAACJ,CAAAA,QAAQK,gBAAgB,IAAI,EAAE,AAAD,EAAGC,MAAM,CAAC,CAACnB,UAChEI,eAAeJ,SAASK;IAG1B,MAAMe,UAAyC;QAC7CP;QACAQ,QAAQhB,KAAKgB,MAAM;QACnBX;QACAI;QACAC;QACAC;QACAR;QACAc,SAAS;QACTC,OAAOlB,KAAKkB,KAAK;IACnB;IAEA,KAAK,MAAMvB,WAAWiB,iBAAiBE,MAAM,CAACpB,oBAAqB;QACjE,IAAIyB;QAEJ,IAAI;YACFA,SAASxB,QAAQC,iBAAiB,CAAC;gBAAE,GAAGmB,OAAO;YAAC;QAClD,EAAE,OAAOK,OAAO;YACd,MAAM,IAAIC,MACR,CAAC,kBAAkB,EAAE1B,QAAQ2B,IAAI,CAAC,6CAA6C,EAAEnB,iBAAiB,oBAAoB,EAAEQ,KAAK,EAAE,CAAC,EAChI;gBAAEY,OAAOH;YAAM;QAEnB;QAEA,IAAI,CAACD,UAAU,OAAOA,WAAW,YAAY,CAAE,CAAA,YAAYA,MAAK,KAAM,CAAE,CAAA,WAAWA,MAAK,GAAI;YAC1F,MAAM,IAAI1B,SACR,CAAC,kBAAkB,EAAEE,QAAQ2B,IAAI,CAAC,iDAAiD,EAAEnB,iBAAiB,oBAAoB,EAAEQ,KAAK,2DAA2D,CAAC;QAEjM;QAEAI,QAAQC,MAAM,GAAGG,OAAOH,MAAM;QAC9BD,QAAQG,KAAK,GAAGC,OAAOD,KAAK;IAC9B;IAEA,MAAMM,qBAAqBZ,iBAAiBa,IAAI,CAAC5B;IAEjD,IAAI2B,oBAAoB;QACtB,IAAI;YACF,OAAOA,mBAAmB1B,KAAK,CAAC;gBAAE,GAAGiB,OAAO;YAAC;QAC/C,EAAE,OAAOK,OAAO;YACd,MAAM,IAAIC,MACR,CAAC,kBAAkB,EAAEG,mBAAmBF,IAAI,CAAC,4BAA4B,EAAEnB,iBAAiB,sBAAsB,EAAEQ,KAAK,EAAE,CAAC,EAC5H;gBAAEY,OAAOH;YAAM;QAEnB;IACF;IAEA,OAAOZ,QAAQP,SAAS,CAACE,iBAAiB,CAACY,QAAQC,MAAM,EAAED,QAAQG,KAAK;AAC1E,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SQL, Table } from 'drizzle-orm';
|
|
2
|
-
import type { FlattenedField, Sort } from 'payload';
|
|
2
|
+
import type { FlattenedField, PayloadRequest, Sort } from 'payload';
|
|
3
3
|
import type { DrizzleAdapter, GenericColumn } from '../types.js';
|
|
4
4
|
import type { BuildQueryJoinAliases, BuildQueryResult } from './buildQuery.js';
|
|
5
5
|
type Args = {
|
|
@@ -10,6 +10,7 @@ type Args = {
|
|
|
10
10
|
locale?: string;
|
|
11
11
|
parentIsLocalized: boolean;
|
|
12
12
|
rawSort?: SQL;
|
|
13
|
+
req?: Partial<PayloadRequest>;
|
|
13
14
|
selectFields: Record<string, GenericColumn>;
|
|
14
15
|
sort?: Sort;
|
|
15
16
|
tableName: string;
|
|
@@ -17,6 +18,6 @@ type Args = {
|
|
|
17
18
|
/**
|
|
18
19
|
* Gets the order by column and direction constructed from the sort argument adds the column to the select fields and joins if necessary
|
|
19
20
|
*/
|
|
20
|
-
export declare const buildOrderBy: ({ adapter, aliasTable, fields, joins, locale, parentIsLocalized, rawSort, selectFields, sort, tableName, }: Args) => BuildQueryResult['orderBy'];
|
|
21
|
+
export declare const buildOrderBy: ({ adapter, aliasTable, fields, joins, locale, parentIsLocalized, rawSort, req, selectFields, sort, tableName, }: Args) => BuildQueryResult['orderBy'];
|
|
21
22
|
export {};
|
|
22
23
|
//# 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,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"buildOrderBy.d.ts","sourceRoot":"","sources":["../../src/queries/buildOrderBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAInE,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,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,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,oHAYtB,IAAI,KAAG,gBAAgB,CAAC,SAAS,CAiFnC,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js
|
|
|
3
3
|
import { getTableColumnFromPath } from './getTableColumnFromPath.js';
|
|
4
4
|
/**
|
|
5
5
|
* Gets the order by column and direction constructed from the sort argument adds the column to the select fields and joins if necessary
|
|
6
|
-
*/ export const buildOrderBy = ({ adapter, aliasTable, fields, joins, locale, parentIsLocalized, rawSort, selectFields, sort, tableName })=>{
|
|
6
|
+
*/ export const buildOrderBy = ({ adapter, aliasTable, fields, joins, locale, parentIsLocalized, rawSort, req, selectFields, sort, tableName })=>{
|
|
7
7
|
const orderBy = [];
|
|
8
8
|
const createdAt = adapter.tables[tableName]?.createdAt;
|
|
9
9
|
if (!sort) {
|
|
@@ -46,6 +46,7 @@ import { getTableColumnFromPath } from './getTableColumnFromPath.js';
|
|
|
46
46
|
locale,
|
|
47
47
|
parentIsLocalized,
|
|
48
48
|
pathSegments: sortProperty.replace(/__/g, '.').split('.'),
|
|
49
|
+
req,
|
|
49
50
|
selectFields,
|
|
50
51
|
tableName,
|
|
51
52
|
value: sortProperty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queries/buildOrderBy.ts"],"sourcesContent":["import type { SQL, 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 parentIsLocalized: boolean\n rawSort?: SQL\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 parentIsLocalized,\n rawSort,\n selectFields,\n sort,\n tableName,\n}: Args): BuildQueryResult['orderBy'] => {\n const orderBy: BuildQueryResult['orderBy'] = []\n\n const createdAt = adapter.tables[tableName]?.createdAt\n\n if (!sort) {\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 // In the case of Mongo, when sorting by a field that is not unique, the results are not guaranteed to be in the same order each time.\n // So we add a fallback sort to ensure that the results are always in the same order.\n let fallbackSort = '-id'\n\n if (createdAt) {\n fallbackSort = '-createdAt'\n }\n\n if (!(sort.includes(fallbackSort) || sort.includes(fallbackSort.replace('-', '')))) {\n sort.push(fallbackSort)\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 parentIsLocalized,\n pathSegments: sortProperty.replace(/__/g, '.').split('.'),\n selectFields,\n tableName,\n value: sortProperty,\n })\n if (sortTable?.[sortTableColumnName]) {\n let order = sortDirection === 'asc' ? asc : desc\n\n if (rawSort) {\n order = () => rawSort\n }\n\n orderBy.push({\n column:\n aliasTable && tableName === getNameFromDrizzleTable(sortTable)\n ? aliasTable[sortTableColumnName]\n : sortTable[sortTableColumnName],\n order,\n })\n\n // Only add to selectFields if not already present (avoid duplicates from getTableColumnFromPath)\n const columnToAdd = sortTable[sortTableColumnName]\n const alreadyExists = Object.values(selectFields).some((col) => col === columnToAdd)\n if (!alreadyExists) {\n selectFields[sortTableColumnName] = columnToAdd\n }\n }\n } catch (_) {\n // continue\n }\n }\n\n return orderBy\n}\n"],"names":["asc","desc","getNameFromDrizzleTable","getTableColumnFromPath","buildOrderBy","adapter","aliasTable","fields","joins","locale","parentIsLocalized","rawSort","selectFields","sort","tableName","orderBy","createdAt","tables","fallbackSort","includes","replace","push","sortItem","sortProperty","sortDirection","substring","columnName","sortTableColumnName","table","sortTable","collectionPath","pathSegments","split","value","order","column","columnToAdd","alreadyExists","Object","values","some","col","_"],"mappings":"AAGA,SAASA,GAAG,EAAEC,IAAI,QAAQ,cAAa;AAKvC,SAASC,uBAAuB,QAAQ,0CAAyC;AACjF,SAASC,sBAAsB,QAAQ,8BAA6B;
|
|
1
|
+
{"version":3,"sources":["../../src/queries/buildOrderBy.ts"],"sourcesContent":["import type { SQL, Table } from 'drizzle-orm'\nimport type { FlattenedField, PayloadRequest, 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 parentIsLocalized: boolean\n rawSort?: SQL\n req?: Partial<PayloadRequest>\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 parentIsLocalized,\n rawSort,\n req,\n selectFields,\n sort,\n tableName,\n}: Args): BuildQueryResult['orderBy'] => {\n const orderBy: BuildQueryResult['orderBy'] = []\n\n const createdAt = adapter.tables[tableName]?.createdAt\n\n if (!sort) {\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 // In the case of Mongo, when sorting by a field that is not unique, the results are not guaranteed to be in the same order each time.\n // So we add a fallback sort to ensure that the results are always in the same order.\n let fallbackSort = '-id'\n\n if (createdAt) {\n fallbackSort = '-createdAt'\n }\n\n if (!(sort.includes(fallbackSort) || sort.includes(fallbackSort.replace('-', '')))) {\n sort.push(fallbackSort)\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 parentIsLocalized,\n pathSegments: sortProperty.replace(/__/g, '.').split('.'),\n req,\n selectFields,\n tableName,\n value: sortProperty,\n })\n if (sortTable?.[sortTableColumnName]) {\n let order = sortDirection === 'asc' ? asc : desc\n\n if (rawSort) {\n order = () => rawSort\n }\n\n orderBy.push({\n column:\n aliasTable && tableName === getNameFromDrizzleTable(sortTable)\n ? aliasTable[sortTableColumnName]\n : sortTable[sortTableColumnName],\n order,\n })\n\n // Only add to selectFields if not already present (avoid duplicates from getTableColumnFromPath)\n const columnToAdd = sortTable[sortTableColumnName]\n const alreadyExists = Object.values(selectFields).some((col) => col === columnToAdd)\n if (!alreadyExists) {\n selectFields[sortTableColumnName] = columnToAdd\n }\n }\n } catch (_) {\n // continue\n }\n }\n\n return orderBy\n}\n"],"names":["asc","desc","getNameFromDrizzleTable","getTableColumnFromPath","buildOrderBy","adapter","aliasTable","fields","joins","locale","parentIsLocalized","rawSort","req","selectFields","sort","tableName","orderBy","createdAt","tables","fallbackSort","includes","replace","push","sortItem","sortProperty","sortDirection","substring","columnName","sortTableColumnName","table","sortTable","collectionPath","pathSegments","split","value","order","column","columnToAdd","alreadyExists","Object","values","some","col","_"],"mappings":"AAGA,SAASA,GAAG,EAAEC,IAAI,QAAQ,cAAa;AAKvC,SAASC,uBAAuB,QAAQ,0CAAyC;AACjF,SAASC,sBAAsB,QAAQ,8BAA6B;AAgBpE;;CAEC,GACD,OAAO,MAAMC,eAAe,CAAC,EAC3BC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EACPC,GAAG,EACHC,YAAY,EACZC,IAAI,EACJC,SAAS,EACJ;IACL,MAAMC,UAAuC,EAAE;IAE/C,MAAMC,YAAYZ,QAAQa,MAAM,CAACH,UAAU,EAAEE;IAE7C,IAAI,CAACH,MAAM;QACT,IAAIG,WAAW;YACbH,OAAO;QACT,OAAO;YACLA,OAAO;QACT;IACF;IAEA,IAAI,OAAOA,SAAS,UAAU;QAC5BA,OAAO;YAACA;SAAK;IACf;IAEA,sIAAsI;IACtI,qFAAqF;IACrF,IAAIK,eAAe;IAEnB,IAAIF,WAAW;QACbE,eAAe;IACjB;IAEA,IAAI,CAAEL,CAAAA,KAAKM,QAAQ,CAACD,iBAAiBL,KAAKM,QAAQ,CAACD,aAAaE,OAAO,CAAC,KAAK,IAAG,GAAI;QAClFP,KAAKQ,IAAI,CAACH;IACZ;IAEA,KAAK,MAAMI,YAAYT,KAAM;QAC3B,IAAIU;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,GAAG3B,uBAAuB;gBACnFE;gBACA0B,gBAAgBP;gBAChBjB;gBACAC;gBACAC;gBACAC;gBACAsB,cAAcR,aAAaH,OAAO,CAAC,OAAO,KAAKY,KAAK,CAAC;gBACrDrB;gBACAC;gBACAE;gBACAmB,OAAOV;YACT;YACA,IAAIM,WAAW,CAACF,oBAAoB,EAAE;gBACpC,IAAIO,QAAQV,kBAAkB,QAAQzB,MAAMC;gBAE5C,IAAIU,SAAS;oBACXwB,QAAQ,IAAMxB;gBAChB;gBAEAK,QAAQM,IAAI,CAAC;oBACXc,QACE9B,cAAcS,cAAcb,wBAAwB4B,aAChDxB,UAAU,CAACsB,oBAAoB,GAC/BE,SAAS,CAACF,oBAAoB;oBACpCO;gBACF;gBAEA,iGAAiG;gBACjG,MAAME,cAAcP,SAAS,CAACF,oBAAoB;gBAClD,MAAMU,gBAAgBC,OAAOC,MAAM,CAAC3B,cAAc4B,IAAI,CAAC,CAACC,MAAQA,QAAQL;gBACxE,IAAI,CAACC,eAAe;oBAClBzB,YAAY,CAACe,oBAAoB,GAAGS;gBACtC;YACF;QACF,EAAE,OAAOM,GAAG;QACV,WAAW;QACb;IACF;IAEA,OAAO3B;AACT,EAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { asc, desc, SQL, Table } from 'drizzle-orm';
|
|
2
2
|
import type { PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
3
|
-
import type { FlattenedField, Sort, Where } from 'payload';
|
|
3
|
+
import type { FlattenedField, PayloadRequest, Sort, Where } from 'payload';
|
|
4
4
|
import type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js';
|
|
5
5
|
export type BuildQueryJoinAliases = {
|
|
6
6
|
condition: SQL;
|
|
@@ -16,6 +16,7 @@ type BuildQueryArgs = {
|
|
|
16
16
|
joins?: BuildQueryJoinAliases;
|
|
17
17
|
locale?: string;
|
|
18
18
|
parentIsLocalized?: boolean;
|
|
19
|
+
req?: Partial<PayloadRequest>;
|
|
19
20
|
selectLocale?: boolean;
|
|
20
21
|
sort?: Sort;
|
|
21
22
|
tableName: string;
|
|
@@ -30,6 +31,6 @@ export type BuildQueryResult = {
|
|
|
30
31
|
selectFields: Record<string, GenericColumn>;
|
|
31
32
|
where: SQL;
|
|
32
33
|
};
|
|
33
|
-
export declare const buildQuery: ({ adapter, aliasTable, fields, joins, locale, parentIsLocalized, selectLocale, sort, tableName, where: incomingWhere, }: BuildQueryArgs) => BuildQueryResult;
|
|
34
|
+
export declare const buildQuery: ({ adapter, aliasTable, fields, joins, locale, parentIsLocalized, req, selectLocale, sort, tableName, where: incomingWhere, }: BuildQueryArgs) => BuildQueryResult;
|
|
34
35
|
export {};
|
|
35
36
|
//# 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,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;
|
|
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,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,GAAG,CAAA;IAEd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,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,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,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;AAED,eAAO,MAAM,UAAU,iIAYpB,cAAc,KAAG,gBA6CnB,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { buildOrderBy } from './buildOrderBy.js';
|
|
2
2
|
import { parseParams } from './parseParams.js';
|
|
3
|
-
export const buildQuery = function buildQuery({ adapter, aliasTable, fields, joins = [], locale, parentIsLocalized, selectLocale, sort, tableName, where: incomingWhere }) {
|
|
3
|
+
export const buildQuery = function buildQuery({ adapter, aliasTable, fields, joins = [], locale, parentIsLocalized, req, selectLocale, sort, tableName, where: incomingWhere }) {
|
|
4
4
|
const selectFields = {
|
|
5
|
-
id: adapter.tables[tableName]
|
|
5
|
+
id: (aliasTable ?? adapter.tables[tableName])['id']
|
|
6
6
|
};
|
|
7
7
|
let where;
|
|
8
8
|
const context = {
|
|
@@ -17,6 +17,7 @@ export const buildQuery = function buildQuery({ adapter, aliasTable, fields, joi
|
|
|
17
17
|
joins,
|
|
18
18
|
locale,
|
|
19
19
|
parentIsLocalized,
|
|
20
|
+
req,
|
|
20
21
|
selectFields,
|
|
21
22
|
selectLocale,
|
|
22
23
|
tableName,
|
|
@@ -31,6 +32,7 @@ export const buildQuery = function buildQuery({ adapter, aliasTable, fields, joi
|
|
|
31
32
|
locale,
|
|
32
33
|
parentIsLocalized,
|
|
33
34
|
rawSort: context.rawSort,
|
|
35
|
+
req,
|
|
34
36
|
selectFields,
|
|
35
37
|
sort: context.sort,
|
|
36
38
|
tableName
|
|
@@ -1 +1 @@
|
|
|
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'\nimport type { QueryContext } from './parseParams.js'\n\nimport { buildOrderBy } from './buildOrderBy.js'\nimport { parseParams } from './parseParams.js'\n\nexport type BuildQueryJoinAliases = {\n condition: SQL\n // with parent\n isOneToMany?: boolean\n queryPath?: string\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 parentIsLocalized?: boolean\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}\n\nexport const buildQuery = function buildQuery({\n adapter,\n aliasTable,\n fields,\n joins = [],\n locale,\n parentIsLocalized,\n selectLocale,\n sort,\n tableName,\n where: incomingWhere,\n}: BuildQueryArgs): BuildQueryResult {\n const selectFields: Record<string, GenericColumn> = {\n id: adapter.tables[tableName]
|
|
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, PayloadRequest, Sort, Where } from 'payload'\n\nimport type { DrizzleAdapter, GenericColumn, GenericTable } from '../types.js'\nimport type { QueryContext } from './parseParams.js'\n\nimport { buildOrderBy } from './buildOrderBy.js'\nimport { parseParams } from './parseParams.js'\n\nexport type BuildQueryJoinAliases = {\n condition: SQL\n // with parent\n isOneToMany?: boolean\n queryPath?: string\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 parentIsLocalized?: boolean\n req?: Partial<PayloadRequest>\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}\n\nexport const buildQuery = function buildQuery({\n adapter,\n aliasTable,\n fields,\n joins = [],\n locale,\n parentIsLocalized,\n req,\n selectLocale,\n sort,\n tableName,\n where: incomingWhere,\n}: BuildQueryArgs): BuildQueryResult {\n const selectFields: Record<string, GenericColumn> = {\n id: (aliasTable ?? adapter.tables[tableName])['id'],\n }\n\n let where: SQL\n\n const context: QueryContext = { sort }\n if (incomingWhere && Object.keys(incomingWhere).length > 0) {\n where = parseParams({\n adapter,\n aliasTable,\n context,\n fields,\n joins,\n locale,\n parentIsLocalized,\n req,\n selectFields,\n selectLocale,\n tableName,\n where: incomingWhere,\n })\n }\n\n const orderBy = buildOrderBy({\n adapter,\n aliasTable,\n fields,\n joins,\n locale,\n parentIsLocalized,\n rawSort: context.rawSort,\n req,\n selectFields,\n sort: context.sort,\n tableName,\n })\n\n return {\n joins,\n orderBy,\n selectFields,\n where,\n }\n}\n"],"names":["buildOrderBy","parseParams","buildQuery","adapter","aliasTable","fields","joins","locale","parentIsLocalized","req","selectLocale","sort","tableName","where","incomingWhere","selectFields","id","tables","context","Object","keys","length","orderBy","rawSort"],"mappings":"AAOA,SAASA,YAAY,QAAQ,oBAAmB;AAChD,SAASC,WAAW,QAAQ,mBAAkB;AAmC9C,OAAO,MAAMC,aAAa,SAASA,WAAW,EAC5CC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,QAAQ,EAAE,EACVC,MAAM,EACNC,iBAAiB,EACjBC,GAAG,EACHC,YAAY,EACZC,IAAI,EACJC,SAAS,EACTC,OAAOC,aAAa,EACL;IACf,MAAMC,eAA8C;QAClDC,IAAI,AAACZ,CAAAA,cAAcD,QAAQc,MAAM,CAACL,UAAU,AAAD,CAAE,CAAC,KAAK;IACrD;IAEA,IAAIC;IAEJ,MAAMK,UAAwB;QAAEP;IAAK;IACrC,IAAIG,iBAAiBK,OAAOC,IAAI,CAACN,eAAeO,MAAM,GAAG,GAAG;QAC1DR,QAAQZ,YAAY;YAClBE;YACAC;YACAc;YACAb;YACAC;YACAC;YACAC;YACAC;YACAM;YACAL;YACAE;YACAC,OAAOC;QACT;IACF;IAEA,MAAMQ,UAAUtB,aAAa;QAC3BG;QACAC;QACAC;QACAC;QACAC;QACAC;QACAe,SAASL,QAAQK,OAAO;QACxBd;QACAM;QACAJ,MAAMO,QAAQP,IAAI;QAClBC;IACF;IAEA,OAAO;QACLN;QACAgB;QACAP;QACAF;IACF;AACF,EAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SQL } from 'drizzle-orm';
|
|
2
2
|
import type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
|
|
3
|
-
import type { FlattenedField } from 'payload';
|
|
3
|
+
import type { FlattenedField, PayloadRequest } from 'payload';
|
|
4
4
|
import { type PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
5
5
|
import type { DrizzleAdapter, GenericColumn } from '../types.js';
|
|
6
6
|
import type { BuildQueryJoinAliases } from './buildQuery.js';
|
|
@@ -24,6 +24,7 @@ type TableColumn = {
|
|
|
24
24
|
};
|
|
25
25
|
type Args = {
|
|
26
26
|
adapter: DrizzleAdapter;
|
|
27
|
+
/** The current table when a query is being built with an alias, such as inside a subquery. */
|
|
27
28
|
aliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
|
|
28
29
|
collectionPath: string;
|
|
29
30
|
columnPrefix?: string;
|
|
@@ -32,9 +33,11 @@ type Args = {
|
|
|
32
33
|
fields: FlattenedField[];
|
|
33
34
|
joins: BuildQueryJoinAliases;
|
|
34
35
|
locale?: string;
|
|
36
|
+
/** The aliased table that owns a field nested inside an array or block. */
|
|
35
37
|
parentAliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>;
|
|
36
38
|
parentIsLocalized: boolean;
|
|
37
39
|
pathSegments: string[];
|
|
40
|
+
req?: Partial<PayloadRequest>;
|
|
38
41
|
rootTableName?: string;
|
|
39
42
|
selectFields: Record<string, GenericColumn>;
|
|
40
43
|
selectLocale?: boolean;
|
|
@@ -49,10 +52,17 @@ type Args = {
|
|
|
49
52
|
value: unknown;
|
|
50
53
|
};
|
|
51
54
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
+
* Resolves a field path to the database table and column that store its value.
|
|
56
|
+
*
|
|
57
|
+
* While walking through relationships, arrays, and blocks, the function adds the joins required
|
|
58
|
+
* to reach the final column. Table aliases are used when the path is resolved inside a subquery.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* Resolving `movies.name` adds joins from the parent collection to its relationship table and then
|
|
62
|
+
* to the `movies` table. The returned column is `movies.name`.
|
|
63
|
+
*
|
|
64
|
+
* @returns The final field and column, plus any extra constraints discovered while resolving it.
|
|
55
65
|
*/
|
|
56
|
-
export declare const getTableColumnFromPath: ({ adapter, aliasTable, collectionPath, columnPrefix, constraintPath: incomingConstraintPath, constraints, fields, joins, locale: incomingLocale, parentAliasTable, parentIsLocalized, pathSegments: incomingSegments, rootTableName: incomingRootTableName, selectFields, selectLocale, tableName, tableNameSuffix, value, }: Args) => TableColumn;
|
|
66
|
+
export declare const getTableColumnFromPath: ({ adapter, aliasTable, collectionPath, columnPrefix, constraintPath: incomingConstraintPath, constraints, fields, joins, locale: incomingLocale, parentAliasTable, parentIsLocalized, pathSegments: incomingSegments, req, rootTableName: incomingRootTableName, selectFields, selectLocale, tableName, tableNameSuffix, value, }: Args) => TableColumn;
|
|
57
67
|
export {};
|
|
58
68
|
//# sourceMappingURL=getTableColumnFromPath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAEV,cAAc,EAEd,cAAc,EAIf,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAY5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;QAClC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KACxB,EAAE,CAAA;IACH,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,cAAc,CAAA;IACrB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAsGD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,sUAoBhC,IAAI,KAAG,WAwiCT,CAAA"}
|