@payloadcms/drizzle 3.0.0-canary.fb81f02 → 3.0.0
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 +1 -1
- package/dist/count.js.map +1 -1
- package/dist/countGlobalVersions.d.ts +3 -0
- package/dist/countGlobalVersions.d.ts.map +1 -0
- package/dist/countGlobalVersions.js +27 -0
- package/dist/countGlobalVersions.js.map +1 -0
- package/dist/countVersions.d.ts +3 -0
- package/dist/countVersions.d.ts.map +1 -0
- package/dist/countVersions.js +27 -0
- package/dist/countVersions.js.map +1 -0
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +2 -1
- package/dist/create.js.map +1 -1
- package/dist/createGlobalVersion.d.ts +1 -1
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js +7 -2
- package/dist/createGlobalVersion.js.map +1 -1
- package/dist/createTableName.d.ts.map +1 -1
- package/dist/createTableName.js +6 -2
- package/dist/createTableName.js.map +1 -1
- package/dist/createVersion.d.ts +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +22 -14
- package/dist/createVersion.js.map +1 -1
- package/dist/deleteOne.d.ts.map +1 -1
- package/dist/deleteOne.js +6 -3
- package/dist/deleteOne.js.map +1 -1
- package/dist/deleteVersions.js +1 -1
- package/dist/deleteVersions.js.map +1 -1
- package/dist/destroy.d.ts.map +1 -1
- package/dist/destroy.js +3 -1
- package/dist/destroy.js.map +1 -1
- package/dist/exports/postgres.d.ts +15 -0
- package/dist/exports/postgres.d.ts.map +1 -0
- package/dist/exports/postgres.js +16 -0
- package/dist/exports/postgres.js.map +1 -0
- package/dist/find/buildFindManyArgs.d.ts +15 -7
- package/dist/find/buildFindManyArgs.d.ts.map +1 -1
- package/dist/find/buildFindManyArgs.js +40 -17
- package/dist/find/buildFindManyArgs.js.map +1 -1
- package/dist/find/findMany.d.ts +2 -1
- package/dist/find/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +12 -7
- package/dist/find/findMany.js.map +1 -1
- package/dist/find/traverseFields.d.ts +18 -4
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +359 -69
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +4 -2
- package/dist/find.js.map +1 -1
- package/dist/findGlobal.d.ts.map +1 -1
- package/dist/findGlobal.js +2 -1
- package/dist/findGlobal.js.map +1 -1
- package/dist/findGlobalVersions.d.ts.map +1 -1
- package/dist/findGlobalVersions.js +4 -3
- package/dist/findGlobalVersions.js.map +1 -1
- package/dist/findMigrationDir.d.ts.map +1 -1
- package/dist/findMigrationDir.js +3 -1
- package/dist/findMigrationDir.js.map +1 -1
- package/dist/findOne.d.ts +1 -1
- package/dist/findOne.d.ts.map +1 -1
- package/dist/findOne.js +3 -1
- package/dist/findOne.js.map +1 -1
- package/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +4 -3
- package/dist/findVersions.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +4 -0
- package/dist/migrate.js.map +1 -1
- package/dist/migrateDown.d.ts.map +1 -1
- package/dist/migrateDown.js +1 -1
- package/dist/migrateDown.js.map +1 -1
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +4 -0
- package/dist/migrateFresh.js.map +1 -1
- package/dist/migrateRefresh.d.ts.map +1 -1
- package/dist/migrateRefresh.js +2 -1
- package/dist/migrateRefresh.js.map +1 -1
- package/dist/migrateReset.d.ts.map +1 -1
- package/dist/migrateReset.js +5 -3
- package/dist/migrateReset.js.map +1 -1
- package/dist/migrateStatus.js +0 -1
- package/dist/migrateStatus.js.map +1 -1
- package/dist/postgres/countDistinct.d.ts +3 -0
- package/dist/postgres/countDistinct.d.ts.map +1 -0
- package/dist/postgres/countDistinct.js +23 -0
- package/dist/postgres/countDistinct.js.map +1 -0
- package/dist/postgres/createDatabase.d.ts +14 -0
- package/dist/postgres/createDatabase.d.ts.map +1 -0
- package/dist/postgres/createDatabase.js +76 -0
- package/dist/postgres/createDatabase.js.map +1 -0
- package/dist/postgres/createExtensions.d.ts +3 -0
- package/dist/postgres/createExtensions.d.ts.map +1 -0
- package/dist/postgres/createExtensions.js +16 -0
- package/dist/postgres/createExtensions.js.map +1 -0
- package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts +2 -0
- package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -0
- package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js +16 -0
- package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js.map +1 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts +2 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts.map +1 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.js +5 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.js.map +1 -0
- package/dist/postgres/createJSONQuery/index.d.ts +3 -0
- package/dist/postgres/createJSONQuery/index.d.ts.map +1 -0
- package/dist/postgres/createJSONQuery/index.js +42 -0
- package/dist/postgres/createJSONQuery/index.js.map +1 -0
- package/dist/postgres/createMigration.d.ts +3 -0
- package/dist/postgres/createMigration.d.ts.map +1 -0
- package/dist/postgres/createMigration.js +88 -0
- package/dist/postgres/createMigration.js.map +1 -0
- package/dist/postgres/defaultSnapshot.d.ts +3 -0
- package/dist/postgres/defaultSnapshot.d.ts.map +1 -0
- package/dist/postgres/defaultSnapshot.js +20 -0
- package/dist/postgres/defaultSnapshot.js.map +1 -0
- package/dist/postgres/deleteWhere.d.ts +3 -0
- package/dist/postgres/deleteWhere.d.ts.map +1 -0
- package/dist/postgres/deleteWhere.js +6 -0
- package/dist/postgres/deleteWhere.js.map +1 -0
- package/dist/postgres/dropDatabase.d.ts +3 -0
- package/dist/postgres/dropDatabase.d.ts.map +1 -0
- package/dist/postgres/dropDatabase.js +9 -0
- package/dist/postgres/dropDatabase.js.map +1 -0
- package/dist/postgres/execute.d.ts +3 -0
- package/dist/postgres/execute.d.ts.map +1 -0
- package/dist/postgres/execute.js +11 -0
- package/dist/postgres/execute.js.map +1 -0
- package/dist/postgres/getMigrationTemplate.d.ts +4 -0
- package/dist/postgres/getMigrationTemplate.d.ts.map +1 -0
- package/dist/postgres/getMigrationTemplate.js +13 -0
- package/dist/postgres/getMigrationTemplate.js.map +1 -0
- package/dist/postgres/init.d.ts +3 -0
- package/dist/postgres/init.d.ts.map +1 -0
- package/dist/postgres/init.js +104 -0
- package/dist/postgres/init.js.map +1 -0
- package/dist/postgres/insert.d.ts +3 -0
- package/dist/postgres/insert.d.ts.map +1 -0
- package/dist/postgres/insert.js +12 -0
- package/dist/postgres/insert.js.map +1 -0
- package/dist/postgres/requireDrizzleKit.d.ts +3 -0
- package/dist/postgres/requireDrizzleKit.d.ts.map +1 -0
- package/dist/postgres/requireDrizzleKit.js +5 -0
- package/dist/postgres/requireDrizzleKit.js.map +1 -0
- package/dist/postgres/schema/build.d.ts +42 -0
- package/dist/postgres/schema/build.d.ts.map +1 -0
- package/dist/postgres/schema/build.js +404 -0
- package/dist/postgres/schema/build.js.map +1 -0
- package/dist/postgres/schema/createIndex.d.ts +11 -0
- package/dist/postgres/schema/createIndex.d.ts.map +1 -0
- package/dist/postgres/schema/createIndex.js +20 -0
- package/dist/postgres/schema/createIndex.js.map +1 -0
- package/dist/postgres/schema/geometryColumn.d.ts +12 -0
- package/dist/postgres/schema/geometryColumn.d.ts.map +1 -0
- package/dist/postgres/schema/geometryColumn.js +18 -0
- package/dist/postgres/schema/geometryColumn.js.map +1 -0
- package/dist/postgres/schema/idToUUID.d.ts +3 -0
- package/dist/postgres/schema/idToUUID.d.ts.map +1 -0
- package/dist/postgres/schema/idToUUID.js +11 -0
- package/dist/postgres/schema/idToUUID.js.map +1 -0
- package/dist/postgres/schema/parentIDColumnMap.d.ts +4 -0
- package/dist/postgres/schema/parentIDColumnMap.d.ts.map +1 -0
- package/dist/postgres/schema/parentIDColumnMap.js +9 -0
- package/dist/postgres/schema/parentIDColumnMap.js.map +1 -0
- package/dist/postgres/schema/setColumnID.d.ts +11 -0
- package/dist/postgres/schema/setColumnID.d.ts.map +1 -0
- package/dist/postgres/schema/setColumnID.js +24 -0
- package/dist/postgres/schema/setColumnID.js.map +1 -0
- package/dist/postgres/schema/traverseFields.d.ts +42 -0
- package/dist/postgres/schema/traverseFields.d.ts.map +1 -0
- package/dist/postgres/schema/traverseFields.js +743 -0
- package/dist/postgres/schema/traverseFields.js.map +1 -0
- package/dist/postgres/schema/withDefault.d.ts +4 -0
- package/dist/postgres/schema/withDefault.d.ts.map +1 -0
- package/dist/postgres/schema/withDefault.js +15 -0
- package/dist/postgres/schema/withDefault.js.map +1 -0
- package/dist/postgres/types.d.ts +142 -0
- package/dist/postgres/types.d.ts.map +1 -0
- package/dist/postgres/types.js +3 -0
- package/dist/postgres/types.js.map +1 -0
- package/dist/queries/addJoinTable.d.ts +11 -0
- package/dist/queries/addJoinTable.d.ts.map +1 -0
- package/dist/queries/addJoinTable.js +13 -0
- package/dist/queries/addJoinTable.js.map +1 -0
- package/dist/queries/buildAndOrConditions.d.ts +1 -1
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +2 -4
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/buildOrderBy.d.ts +18 -0
- package/dist/queries/buildOrderBy.d.ts.map +1 -0
- package/dist/queries/buildOrderBy.js +56 -0
- package/dist/queries/buildOrderBy.js.map +1 -0
- package/dist/queries/buildQuery.d.ts +8 -7
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +12 -47
- package/dist/queries/buildQuery.js.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +6 -2
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +271 -224
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/operatorMap.d.ts.map +1 -1
- package/dist/queries/operatorMap.js +0 -4
- package/dist/queries/operatorMap.js.map +1 -1
- package/dist/queries/parseParams.d.ts +1 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +85 -6
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/sanitizeQueryValue.d.ts +12 -1
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
- package/dist/queries/sanitizeQueryValue.js +89 -25
- package/dist/queries/sanitizeQueryValue.js.map +1 -1
- package/dist/queries/selectDistinct.d.ts +3 -4
- package/dist/queries/selectDistinct.d.ts.map +1 -1
- package/dist/queries/selectDistinct.js.map +1 -1
- package/dist/queryDrafts.d.ts.map +1 -1
- package/dist/queryDrafts.js +6 -6
- package/dist/queryDrafts.js.map +1 -1
- package/dist/transactions/beginTransaction.d.ts.map +1 -1
- package/dist/transactions/beginTransaction.js +5 -1
- package/dist/transactions/beginTransaction.js.map +1 -1
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +3 -1
- package/dist/transactions/commitTransaction.js.map +1 -1
- package/dist/transform/read/hasManyNumber.d.ts +2 -1
- package/dist/transform/read/hasManyNumber.d.ts.map +1 -1
- package/dist/transform/read/hasManyNumber.js +12 -2
- package/dist/transform/read/hasManyNumber.js.map +1 -1
- package/dist/transform/read/hasManyText.d.ts +2 -1
- package/dist/transform/read/hasManyText.d.ts.map +1 -1
- package/dist/transform/read/hasManyText.js +12 -2
- package/dist/transform/read/hasManyText.js.map +1 -1
- package/dist/transform/read/index.d.ts +3 -2
- package/dist/transform/read/index.d.ts.map +1 -1
- package/dist/transform/read/index.js +3 -2
- package/dist/transform/read/index.js.map +1 -1
- package/dist/transform/read/relationship.d.ts +2 -1
- package/dist/transform/read/relationship.d.ts.map +1 -1
- package/dist/transform/read/relationship.js +15 -6
- package/dist/transform/read/relationship.js.map +1 -1
- package/dist/transform/read/traverseFields.d.ts +10 -2
- package/dist/transform/read/traverseFields.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.js +185 -71
- package/dist/transform/read/traverseFields.js.map +1 -1
- package/dist/transform/write/array.d.ts +6 -1
- package/dist/transform/write/array.d.ts.map +1 -1
- package/dist/transform/write/array.js +7 -3
- package/dist/transform/write/array.js.map +1 -1
- package/dist/transform/write/blocks.d.ts +8 -3
- package/dist/transform/write/blocks.d.ts.map +1 -1
- package/dist/transform/write/blocks.js +19 -7
- 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 +1 -1
- package/dist/transform/write/index.js.map +1 -1
- package/dist/transform/write/relationships.d.ts.map +1 -1
- package/dist/transform/write/relationships.js +6 -2
- package/dist/transform/write/relationships.js.map +1 -1
- package/dist/transform/write/selects.d.ts.map +1 -1
- package/dist/transform/write/selects.js +1 -1
- package/dist/transform/write/selects.js.map +1 -1
- package/dist/transform/write/traverseFields.d.ts +6 -1
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +62 -19
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/types.d.ts +6 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +4 -2
- package/dist/update.js.map +1 -1
- package/dist/updateGlobal.d.ts +1 -1
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +2 -1
- package/dist/updateGlobal.js.map +1 -1
- package/dist/updateGlobalVersion.d.ts +1 -1
- package/dist/updateGlobalVersion.d.ts.map +1 -1
- package/dist/updateGlobalVersion.js +4 -3
- package/dist/updateGlobalVersion.js.map +1 -1
- package/dist/updateVersion.d.ts +1 -1
- package/dist/updateVersion.d.ts.map +1 -1
- package/dist/updateVersion.js +4 -3
- package/dist/updateVersion.js.map +1 -1
- package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
- package/dist/upsertRow/deleteExistingRowsByPath.js +6 -2
- 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 +51 -12
- package/dist/upsertRow/index.js.map +1 -1
- package/dist/upsertRow/insertArrays.d.ts.map +1 -1
- package/dist/upsertRow/insertArrays.js +5 -2
- package/dist/upsertRow/insertArrays.js.map +1 -1
- package/dist/upsertRow/types.d.ts +10 -5
- package/dist/upsertRow/types.d.ts.map +1 -1
- package/dist/upsertRow/types.js.map +1 -1
- package/dist/utilities/buildIndexName.d.ts +7 -0
- package/dist/utilities/buildIndexName.d.ts.map +1 -0
- package/dist/utilities/buildIndexName.js +14 -0
- package/dist/utilities/buildIndexName.js.map +1 -0
- package/dist/utilities/createBlocksMap.d.ts.map +1 -1
- package/dist/utilities/createBlocksMap.js +4 -2
- package/dist/utilities/createBlocksMap.js.map +1 -1
- package/dist/utilities/createRelationshipMap.d.ts.map +1 -1
- package/dist/utilities/createRelationshipMap.js +3 -1
- package/dist/utilities/createRelationshipMap.js.map +1 -1
- package/dist/utilities/executeSchemaHooks.d.ts +24 -0
- package/dist/utilities/executeSchemaHooks.d.ts.map +1 -0
- package/dist/utilities/executeSchemaHooks.js +21 -0
- package/dist/utilities/executeSchemaHooks.js.map +1 -0
- package/dist/utilities/extendDrizzleTable.d.ts +19 -0
- package/dist/utilities/extendDrizzleTable.d.ts.map +1 -0
- package/dist/utilities/extendDrizzleTable.js +38 -0
- package/dist/utilities/extendDrizzleTable.js.map +1 -0
- package/dist/utilities/getCollectionIdType.d.ts +7 -0
- package/dist/utilities/getCollectionIdType.d.ts.map +1 -0
- package/dist/utilities/getCollectionIdType.js +11 -0
- package/dist/utilities/getCollectionIdType.js.map +1 -0
- package/dist/utilities/getNameFromDrizzleTable.d.ts +3 -0
- package/dist/utilities/getNameFromDrizzleTable.d.ts.map +1 -0
- package/dist/utilities/getNameFromDrizzleTable.js +6 -0
- package/dist/utilities/getNameFromDrizzleTable.js.map +1 -0
- package/dist/utilities/hasLocalesTable.d.ts.map +1 -1
- package/dist/utilities/hasLocalesTable.js +12 -4
- package/dist/utilities/hasLocalesTable.js.map +1 -1
- package/dist/utilities/isPolymorphicRelationship.d.ts +6 -0
- package/dist/utilities/isPolymorphicRelationship.d.ts.map +1 -0
- package/dist/utilities/isPolymorphicRelationship.js +5 -0
- package/dist/utilities/isPolymorphicRelationship.js.map +1 -0
- package/dist/utilities/pushDevSchema.d.ts.map +1 -1
- package/dist/utilities/pushDevSchema.js +5 -0
- package/dist/utilities/pushDevSchema.js.map +1 -1
- package/license.md +22 -0
- package/package.json +26 -10
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
export const transformRelationship = ({ field, locale, ref, relations, withinArrayOrBlockLocale })=>{
|
|
2
2
|
let result;
|
|
3
3
|
if (!('hasMany' in field) || field.hasMany === false) {
|
|
4
|
-
|
|
4
|
+
let relation = relations[0];
|
|
5
|
+
if (withinArrayOrBlockLocale) {
|
|
6
|
+
relation = relations.find((rel)=>rel.locale === withinArrayOrBlockLocale);
|
|
7
|
+
}
|
|
5
8
|
if (relation) {
|
|
6
9
|
// Handle hasOne Poly
|
|
7
10
|
if (Array.isArray(field.relationTo)) {
|
|
8
|
-
const matchedRelation = Object.entries(relation).find(([key, val])=>
|
|
11
|
+
const matchedRelation = Object.entries(relation).find(([key, val])=>{
|
|
12
|
+
return val !== null && ![
|
|
9
13
|
'id',
|
|
10
14
|
'locale',
|
|
11
15
|
'order',
|
|
12
16
|
'parent',
|
|
13
17
|
'path'
|
|
14
|
-
].includes(key)
|
|
18
|
+
].includes(key);
|
|
19
|
+
});
|
|
15
20
|
if (matchedRelation) {
|
|
16
21
|
const relationTo = matchedRelation[0].replace('ID', '');
|
|
17
22
|
result = {
|
|
@@ -24,10 +29,14 @@
|
|
|
24
29
|
} else {
|
|
25
30
|
const transformedRelations = [];
|
|
26
31
|
relations.forEach((relation)=>{
|
|
32
|
+
let matchedLocale = true;
|
|
33
|
+
if (withinArrayOrBlockLocale) {
|
|
34
|
+
matchedLocale = relation.locale === withinArrayOrBlockLocale;
|
|
35
|
+
}
|
|
27
36
|
// Handle hasMany
|
|
28
37
|
if (!Array.isArray(field.relationTo)) {
|
|
29
38
|
const relatedData = relation[`${field.relationTo}ID`];
|
|
30
|
-
if (relatedData) {
|
|
39
|
+
if (relatedData && matchedLocale) {
|
|
31
40
|
transformedRelations.push(relatedData);
|
|
32
41
|
}
|
|
33
42
|
} else {
|
|
@@ -38,7 +47,7 @@
|
|
|
38
47
|
'order',
|
|
39
48
|
'parent',
|
|
40
49
|
'path'
|
|
41
|
-
].includes(key));
|
|
50
|
+
].includes(key) && matchedLocale);
|
|
42
51
|
if (matchedRelation) {
|
|
43
52
|
const relationTo = matchedRelation[0].replace('ID', '');
|
|
44
53
|
transformedRelations.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/transform/read/relationship.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../src/transform/read/relationship.ts"],"sourcesContent":["import type { RelationshipField, UploadField } from 'payload'\n\ntype Args = {\n field: RelationshipField | UploadField\n locale?: string\n ref: Record<string, unknown>\n relations: Record<string, unknown>[]\n withinArrayOrBlockLocale?: string\n}\n\nexport const transformRelationship = ({\n field,\n locale,\n ref,\n relations,\n withinArrayOrBlockLocale,\n}: Args) => {\n let result: unknown\n\n if (!('hasMany' in field) || field.hasMany === false) {\n let relation = relations[0]\n\n if (withinArrayOrBlockLocale) {\n relation = relations.find((rel) => rel.locale === withinArrayOrBlockLocale)\n }\n\n if (relation) {\n // Handle hasOne Poly\n if (Array.isArray(field.relationTo)) {\n const matchedRelation = Object.entries(relation).find(([key, val]) => {\n return val !== null && !['id', 'locale', 'order', 'parent', 'path'].includes(key)\n })\n\n if (matchedRelation) {\n const relationTo = matchedRelation[0].replace('ID', '')\n\n result = {\n relationTo,\n value: matchedRelation[1],\n }\n }\n }\n }\n } else {\n const transformedRelations = []\n\n relations.forEach((relation) => {\n let matchedLocale = true\n\n if (withinArrayOrBlockLocale) {\n matchedLocale = relation.locale === withinArrayOrBlockLocale\n }\n\n // Handle hasMany\n if (!Array.isArray(field.relationTo)) {\n const relatedData = relation[`${field.relationTo}ID`]\n\n if (relatedData && matchedLocale) {\n transformedRelations.push(relatedData)\n }\n } else {\n // Handle hasMany Poly\n const matchedRelation = Object.entries(relation).find(\n ([key, val]) =>\n val !== null &&\n !['id', 'locale', 'order', 'parent', 'path'].includes(key) &&\n matchedLocale,\n )\n\n if (matchedRelation) {\n const relationTo = matchedRelation[0].replace('ID', '')\n\n transformedRelations.push({\n relationTo,\n value: matchedRelation[1],\n })\n }\n }\n })\n\n result = transformedRelations\n }\n\n if (locale) {\n ref[field.name][locale] = result\n } else {\n ref[field.name] = result\n }\n}\n"],"names":["transformRelationship","field","locale","ref","relations","withinArrayOrBlockLocale","result","hasMany","relation","find","rel","Array","isArray","relationTo","matchedRelation","Object","entries","key","val","includes","replace","value","transformedRelations","forEach","matchedLocale","relatedData","push","name"],"mappings":"AAUA,OAAO,MAAMA,wBAAwB,CAAC,EACpCC,KAAK,EACLC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,wBAAwB,EACnB;IACL,IAAIC;IAEJ,IAAI,CAAE,CAAA,aAAaL,KAAI,KAAMA,MAAMM,OAAO,KAAK,OAAO;QACpD,IAAIC,WAAWJ,SAAS,CAAC,EAAE;QAE3B,IAAIC,0BAA0B;YAC5BG,WAAWJ,UAAUK,IAAI,CAAC,CAACC,MAAQA,IAAIR,MAAM,KAAKG;QACpD;QAEA,IAAIG,UAAU;YACZ,qBAAqB;YACrB,IAAIG,MAAMC,OAAO,CAACX,MAAMY,UAAU,GAAG;gBACnC,MAAMC,kBAAkBC,OAAOC,OAAO,CAACR,UAAUC,IAAI,CAAC,CAAC,CAACQ,KAAKC,IAAI;oBAC/D,OAAOA,QAAQ,QAAQ,CAAC;wBAAC;wBAAM;wBAAU;wBAAS;wBAAU;qBAAO,CAACC,QAAQ,CAACF;gBAC/E;gBAEA,IAAIH,iBAAiB;oBACnB,MAAMD,aAAaC,eAAe,CAAC,EAAE,CAACM,OAAO,CAAC,MAAM;oBAEpDd,SAAS;wBACPO;wBACAQ,OAAOP,eAAe,CAAC,EAAE;oBAC3B;gBACF;YACF;QACF;IACF,OAAO;QACL,MAAMQ,uBAAuB,EAAE;QAE/BlB,UAAUmB,OAAO,CAAC,CAACf;YACjB,IAAIgB,gBAAgB;YAEpB,IAAInB,0BAA0B;gBAC5BmB,gBAAgBhB,SAASN,MAAM,KAAKG;YACtC;YAEA,iBAAiB;YACjB,IAAI,CAACM,MAAMC,OAAO,CAACX,MAAMY,UAAU,GAAG;gBACpC,MAAMY,cAAcjB,QAAQ,CAAC,CAAC,EAAEP,MAAMY,UAAU,CAAC,EAAE,CAAC,CAAC;gBAErD,IAAIY,eAAeD,eAAe;oBAChCF,qBAAqBI,IAAI,CAACD;gBAC5B;YACF,OAAO;gBACL,sBAAsB;gBACtB,MAAMX,kBAAkBC,OAAOC,OAAO,CAACR,UAAUC,IAAI,CACnD,CAAC,CAACQ,KAAKC,IAAI,GACTA,QAAQ,QACR,CAAC;wBAAC;wBAAM;wBAAU;wBAAS;wBAAU;qBAAO,CAACC,QAAQ,CAACF,QACtDO;gBAGJ,IAAIV,iBAAiB;oBACnB,MAAMD,aAAaC,eAAe,CAAC,EAAE,CAACM,OAAO,CAAC,MAAM;oBAEpDE,qBAAqBI,IAAI,CAAC;wBACxBb;wBACAQ,OAAOP,eAAe,CAAC,EAAE;oBAC3B;gBACF;YACF;QACF;QAEAR,SAASgB;IACX;IAEA,IAAIpB,QAAQ;QACVC,GAAG,CAACF,MAAM0B,IAAI,CAAC,CAACzB,OAAO,GAAGI;IAC5B,OAAO;QACLH,GAAG,CAACF,MAAM0B,IAAI,CAAC,GAAGrB;IACpB;AACF,EAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Field, SanitizedConfig, TabAsField } from 'payload';
|
|
1
|
+
import type { Field, JoinQuery, SanitizedConfig, TabAsField } from 'payload';
|
|
2
2
|
import type { DrizzleAdapter } from '../../types.js';
|
|
3
3
|
import type { BlocksMap } from '../../utilities/createBlocksMap.js';
|
|
4
4
|
type TraverseFieldsArgs = {
|
|
@@ -30,6 +30,10 @@ type TraverseFieldsArgs = {
|
|
|
30
30
|
* An array of Payload fields to traverse
|
|
31
31
|
*/
|
|
32
32
|
fields: (Field | TabAsField)[];
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
joinQuery?: JoinQuery;
|
|
33
37
|
/**
|
|
34
38
|
* All hasMany number fields, as returned by Drizzle, keyed on an object by field path
|
|
35
39
|
*/
|
|
@@ -50,7 +54,11 @@ type TraverseFieldsArgs = {
|
|
|
50
54
|
* All hasMany text fields, as returned by Drizzle, keyed on an object by field path
|
|
51
55
|
*/
|
|
52
56
|
texts: Record<string, Record<string, unknown>[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Set to a locale if this group of fields is within a localized array or block.
|
|
59
|
+
*/
|
|
60
|
+
withinArrayOrBlockLocale?: string;
|
|
53
61
|
};
|
|
54
|
-
export declare const traverseFields: <T extends Record<string, unknown>>({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, numbers, path, relationships, table, texts, }: TraverseFieldsArgs) => T;
|
|
62
|
+
export declare const traverseFields: <T extends Record<string, unknown>>({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, joinQuery, numbers, path, relationships, table, texts, withinArrayOrBlockLocale, }: TraverseFieldsArgs) => T;
|
|
55
63
|
export {};
|
|
56
64
|
//# sourceMappingURL=traverseFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/read/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/read/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAI5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAMnE,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,OAAO,EAAE,cAAc,CAAA;IACvB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAClD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IACxD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAChD;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAID,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,0JAe7D,kBAAkB,KAAG,CA4lBvB,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { fieldAffectsData } from 'payload/shared';
|
|
1
|
+
import { fieldAffectsData, fieldIsVirtual } from 'payload/shared';
|
|
2
2
|
import { transformHasManyNumber } from './hasManyNumber.js';
|
|
3
3
|
import { transformHasManyText } from './hasManyText.js';
|
|
4
4
|
import { transformRelationship } from './relationship.js';
|
|
5
5
|
// Traverse fields recursively, transforming data
|
|
6
6
|
// for each field type into required Payload shape
|
|
7
|
-
export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, numbers, path, relationships, table, texts })=>{
|
|
7
|
+
export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, joinQuery, numbers, path, relationships, table, texts, withinArrayOrBlockLocale })=>{
|
|
8
8
|
const sanitizedPath = path ? `${path}.` : path;
|
|
9
9
|
const formatted = fields.reduce((result, field)=>{
|
|
10
10
|
if (field.type === 'tabs') {
|
|
@@ -19,11 +19,13 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
19
19
|
...tab,
|
|
20
20
|
type: 'tab'
|
|
21
21
|
})),
|
|
22
|
+
joinQuery,
|
|
22
23
|
numbers,
|
|
23
24
|
path,
|
|
24
25
|
relationships,
|
|
25
26
|
table,
|
|
26
|
-
texts
|
|
27
|
+
texts,
|
|
28
|
+
withinArrayOrBlockLocale
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
31
|
if (field.type === 'collapsible' || field.type === 'row' || field.type === 'tab' && !('name' in field)) {
|
|
@@ -35,16 +37,21 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
35
37
|
deletions,
|
|
36
38
|
fieldPrefix,
|
|
37
39
|
fields: field.fields,
|
|
40
|
+
joinQuery,
|
|
38
41
|
numbers,
|
|
39
42
|
path,
|
|
40
43
|
relationships,
|
|
41
44
|
table,
|
|
42
|
-
texts
|
|
45
|
+
texts,
|
|
46
|
+
withinArrayOrBlockLocale
|
|
43
47
|
});
|
|
44
48
|
}
|
|
45
49
|
if (fieldAffectsData(field)) {
|
|
50
|
+
if (fieldIsVirtual(field)) {
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
46
53
|
const fieldName = `${fieldPrefix || ''}${field.name}`;
|
|
47
|
-
|
|
54
|
+
let fieldData = table[fieldName];
|
|
48
55
|
const localizedFieldData = {};
|
|
49
56
|
const valuesToTransform = [];
|
|
50
57
|
if (fieldPrefix) {
|
|
@@ -55,7 +62,9 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
55
62
|
if (field.localized) {
|
|
56
63
|
result[field.name] = fieldData.reduce((arrayResult, row)=>{
|
|
57
64
|
if (typeof row._locale === 'string') {
|
|
58
|
-
if (!arrayResult[row._locale])
|
|
65
|
+
if (!arrayResult[row._locale]) {
|
|
66
|
+
arrayResult[row._locale] = [];
|
|
67
|
+
}
|
|
59
68
|
const locale = row._locale;
|
|
60
69
|
const data = {};
|
|
61
70
|
delete row._locale;
|
|
@@ -75,7 +84,8 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
75
84
|
path: `${sanitizedPath}${field.name}.${row._order - 1}`,
|
|
76
85
|
relationships,
|
|
77
86
|
table: row,
|
|
78
|
-
texts
|
|
87
|
+
texts,
|
|
88
|
+
withinArrayOrBlockLocale: locale
|
|
79
89
|
});
|
|
80
90
|
if ('_order' in rowResult) {
|
|
81
91
|
delete rowResult._order;
|
|
@@ -85,7 +95,7 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
85
95
|
return arrayResult;
|
|
86
96
|
}, {});
|
|
87
97
|
} else {
|
|
88
|
-
result[field.name] = fieldData.
|
|
98
|
+
result[field.name] = fieldData.reduce((acc, row, i)=>{
|
|
89
99
|
if (row._uuid) {
|
|
90
100
|
row.id = row._uuid;
|
|
91
101
|
delete row._uuid;
|
|
@@ -93,37 +103,47 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
93
103
|
if ('_order' in row) {
|
|
94
104
|
delete row._order;
|
|
95
105
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
106
|
+
if (!withinArrayOrBlockLocale || withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale) {
|
|
107
|
+
if (row._locale) {
|
|
108
|
+
delete row._locale;
|
|
109
|
+
}
|
|
110
|
+
acc.push(traverseFields({
|
|
111
|
+
adapter,
|
|
112
|
+
blocks,
|
|
113
|
+
config,
|
|
114
|
+
dataRef: row,
|
|
115
|
+
deletions,
|
|
116
|
+
fieldPrefix: '',
|
|
117
|
+
fields: field.fields,
|
|
118
|
+
numbers,
|
|
119
|
+
path: `${sanitizedPath}${field.name}.${i}`,
|
|
120
|
+
relationships,
|
|
121
|
+
table: row,
|
|
122
|
+
texts,
|
|
123
|
+
withinArrayOrBlockLocale
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
return acc;
|
|
127
|
+
}, []);
|
|
111
128
|
}
|
|
112
129
|
}
|
|
113
130
|
return result;
|
|
114
131
|
}
|
|
115
132
|
if (field.type === 'blocks') {
|
|
116
133
|
const blockFieldPath = `${sanitizedPath}${field.name}`;
|
|
117
|
-
|
|
134
|
+
const blocksByPath = blocks[blockFieldPath];
|
|
135
|
+
if (Array.isArray(blocksByPath)) {
|
|
118
136
|
if (field.localized) {
|
|
119
137
|
result[field.name] = {};
|
|
120
|
-
|
|
138
|
+
blocksByPath.forEach((row)=>{
|
|
121
139
|
if (row._uuid) {
|
|
122
140
|
row.id = row._uuid;
|
|
123
141
|
delete row._uuid;
|
|
124
142
|
}
|
|
125
143
|
if (typeof row._locale === 'string') {
|
|
126
|
-
if (!result[field.name][row._locale])
|
|
144
|
+
if (!result[field.name][row._locale]) {
|
|
145
|
+
result[field.name][row._locale] = [];
|
|
146
|
+
}
|
|
127
147
|
result[field.name][row._locale].push(row);
|
|
128
148
|
delete row._locale;
|
|
129
149
|
}
|
|
@@ -144,7 +164,8 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
144
164
|
path: `${blockFieldPath}.${row._order - 1}`,
|
|
145
165
|
relationships,
|
|
146
166
|
table: row,
|
|
147
|
-
texts
|
|
167
|
+
texts,
|
|
168
|
+
withinArrayOrBlockLocale: locale
|
|
148
169
|
});
|
|
149
170
|
delete blockResult._order;
|
|
150
171
|
return blockResult;
|
|
@@ -153,7 +174,21 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
153
174
|
});
|
|
154
175
|
});
|
|
155
176
|
} else {
|
|
156
|
-
|
|
177
|
+
// Add locale-specific index to have a proper blockFieldPath for current locale
|
|
178
|
+
// because blocks can be in the same array for different locales!
|
|
179
|
+
if (withinArrayOrBlockLocale && config.localization) {
|
|
180
|
+
for (const locale of config.localization.localeCodes){
|
|
181
|
+
let localeIndex = 0;
|
|
182
|
+
for(let i = 0; i < blocksByPath.length; i++){
|
|
183
|
+
const row = blocksByPath[i];
|
|
184
|
+
if (row._locale === locale) {
|
|
185
|
+
row._index = localeIndex;
|
|
186
|
+
localeIndex++;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
result[field.name] = blocksByPath.reduce((acc, row, i)=>{
|
|
157
192
|
delete row._order;
|
|
158
193
|
if (row._uuid) {
|
|
159
194
|
row.id = row._uuid;
|
|
@@ -161,23 +196,36 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
161
196
|
}
|
|
162
197
|
const block = field.blocks.find(({ slug })=>slug === row.blockType);
|
|
163
198
|
if (block) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
199
|
+
if (!withinArrayOrBlockLocale || withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale) {
|
|
200
|
+
if (row._locale) {
|
|
201
|
+
delete row._locale;
|
|
202
|
+
}
|
|
203
|
+
if (typeof row._index === 'number') {
|
|
204
|
+
i = row._index;
|
|
205
|
+
delete row._index;
|
|
206
|
+
}
|
|
207
|
+
acc.push(traverseFields({
|
|
208
|
+
adapter,
|
|
209
|
+
blocks,
|
|
210
|
+
config,
|
|
211
|
+
dataRef: row,
|
|
212
|
+
deletions,
|
|
213
|
+
fieldPrefix: '',
|
|
214
|
+
fields: block.fields,
|
|
215
|
+
numbers,
|
|
216
|
+
path: `${blockFieldPath}.${i}`,
|
|
217
|
+
relationships,
|
|
218
|
+
table: row,
|
|
219
|
+
texts,
|
|
220
|
+
withinArrayOrBlockLocale
|
|
221
|
+
}));
|
|
222
|
+
return acc;
|
|
223
|
+
}
|
|
224
|
+
} else {
|
|
225
|
+
acc.push({});
|
|
178
226
|
}
|
|
179
|
-
return
|
|
180
|
-
});
|
|
227
|
+
return acc;
|
|
228
|
+
}, []);
|
|
181
229
|
}
|
|
182
230
|
}
|
|
183
231
|
return result;
|
|
@@ -215,7 +263,9 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
215
263
|
const relationsByLocale = {};
|
|
216
264
|
relationPathMatch.forEach((row)=>{
|
|
217
265
|
if (typeof row.locale === 'string') {
|
|
218
|
-
if (!relationsByLocale[row.locale])
|
|
266
|
+
if (!relationsByLocale[row.locale]) {
|
|
267
|
+
relationsByLocale[row.locale] = [];
|
|
268
|
+
}
|
|
219
269
|
relationsByLocale[row.locale].push(row);
|
|
220
270
|
}
|
|
221
271
|
});
|
|
@@ -231,21 +281,64 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
231
281
|
transformRelationship({
|
|
232
282
|
field,
|
|
233
283
|
ref: result,
|
|
234
|
-
relations: relationPathMatch
|
|
284
|
+
relations: relationPathMatch,
|
|
285
|
+
withinArrayOrBlockLocale
|
|
235
286
|
});
|
|
236
287
|
}
|
|
237
288
|
return result;
|
|
238
289
|
}
|
|
239
290
|
}
|
|
291
|
+
if (field.type === 'join') {
|
|
292
|
+
const { limit = field.defaultLimit ?? 10 } = joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {};
|
|
293
|
+
// raw hasMany results from SQLite
|
|
294
|
+
if (typeof fieldData === 'string') {
|
|
295
|
+
fieldData = JSON.parse(fieldData);
|
|
296
|
+
}
|
|
297
|
+
let fieldResult;
|
|
298
|
+
if (Array.isArray(fieldData)) {
|
|
299
|
+
if (field.localized) {
|
|
300
|
+
fieldResult = fieldData.reduce((joinResult, row)=>{
|
|
301
|
+
if (typeof row._locale === 'string') {
|
|
302
|
+
if (!joinResult[row._locale]) {
|
|
303
|
+
joinResult[row._locale] = {
|
|
304
|
+
docs: [],
|
|
305
|
+
hasNextPage: false
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
joinResult[row._locale].docs.push(row._parentID);
|
|
309
|
+
}
|
|
310
|
+
return joinResult;
|
|
311
|
+
}, {});
|
|
312
|
+
Object.keys(fieldResult).forEach((locale)=>{
|
|
313
|
+
fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit;
|
|
314
|
+
fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit);
|
|
315
|
+
});
|
|
316
|
+
} else {
|
|
317
|
+
const hasNextPage = limit !== 0 && fieldData.length > limit;
|
|
318
|
+
fieldResult = {
|
|
319
|
+
docs: (hasNextPage ? fieldData.slice(0, limit) : fieldData).map(({ id })=>({
|
|
320
|
+
id
|
|
321
|
+
})),
|
|
322
|
+
hasNextPage
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
result[field.name] = fieldResult;
|
|
327
|
+
return result;
|
|
328
|
+
}
|
|
240
329
|
if (field.type === 'text' && field?.hasMany) {
|
|
241
330
|
const textPathMatch = texts[`${sanitizedPath}${field.name}`];
|
|
242
|
-
if (!textPathMatch)
|
|
331
|
+
if (!textPathMatch) {
|
|
332
|
+
return result;
|
|
333
|
+
}
|
|
243
334
|
if (field.localized) {
|
|
244
335
|
result[field.name] = {};
|
|
245
336
|
const textsByLocale = {};
|
|
246
337
|
textPathMatch.forEach((row)=>{
|
|
247
338
|
if (typeof row.locale === 'string') {
|
|
248
|
-
if (!textsByLocale[row.locale])
|
|
339
|
+
if (!textsByLocale[row.locale]) {
|
|
340
|
+
textsByLocale[row.locale] = [];
|
|
341
|
+
}
|
|
249
342
|
textsByLocale[row.locale].push(row);
|
|
250
343
|
}
|
|
251
344
|
});
|
|
@@ -261,20 +354,25 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
261
354
|
transformHasManyText({
|
|
262
355
|
field,
|
|
263
356
|
ref: result,
|
|
264
|
-
textRows: textPathMatch
|
|
357
|
+
textRows: textPathMatch,
|
|
358
|
+
withinArrayOrBlockLocale
|
|
265
359
|
});
|
|
266
360
|
}
|
|
267
361
|
return result;
|
|
268
362
|
}
|
|
269
363
|
if (field.type === 'number' && field.hasMany) {
|
|
270
364
|
const numberPathMatch = numbers[`${sanitizedPath}${field.name}`];
|
|
271
|
-
if (!numberPathMatch)
|
|
365
|
+
if (!numberPathMatch) {
|
|
366
|
+
return result;
|
|
367
|
+
}
|
|
272
368
|
if (field.localized) {
|
|
273
369
|
result[field.name] = {};
|
|
274
370
|
const numbersByLocale = {};
|
|
275
371
|
numberPathMatch.forEach((row)=>{
|
|
276
372
|
if (typeof row.locale === 'string') {
|
|
277
|
-
if (!numbersByLocale[row.locale])
|
|
373
|
+
if (!numbersByLocale[row.locale]) {
|
|
374
|
+
numbersByLocale[row.locale] = [];
|
|
375
|
+
}
|
|
278
376
|
numbersByLocale[row.locale].push(row);
|
|
279
377
|
}
|
|
280
378
|
});
|
|
@@ -290,7 +388,8 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
290
388
|
transformHasManyNumber({
|
|
291
389
|
field,
|
|
292
390
|
numberRows: numberPathMatch,
|
|
293
|
-
ref: result
|
|
391
|
+
ref: result,
|
|
392
|
+
withinArrayOrBlockLocale
|
|
294
393
|
});
|
|
295
394
|
}
|
|
296
395
|
return result;
|
|
@@ -300,22 +399,34 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
300
399
|
if (field.localized) {
|
|
301
400
|
result[field.name] = fieldData.reduce((selectResult, row)=>{
|
|
302
401
|
if (typeof row.locale === 'string') {
|
|
303
|
-
if (!selectResult[row.locale])
|
|
402
|
+
if (!selectResult[row.locale]) {
|
|
403
|
+
selectResult[row.locale] = [];
|
|
404
|
+
}
|
|
304
405
|
selectResult[row.locale].push(row.value);
|
|
305
406
|
}
|
|
306
407
|
return selectResult;
|
|
307
408
|
}, {});
|
|
308
409
|
} else {
|
|
309
|
-
|
|
410
|
+
let selectData = fieldData;
|
|
411
|
+
if (withinArrayOrBlockLocale) {
|
|
412
|
+
selectData = selectData.filter(({ locale })=>locale === withinArrayOrBlockLocale);
|
|
413
|
+
}
|
|
414
|
+
result[field.name] = selectData.map(({ value })=>value);
|
|
310
415
|
}
|
|
311
416
|
}
|
|
312
417
|
return result;
|
|
313
418
|
}
|
|
314
419
|
if (field.localized && Array.isArray(table._locales)) {
|
|
420
|
+
if (!table._locales.length && adapter.payload.config.localization) {
|
|
421
|
+
adapter.payload.config.localization.localeCodes.forEach((_locale)=>table._locales.push({
|
|
422
|
+
_locale
|
|
423
|
+
}));
|
|
424
|
+
}
|
|
315
425
|
table._locales.forEach((localeRow)=>{
|
|
316
426
|
valuesToTransform.push({
|
|
317
427
|
ref: localizedFieldData,
|
|
318
428
|
table: {
|
|
429
|
+
...table,
|
|
319
430
|
...localeRow
|
|
320
431
|
}
|
|
321
432
|
});
|
|
@@ -331,14 +442,23 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
331
442
|
const locale = table?._locale;
|
|
332
443
|
let val = fieldData;
|
|
333
444
|
switch(field.type){
|
|
334
|
-
case '
|
|
445
|
+
case 'date':
|
|
446
|
+
{
|
|
447
|
+
if (typeof fieldData === 'string') {
|
|
448
|
+
val = new Date(fieldData).toISOString();
|
|
449
|
+
}
|
|
450
|
+
break;
|
|
451
|
+
}
|
|
335
452
|
case 'group':
|
|
453
|
+
case 'tab':
|
|
336
454
|
{
|
|
337
455
|
const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`;
|
|
338
456
|
const groupData = {};
|
|
339
457
|
const locale = table._locale;
|
|
340
458
|
const refKey = field.localized && locale ? locale : field.name;
|
|
341
|
-
if (field.localized && locale)
|
|
459
|
+
if (field.localized && locale) {
|
|
460
|
+
delete table._locale;
|
|
461
|
+
}
|
|
342
462
|
ref[refKey] = traverseFields({
|
|
343
463
|
adapter,
|
|
344
464
|
blocks,
|
|
@@ -351,20 +471,14 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
351
471
|
path: `${sanitizedPath}${field.name}`,
|
|
352
472
|
relationships,
|
|
353
473
|
table,
|
|
354
|
-
texts
|
|
474
|
+
texts,
|
|
475
|
+
withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale
|
|
355
476
|
});
|
|
356
477
|
if ('_order' in ref) {
|
|
357
478
|
delete ref._order;
|
|
358
479
|
}
|
|
359
480
|
return;
|
|
360
481
|
}
|
|
361
|
-
case 'text':
|
|
362
|
-
{
|
|
363
|
-
if (typeof fieldData === 'string') {
|
|
364
|
-
val = String(fieldData);
|
|
365
|
-
}
|
|
366
|
-
break;
|
|
367
|
-
}
|
|
368
482
|
case 'number':
|
|
369
483
|
{
|
|
370
484
|
if (typeof fieldData === 'string') {
|
|
@@ -372,13 +486,6 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
372
486
|
}
|
|
373
487
|
break;
|
|
374
488
|
}
|
|
375
|
-
case 'date':
|
|
376
|
-
{
|
|
377
|
-
if (typeof fieldData === 'string') {
|
|
378
|
-
val = new Date(fieldData).toISOString();
|
|
379
|
-
}
|
|
380
|
-
break;
|
|
381
|
-
}
|
|
382
489
|
case 'relationship':
|
|
383
490
|
case 'upload':
|
|
384
491
|
{
|
|
@@ -387,6 +494,13 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
387
494
|
}
|
|
388
495
|
break;
|
|
389
496
|
}
|
|
497
|
+
case 'text':
|
|
498
|
+
{
|
|
499
|
+
if (typeof fieldData === 'string') {
|
|
500
|
+
val = String(fieldData);
|
|
501
|
+
}
|
|
502
|
+
break;
|
|
503
|
+
}
|
|
390
504
|
default:
|
|
391
505
|
{
|
|
392
506
|
break;
|