@payloadcms/db-postgres 3.0.0-beta.37 → 3.0.0-beta.39
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/count.d.ts.map +1 -1
- package/dist/count.js +1 -10
- package/dist/count.js.map +1 -1
- package/dist/createMigration.d.ts.map +1 -1
- package/dist/createMigration.js +58 -37
- package/dist/createMigration.js.map +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +2 -6
- package/dist/createVersion.js.map +1 -1
- package/dist/deleteOne.js +2 -2
- package/dist/deleteOne.js.map +1 -1
- package/dist/exports/migration-utils.d.ts +2 -0
- package/dist/exports/migration-utils.d.ts.map +1 -0
- package/dist/exports/migration-utils.js +3 -0
- package/dist/exports/migration-utils.js.map +1 -0
- package/dist/find/buildFindManyArgs.d.ts +5 -1
- 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/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +4 -15
- 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 +22 -4
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +14 -19
- package/dist/init.js.map +1 -1
- package/dist/predefinedMigrations/relationships-v2-v3.d.ts +4 -0
- package/dist/predefinedMigrations/relationships-v2-v3.d.ts.map +1 -0
- package/dist/predefinedMigrations/relationships-v2-v3.js.map +1 -0
- package/dist/predefinedMigrations/relationships-v2-v3.mjs +11 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts +20 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.js +170 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/index.js.map +1 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts +11 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js +191 -0
- package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -0
- package/dist/predefinedMigrations/v2-v3/groupUpSQLStatements.d.ts +3 -0
- package/dist/predefinedMigrations/v2-v3/groupUpSQLStatements.d.ts.map +1 -0
- package/dist/predefinedMigrations/v2-v3/groupUpSQLStatements.js +56 -0
- package/dist/predefinedMigrations/v2-v3/groupUpSQLStatements.js.map +1 -0
- package/dist/predefinedMigrations/v2-v3/index.d.ts +24 -0
- package/dist/predefinedMigrations/v2-v3/index.d.ts.map +1 -0
- package/dist/predefinedMigrations/v2-v3/index.js +211 -0
- package/dist/predefinedMigrations/v2-v3/index.js.map +1 -0
- package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts +19 -0
- package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -0
- package/dist/predefinedMigrations/v2-v3/migrateRelationships.js +57 -0
- package/dist/predefinedMigrations/v2-v3/migrateRelationships.js.map +1 -0
- package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts +23 -0
- package/dist/predefinedMigrations/v2-v3/traverseFields.d.ts.map +1 -0
- package/dist/predefinedMigrations/v2-v3/traverseFields.js +85 -0
- package/dist/predefinedMigrations/v2-v3/traverseFields.js.map +1 -0
- package/dist/predefinedMigrations/v2-v3/types.d.ts +9 -0
- package/dist/predefinedMigrations/v2-v3/types.d.ts.map +1 -0
- package/dist/predefinedMigrations/v2-v3/types.js +6 -0
- package/dist/predefinedMigrations/v2-v3/types.js.map +1 -0
- package/dist/queries/buildAndOrConditions.d.ts +3 -4
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +1 -2
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/buildQuery.d.ts +1 -2
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +1 -5
- package/dist/queries/buildQuery.js.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +3 -4
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +168 -96
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/parseParams.d.ts +3 -4
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +1 -3
- package/dist/queries/parseParams.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 +3 -14
- package/dist/queries/selectDistinct.js.map +1 -1
- package/dist/schema/build.d.ts +8 -4
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +161 -112
- package/dist/schema/build.js.map +1 -1
- package/dist/schema/traverseFields.d.ts +4 -6
- package/dist/schema/traverseFields.d.ts.map +1 -1
- package/dist/schema/traverseFields.js +103 -40
- package/dist/schema/traverseFields.js.map +1 -1
- package/dist/transform/read/index.d.ts +3 -1
- package/dist/transform/read/index.d.ts.map +1 -1
- package/dist/transform/read/index.js +2 -1
- package/dist/transform/read/index.js.map +1 -1
- package/dist/transform/read/relationship.d.ts.map +1 -1
- package/dist/transform/read/relationship.js +0 -4
- package/dist/transform/read/relationship.js.map +1 -1
- package/dist/transform/read/traverseFields.d.ts +6 -1
- package/dist/transform/read/traverseFields.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.js +69 -55
- package/dist/transform/read/traverseFields.js.map +1 -1
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +20 -3
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +1 -2
- package/dist/update.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 +3 -1
- package/dist/upsertRow/index.js.map +1 -1
- package/dist/upsertRow/types.d.ts +5 -0
- package/dist/upsertRow/types.d.ts.map +1 -1
- package/dist/upsertRow/types.js.map +1 -1
- package/package.json +12 -6
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Field } from 'payload/types'\n\nimport { fieldAffectsData, tabHasName } from 'payload/types'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\ntype TraverseFieldArgs = {\n _locales:
|
1
|
+
{"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Field } from 'payload/types'\n\nimport { fieldAffectsData, tabHasName } from 'payload/types'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: PostgresAdapter\n currentArgs: Result\n currentTableName: string\n depth?: number\n fields: Field[]\n path: string\n topLevelArgs: Record<string, unknown>\n topLevelTableName: string\n}\n\nexport const traverseFields = ({\n _locales,\n adapter,\n currentArgs,\n currentTableName,\n depth,\n fields,\n path,\n topLevelArgs,\n topLevelTableName,\n}: TraverseFieldArgs) => {\n fields.forEach((field) => {\n // handle simple relationship\n if (\n depth > 0 &&\n (field.type === 'upload' ||\n (field.type === 'relationship' && !field.hasMany && typeof field.relationTo === 'string'))\n ) {\n if (field.localized) {\n _locales.with[`${path}${field.name}`] = true\n } else {\n currentArgs.with[`${path}${field.name}`] = true\n }\n }\n\n if (field.type === 'collapsible' || field.type === 'row') {\n traverseFields({\n _locales,\n adapter,\n currentArgs,\n currentTableName,\n depth,\n fields: field.fields,\n path,\n topLevelArgs,\n topLevelTableName,\n })\n\n return\n }\n\n if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n const tabPath = tabHasName(tab) ? `${path}${tab.name}_` : path\n\n traverseFields({\n _locales,\n adapter,\n currentArgs,\n currentTableName,\n depth,\n fields: tab.fields,\n path: tabPath,\n topLevelArgs,\n topLevelTableName,\n })\n })\n\n return\n }\n\n if (fieldAffectsData(field)) {\n switch (field.type) {\n case 'array': {\n const withArray: Result = {\n columns: {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${path}${toSnakeCase(field.name)}`,\n )\n\n const arrayTableNameWithLocales = `${arrayTableName}${adapter.localesSuffix}`\n\n if (adapter.tables[arrayTableNameWithLocales]) {\n withArray.with._locales = {\n columns: {\n id: false,\n _parentID: false,\n },\n with: {},\n }\n }\n currentArgs.with[`${path}${field.name}`] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n fields: field.fields,\n path: '',\n topLevelArgs,\n topLevelTableName,\n })\n\n break\n }\n\n case 'select': {\n if (field.hasMany) {\n const withSelect: Result = {\n columns: {\n id: false,\n order: false,\n parent: false,\n },\n orderBy: ({ order }, { asc }) => [asc(order)],\n }\n\n currentArgs.with[`${path}${field.name}`] = withSelect\n }\n\n break\n }\n\n case 'blocks':\n field.blocks.forEach((block) => {\n const blockKey = `_blocks_${block.slug}`\n\n if (!topLevelArgs[blockKey]) {\n const withBlock: Result = {\n columns: {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const tableName = adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n if (adapter.tables[`${tableName}${adapter.localesSuffix}`]) {\n withBlock.with._locales = {\n with: {},\n }\n }\n topLevelArgs.with[blockKey] = withBlock\n\n traverseFields({\n _locales: withBlock.with._locales,\n adapter,\n currentArgs: withBlock,\n currentTableName: tableName,\n depth,\n fields: block.fields,\n path: '',\n topLevelArgs,\n topLevelTableName,\n })\n }\n })\n\n break\n\n case 'group':\n traverseFields({\n _locales,\n adapter,\n currentArgs,\n currentTableName,\n depth,\n fields: field.fields,\n path: `${path}${field.name}_`,\n topLevelArgs,\n topLevelTableName,\n })\n\n break\n\n default: {\n break\n }\n }\n }\n })\n\n return topLevelArgs\n}\n"],"names":["fieldAffectsData","tabHasName","toSnakeCase","traverseFields","_locales","adapter","currentArgs","currentTableName","depth","fields","path","topLevelArgs","topLevelTableName","forEach","field","type","hasMany","relationTo","localized","with","name","tabs","tab","tabPath","withArray","columns","_parentID","orderBy","_order","asc","arrayTableName","tableNameMap","get","arrayTableNameWithLocales","localesSuffix","tables","id","withSelect","order","parent","blocks","block","blockKey","slug","withBlock","tableName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/dist/init.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAY5C,eAAO,MAAM,IAAI,EAAE,IA6FlB,CAAA"}
|
package/dist/init.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
/* eslint-disable no-param-reassign */ import { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core';
|
2
2
|
import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload/versions';
|
3
|
+
import toSnakeCase from 'to-snake-case';
|
3
4
|
import { buildTable } from './schema/build.js';
|
4
5
|
import { createTableName } from './schema/createTableName.js';
|
5
6
|
export const init = function init() {
|
@@ -14,15 +15,23 @@ export const init = function init() {
|
|
14
15
|
this.enums.enum__locales = pgEnum('_locales', this.payload.config.localization.locales.map(({ code })=>code));
|
15
16
|
}
|
16
17
|
this.payload.config.collections.forEach((collection)=>{
|
17
|
-
|
18
|
+
createTableName({
|
18
19
|
adapter: this,
|
19
20
|
config: collection
|
20
21
|
});
|
22
|
+
if (collection.versions) {
|
23
|
+
createTableName({
|
24
|
+
adapter: this,
|
25
|
+
config: collection,
|
26
|
+
versions: true,
|
27
|
+
versionsCustomName: true
|
28
|
+
});
|
29
|
+
}
|
30
|
+
});
|
31
|
+
this.payload.config.collections.forEach((collection)=>{
|
32
|
+
const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
|
21
33
|
buildTable({
|
22
34
|
adapter: this,
|
23
|
-
buildNumbers: true,
|
24
|
-
buildRelationships: true,
|
25
|
-
buildTexts: true,
|
26
35
|
disableNotNull: !!collection?.versions?.drafts,
|
27
36
|
disableUnique: false,
|
28
37
|
fields: collection.fields,
|
@@ -31,18 +40,10 @@ export const init = function init() {
|
|
31
40
|
versions: false
|
32
41
|
});
|
33
42
|
if (collection.versions) {
|
34
|
-
const versionsTableName =
|
35
|
-
adapter: this,
|
36
|
-
config: collection,
|
37
|
-
versions: true,
|
38
|
-
versionsCustomName: true
|
39
|
-
});
|
43
|
+
const versionsTableName = this.tableNameMap.get(`_${toSnakeCase(collection.slug)}${this.versionsSuffix}`);
|
40
44
|
const versionFields = buildVersionCollectionFields(collection);
|
41
45
|
buildTable({
|
42
46
|
adapter: this,
|
43
|
-
buildNumbers: true,
|
44
|
-
buildRelationships: true,
|
45
|
-
buildTexts: true,
|
46
47
|
disableNotNull: !!collection.versions?.drafts,
|
47
48
|
disableUnique: true,
|
48
49
|
fields: versionFields,
|
@@ -59,9 +60,6 @@ export const init = function init() {
|
|
59
60
|
});
|
60
61
|
buildTable({
|
61
62
|
adapter: this,
|
62
|
-
buildNumbers: true,
|
63
|
-
buildRelationships: true,
|
64
|
-
buildTexts: true,
|
65
63
|
disableNotNull: !!global?.versions?.drafts,
|
66
64
|
disableUnique: false,
|
67
65
|
fields: global.fields,
|
@@ -79,9 +77,6 @@ export const init = function init() {
|
|
79
77
|
const versionFields = buildVersionGlobalFields(global);
|
80
78
|
buildTable({
|
81
79
|
adapter: this,
|
82
|
-
buildNumbers: true,
|
83
|
-
buildRelationships: true,
|
84
|
-
buildTexts: true,
|
85
80
|
disableNotNull: !!global.versions?.drafts,
|
86
81
|
disableUnique: true,
|
87
82
|
fields: versionFields,
|
package/dist/init.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/init.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Init } from 'payload/database'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload/versions'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\nimport { createTableName } from './schema/createTableName.js'\n\nexport const init: Init = function init(this: PostgresAdapter) {\n if (this.schemaName) {\n this.pgSchema = pgSchema(this.schemaName)\n } else {\n this.pgSchema = { table: pgTable }\n }\n\n if (this.payload.config.localization) {\n this.enums.enum__locales = pgEnum(\n '_locales',\n this.payload.config.localization.locales.map(({ code }) => code) as [string, ...string[]],\n )\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n
|
1
|
+
{"version":3,"sources":["../src/init.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Init } from 'payload/database'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload/versions'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { PostgresAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\nimport { createTableName } from './schema/createTableName.js'\n\nexport const init: Init = function init(this: PostgresAdapter) {\n if (this.schemaName) {\n this.pgSchema = pgSchema(this.schemaName)\n } else {\n this.pgSchema = { table: pgTable }\n }\n\n if (this.payload.config.localization) {\n this.enums.enum__locales = pgEnum(\n '_locales',\n this.payload.config.localization.locales.map(({ code }) => code) as [string, ...string[]],\n )\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.fields,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = this.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${this.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(collection)\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({ adapter: this, config: global })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.fields,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const versionFields = buildVersionGlobalFields(global)\n\n buildTable({\n adapter: this,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["pgEnum","pgSchema","pgTable","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","createTableName","init","schemaName","table","payload","config","localization","enums","enum__locales","locales","map","code","collections","forEach","collection","adapter","versions","versionsCustomName","tableName","tableNameMap","get","slug","disableNotNull","drafts","disableUnique","fields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,oCAAoC,GAIpC,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,sBAAqB;AAC/D,SAASC,4BAA4B,EAAEC,wBAAwB,QAAQ,mBAAkB;AACzF,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,oBAAmB;AAC9C,SAASC,eAAe,QAAQ,8BAA6B;AAE7D,OAAO,MAAMC,OAAa,SAASA;IACjC,IAAI,IAAI,CAACC,UAAU,EAAE;QACnB,IAAI,CAACR,QAAQ,GAAGA,SAAS,IAAI,CAACQ,UAAU;IAC1C,OAAO;QACL,IAAI,CAACR,QAAQ,GAAG;YAAES,OAAOR;QAAQ;IACnC;IAEA,IAAI,IAAI,CAACS,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACpC,IAAI,CAACC,KAAK,CAACC,aAAa,GAAGf,OACzB,YACA,IAAI,CAACW,OAAO,CAACC,MAAM,CAACC,YAAY,CAACG,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;IAE/D;IAEA,IAAI,CAACP,OAAO,CAACC,MAAM,CAACO,WAAW,CAACC,OAAO,CAAC,CAACC;QACvCd,gBAAgB;YACde,SAAS,IAAI;YACbV,QAAQS;QACV;QAEA,IAAIA,WAAWE,QAAQ,EAAE;YACvBhB,gBAAgB;gBACde,SAAS,IAAI;gBACbV,QAAQS;gBACRE,UAAU;gBACVC,oBAAoB;YACtB;QACF;IACF;IACA,IAAI,CAACb,OAAO,CAACC,MAAM,CAACO,WAAW,CAACC,OAAO,CAAC,CAACC;QACvC,MAAMI,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACtB,YAAYgB,WAAWO,IAAI;QAEnEtB,WAAW;YACTgB,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACR,YAAYE,UAAUO;YACxCC,eAAe;YACfC,QAAQX,WAAWW,MAAM;YACzBP;YACAQ,YAAYZ,WAAWY,UAAU;YACjCV,UAAU;QACZ;QAEA,IAAIF,WAAWE,QAAQ,EAAE;YACvB,MAAMW,oBAAoB,IAAI,CAACR,YAAY,CAACC,GAAG,CAC7C,CAAC,CAAC,EAAEtB,YAAYgB,WAAWO,IAAI,EAAE,EAAE,IAAI,CAACO,cAAc,CAAC,CAAC;YAE1D,MAAMC,gBAAgBjC,6BAA6BkB;YAEnDf,WAAW;gBACTgB,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACR,WAAWE,QAAQ,EAAEO;gBACvCC,eAAe;gBACfC,QAAQI;gBACRX,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;IAEA,IAAI,CAACZ,OAAO,CAACC,MAAM,CAACyB,OAAO,CAACjB,OAAO,CAAC,CAACkB;QACnC,MAAMb,YAAYlB,gBAAgB;YAAEe,SAAS,IAAI;YAAEV,QAAQ0B;QAAO;QAElEhC,WAAW;YACTgB,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACS,QAAQf,UAAUO;YACpCC,eAAe;YACfC,QAAQM,OAAON,MAAM;YACrBP;YACAQ,YAAY;YACZV,UAAU;QACZ;QAEA,IAAIe,OAAOf,QAAQ,EAAE;YACnB,MAAMW,oBAAoB3B,gBAAgB;gBACxCe,SAAS,IAAI;gBACbV,QAAQ0B;gBACRf,UAAU;gBACVC,oBAAoB;YACtB;YACA,MAAMY,gBAAgBhC,yBAAyBkC;YAE/ChC,WAAW;gBACTgB,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACS,OAAOf,QAAQ,EAAEO;gBACnCC,eAAe;gBACfC,QAAQI;gBACRX,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;AACF,EAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
declare const imports = "import { migratePostgresV2toV3 } from '@payloadcms/db-postgres/migration-utils'";
|
2
|
+
declare const upSQL = " await migratePostgresV2toV3({\n // enables logging of changes that will be made to the database\n debug: false,\n payload,\n req,\n })\n";
|
3
|
+
export { imports, upSQL };
|
4
|
+
//# sourceMappingURL=relationships-v2-v3.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"relationships-v2-v3.d.ts","sourceRoot":"","sources":["../../src/predefinedMigrations/relationships-v2-v3.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,OAAO,oFAAoF,CAAA;AACjG,QAAA,MAAM,KAAK,mLAMV,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/predefinedMigrations/relationships-v2-v3.ts"],"sourcesContent":["const imports = `import { migratePostgresV2toV3 } from '@payloadcms/db-postgres/migration-utils'`\nconst upSQL = ` await migratePostgresV2toV3({\n // enables logging of changes that will be made to the database\n debug: false,\n payload,\n req,\n })\n`\n\nexport { imports, upSQL }\n"],"names":["imports","upSQL"],"rangeMappings":";;;;;;;;","mappings":"AAAA,MAAMA,UAAU,CAAC,+EAA+E,CAAC;AACjG,MAAMC,QAAQ,CAAC;;;;;;AAMf,CAAC;AAED,SAASD,OAAO,EAAEC,KAAK,GAAE"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const imports = `import { migratePostgresV2toV3 } from '@payloadcms/db-postgres/migration-utils'`;
|
2
|
+
const upSQL = ` await migratePostgresV2toV3({
|
3
|
+
// enables logging of changes that will be made to the database
|
4
|
+
debug: false,
|
5
|
+
payload,
|
6
|
+
req,
|
7
|
+
})
|
8
|
+
`;
|
9
|
+
export { imports, upSQL };
|
10
|
+
|
11
|
+
//# sourceMappingURL=relationships-v2-v3.js.map
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import type { Payload } from 'payload';
|
2
|
+
import type { Field, PayloadRequestWithData } from 'payload/types';
|
3
|
+
import type { DrizzleTransaction, PostgresAdapter } from '../../../types.js';
|
4
|
+
import type { DocsToResave } from '../types.js';
|
5
|
+
type Args = {
|
6
|
+
adapter: PostgresAdapter;
|
7
|
+
collectionSlug?: string;
|
8
|
+
db: DrizzleTransaction;
|
9
|
+
debug: boolean;
|
10
|
+
docsToResave: DocsToResave;
|
11
|
+
fields: Field[];
|
12
|
+
globalSlug?: string;
|
13
|
+
isVersions: boolean;
|
14
|
+
payload: Payload;
|
15
|
+
req: PayloadRequestWithData;
|
16
|
+
tableName: string;
|
17
|
+
};
|
18
|
+
export declare const fetchAndResave: ({ adapter, collectionSlug, db, debug, docsToResave, fields, globalSlug, isVersions, payload, req, tableName, }: Args) => Promise<void>;
|
19
|
+
export {};
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/predefinedMigrations/v2-v3/fetchAndResave/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK/C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,kBAAkB,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,cAAc,mHAYxB,IAAI,kBAyMN,CAAA"}
|
@@ -0,0 +1,170 @@
|
|
1
|
+
import { upsertRow } from '../../../upsertRow/index.js';
|
2
|
+
import { traverseFields } from './traverseFields.js';
|
3
|
+
export const fetchAndResave = async ({ adapter, collectionSlug, db, debug, docsToResave, fields, globalSlug, isVersions, payload, req, tableName })=>{
|
4
|
+
for (const [id, rows] of Object.entries(docsToResave)){
|
5
|
+
if (collectionSlug) {
|
6
|
+
const collectionConfig = payload.collections[collectionSlug].config;
|
7
|
+
if (collectionConfig) {
|
8
|
+
if (isVersions) {
|
9
|
+
const doc = await payload.findVersionByID({
|
10
|
+
id,
|
11
|
+
collection: collectionSlug,
|
12
|
+
depth: 0,
|
13
|
+
fallbackLocale: null,
|
14
|
+
locale: 'all',
|
15
|
+
req,
|
16
|
+
showHiddenFields: true
|
17
|
+
});
|
18
|
+
if (debug) {
|
19
|
+
payload.logger.info(`The collection "${collectionConfig.slug}" version with ID ${id} will be migrated`);
|
20
|
+
}
|
21
|
+
traverseFields({
|
22
|
+
doc,
|
23
|
+
fields,
|
24
|
+
path: '',
|
25
|
+
rows
|
26
|
+
});
|
27
|
+
try {
|
28
|
+
await upsertRow({
|
29
|
+
id: doc.id,
|
30
|
+
adapter,
|
31
|
+
data: doc,
|
32
|
+
db,
|
33
|
+
fields,
|
34
|
+
ignoreResult: true,
|
35
|
+
operation: 'update',
|
36
|
+
req,
|
37
|
+
tableName
|
38
|
+
});
|
39
|
+
} catch (err) {
|
40
|
+
payload.logger.error(`"${collectionConfig.slug}" version with ID ${doc.id} FAILED TO MIGRATE`);
|
41
|
+
throw err;
|
42
|
+
}
|
43
|
+
if (debug) {
|
44
|
+
payload.logger.info(`"${collectionConfig.slug}" version with ID ${doc.id} migrated successfully!`);
|
45
|
+
}
|
46
|
+
} else {
|
47
|
+
const doc = await payload.findByID({
|
48
|
+
id,
|
49
|
+
collection: collectionSlug,
|
50
|
+
depth: 0,
|
51
|
+
fallbackLocale: null,
|
52
|
+
locale: 'all',
|
53
|
+
req,
|
54
|
+
showHiddenFields: true
|
55
|
+
});
|
56
|
+
if (debug) {
|
57
|
+
payload.logger.info(`The collection "${collectionConfig.slug}" with ID ${doc.id} will be migrated`);
|
58
|
+
}
|
59
|
+
traverseFields({
|
60
|
+
doc,
|
61
|
+
fields,
|
62
|
+
path: '',
|
63
|
+
rows
|
64
|
+
});
|
65
|
+
try {
|
66
|
+
await upsertRow({
|
67
|
+
id: doc.id,
|
68
|
+
adapter,
|
69
|
+
data: doc,
|
70
|
+
db,
|
71
|
+
fields,
|
72
|
+
ignoreResult: true,
|
73
|
+
operation: 'update',
|
74
|
+
req,
|
75
|
+
tableName
|
76
|
+
});
|
77
|
+
} catch (err) {
|
78
|
+
payload.logger.error(`The collection "${collectionConfig.slug}" with ID ${doc.id} has FAILED TO MIGRATE`);
|
79
|
+
throw err;
|
80
|
+
}
|
81
|
+
if (debug) {
|
82
|
+
payload.logger.info(`The collection "${collectionConfig.slug}" with ID ${doc.id} has migrated successfully!`);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
if (globalSlug) {
|
88
|
+
const globalConfig = payload.config.globals?.find((global)=>global.slug === globalSlug);
|
89
|
+
if (globalConfig) {
|
90
|
+
if (isVersions) {
|
91
|
+
const { docs } = await payload.findGlobalVersions({
|
92
|
+
slug: globalSlug,
|
93
|
+
depth: 0,
|
94
|
+
fallbackLocale: null,
|
95
|
+
limit: 0,
|
96
|
+
locale: 'all',
|
97
|
+
req,
|
98
|
+
showHiddenFields: true
|
99
|
+
});
|
100
|
+
if (debug) {
|
101
|
+
payload.logger.info(`${docs.length} global "${globalSlug}" versions will be migrated`);
|
102
|
+
}
|
103
|
+
for (const doc of docs){
|
104
|
+
traverseFields({
|
105
|
+
doc,
|
106
|
+
fields,
|
107
|
+
path: '',
|
108
|
+
rows
|
109
|
+
});
|
110
|
+
try {
|
111
|
+
await upsertRow({
|
112
|
+
id: doc.id,
|
113
|
+
adapter,
|
114
|
+
data: doc,
|
115
|
+
db,
|
116
|
+
fields,
|
117
|
+
ignoreResult: true,
|
118
|
+
operation: 'update',
|
119
|
+
req,
|
120
|
+
tableName
|
121
|
+
});
|
122
|
+
} catch (err) {
|
123
|
+
payload.logger.error(`"${globalSlug}" version with ID ${doc.id} FAILED TO MIGRATE`);
|
124
|
+
throw err;
|
125
|
+
}
|
126
|
+
if (debug) {
|
127
|
+
payload.logger.info(`"${globalSlug}" version with ID ${doc.id} migrated successfully!`);
|
128
|
+
}
|
129
|
+
}
|
130
|
+
} else {
|
131
|
+
const doc = await payload.findGlobal({
|
132
|
+
slug: globalSlug,
|
133
|
+
depth: 0,
|
134
|
+
fallbackLocale: null,
|
135
|
+
locale: 'all',
|
136
|
+
req,
|
137
|
+
showHiddenFields: true
|
138
|
+
});
|
139
|
+
traverseFields({
|
140
|
+
doc,
|
141
|
+
fields,
|
142
|
+
path: '',
|
143
|
+
rows
|
144
|
+
});
|
145
|
+
try {
|
146
|
+
await upsertRow({
|
147
|
+
id: doc.id,
|
148
|
+
adapter,
|
149
|
+
data: doc,
|
150
|
+
db,
|
151
|
+
fields,
|
152
|
+
ignoreResult: true,
|
153
|
+
operation: 'update',
|
154
|
+
req,
|
155
|
+
tableName
|
156
|
+
});
|
157
|
+
} catch (err) {
|
158
|
+
payload.logger.error(`The global "${globalSlug}" has FAILED TO MIGRATE`);
|
159
|
+
throw err;
|
160
|
+
}
|
161
|
+
if (debug) {
|
162
|
+
payload.logger.info(`The global "${globalSlug}" has migrated successfully!`);
|
163
|
+
}
|
164
|
+
}
|
165
|
+
}
|
166
|
+
}
|
167
|
+
}
|
168
|
+
};
|
169
|
+
|
170
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../src/predefinedMigrations/v2-v3/fetchAndResave/index.ts"],"sourcesContent":["import type { Payload } from 'payload'\nimport type { Field, PayloadRequestWithData } from 'payload/types'\n\nimport type { DrizzleTransaction, PostgresAdapter } from '../../../types.js'\nimport type { DocsToResave } from '../types.js'\n\nimport { upsertRow } from '../../../upsertRow/index.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: PostgresAdapter\n collectionSlug?: string\n db: DrizzleTransaction\n debug: boolean\n docsToResave: DocsToResave\n fields: Field[]\n globalSlug?: string\n isVersions: boolean\n payload: Payload\n req: PayloadRequestWithData\n tableName: string\n}\n\nexport const fetchAndResave = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req,\n tableName,\n}: Args) => {\n for (const [id, rows] of Object.entries(docsToResave)) {\n if (collectionSlug) {\n const collectionConfig = payload.collections[collectionSlug].config\n\n if (collectionConfig) {\n if (isVersions) {\n const doc = await payload.findVersionByID({\n id,\n collection: collectionSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" version with ID ${id} will be migrated`,\n )\n }\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(\n `\"${collectionConfig.slug}\" version with ID ${doc.id} FAILED TO MIGRATE`,\n )\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `\"${collectionConfig.slug}\" version with ID ${doc.id} migrated successfully!`,\n )\n }\n } else {\n const doc = await payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} will be migrated`,\n )\n }\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} has FAILED TO MIGRATE`,\n )\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} has migrated successfully!`,\n )\n }\n }\n }\n }\n\n if (globalSlug) {\n const globalConfig = payload.config.globals?.find((global) => global.slug === globalSlug)\n\n if (globalConfig) {\n if (isVersions) {\n const { docs } = await payload.findGlobalVersions({\n slug: globalSlug,\n depth: 0,\n fallbackLocale: null,\n limit: 0,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n if (debug) {\n payload.logger.info(`${docs.length} global \"${globalSlug}\" versions will be migrated`)\n }\n\n for (const doc of docs) {\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(`\"${globalSlug}\" version with ID ${doc.id} FAILED TO MIGRATE`)\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `\"${globalSlug}\" version with ID ${doc.id} migrated successfully!`,\n )\n }\n }\n } else {\n const doc = await payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(`The global \"${globalSlug}\" has FAILED TO MIGRATE`)\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(`The global \"${globalSlug}\" has migrated successfully!`)\n }\n }\n }\n }\n }\n}\n"],"names":["upsertRow","traverseFields","fetchAndResave","adapter","collectionSlug","db","debug","docsToResave","fields","globalSlug","isVersions","payload","req","tableName","id","rows","Object","entries","collectionConfig","collections","config","doc","findVersionByID","collection","depth","fallbackLocale","locale","showHiddenFields","logger","info","slug","path","data","ignoreResult","operation","err","error","findByID","globalConfig","globals","find","global","docs","findGlobalVersions","limit","length","findGlobal"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import type { Field } from 'payload/types';
|
2
|
+
type Args = {
|
3
|
+
doc: Record<string, unknown>;
|
4
|
+
fields: Field[];
|
5
|
+
locale?: string;
|
6
|
+
path: string;
|
7
|
+
rows: Record<string, unknown>[];
|
8
|
+
};
|
9
|
+
export declare const traverseFields: ({ doc, fields, locale, path, rows }: Args) => void;
|
10
|
+
export {};
|
11
|
+
//# sourceMappingURL=traverseFields.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAI1C,KAAK,IAAI,GAAG;IACV,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,cAAc,wCAAyC,IAAI,SA0MvE,CAAA"}
|
@@ -0,0 +1,191 @@
|
|
1
|
+
import { tabHasName } from 'payload/types';
|
2
|
+
export const traverseFields = ({ doc, fields, locale, path, rows })=>{
|
3
|
+
fields.forEach((field)=>{
|
4
|
+
switch(field.type){
|
5
|
+
case 'group':
|
6
|
+
{
|
7
|
+
const newPath = `${path ? `${path}.` : ''}${field.name}`;
|
8
|
+
const newDoc = doc?.[field.name];
|
9
|
+
if (typeof newDoc === 'object' && newDoc !== null) {
|
10
|
+
if (field.localized) {
|
11
|
+
Object.entries(newDoc).forEach(([locale, localeDoc])=>{
|
12
|
+
return traverseFields({
|
13
|
+
doc: localeDoc,
|
14
|
+
fields: field.fields,
|
15
|
+
locale,
|
16
|
+
path: newPath,
|
17
|
+
rows
|
18
|
+
});
|
19
|
+
});
|
20
|
+
} else {
|
21
|
+
return traverseFields({
|
22
|
+
doc: newDoc,
|
23
|
+
fields: field.fields,
|
24
|
+
path: newPath,
|
25
|
+
rows
|
26
|
+
});
|
27
|
+
}
|
28
|
+
}
|
29
|
+
break;
|
30
|
+
}
|
31
|
+
case 'row':
|
32
|
+
case 'collapsible':
|
33
|
+
{
|
34
|
+
return traverseFields({
|
35
|
+
doc,
|
36
|
+
fields: field.fields,
|
37
|
+
path,
|
38
|
+
rows
|
39
|
+
});
|
40
|
+
}
|
41
|
+
case 'array':
|
42
|
+
{
|
43
|
+
const rowData = doc?.[field.name];
|
44
|
+
if (field.localized && typeof rowData === 'object' && rowData !== null) {
|
45
|
+
Object.entries(rowData).forEach(([locale, localeRows])=>{
|
46
|
+
if (Array.isArray(localeRows)) {
|
47
|
+
localeRows.forEach((row, i)=>{
|
48
|
+
return traverseFields({
|
49
|
+
doc: row,
|
50
|
+
fields: field.fields,
|
51
|
+
locale,
|
52
|
+
path: `${path ? `${path}.` : ''}${field.name}.${i}`,
|
53
|
+
rows
|
54
|
+
});
|
55
|
+
});
|
56
|
+
}
|
57
|
+
});
|
58
|
+
}
|
59
|
+
if (Array.isArray(rowData)) {
|
60
|
+
rowData.forEach((row, i)=>{
|
61
|
+
return traverseFields({
|
62
|
+
doc: row,
|
63
|
+
fields: field.fields,
|
64
|
+
path: `${path ? `${path}.` : ''}${field.name}.${i}`,
|
65
|
+
rows
|
66
|
+
});
|
67
|
+
});
|
68
|
+
}
|
69
|
+
break;
|
70
|
+
}
|
71
|
+
case 'blocks':
|
72
|
+
{
|
73
|
+
const rowData = doc?.[field.name];
|
74
|
+
if (field.localized && typeof rowData === 'object' && rowData !== null) {
|
75
|
+
Object.entries(rowData).forEach(([locale, localeRows])=>{
|
76
|
+
if (Array.isArray(localeRows)) {
|
77
|
+
localeRows.forEach((row, i)=>{
|
78
|
+
const matchedBlock = field.blocks.find((block)=>block.slug === row.blockType);
|
79
|
+
if (matchedBlock) {
|
80
|
+
return traverseFields({
|
81
|
+
doc: row,
|
82
|
+
fields: matchedBlock.fields,
|
83
|
+
locale,
|
84
|
+
path: `${path ? `${path}.` : ''}${field.name}.${i}`,
|
85
|
+
rows
|
86
|
+
});
|
87
|
+
}
|
88
|
+
});
|
89
|
+
}
|
90
|
+
});
|
91
|
+
}
|
92
|
+
if (Array.isArray(rowData)) {
|
93
|
+
rowData.forEach((row, i)=>{
|
94
|
+
const matchedBlock = field.blocks.find((block)=>block.slug === row.blockType);
|
95
|
+
if (matchedBlock) {
|
96
|
+
return traverseFields({
|
97
|
+
doc: row,
|
98
|
+
fields: matchedBlock.fields,
|
99
|
+
path: `${path ? `${path}.` : ''}${field.name}.${i}`,
|
100
|
+
rows
|
101
|
+
});
|
102
|
+
}
|
103
|
+
});
|
104
|
+
}
|
105
|
+
break;
|
106
|
+
}
|
107
|
+
case 'tabs':
|
108
|
+
{
|
109
|
+
return field.tabs.forEach((tab)=>{
|
110
|
+
if (tabHasName(tab)) {
|
111
|
+
const newDoc = doc?.[tab.name];
|
112
|
+
const newPath = `${path ? `${path}.` : ''}${tab.name}`;
|
113
|
+
if (typeof newDoc === 'object' && newDoc !== null) {
|
114
|
+
if (tab.localized) {
|
115
|
+
Object.entries(newDoc).forEach(([locale, localeDoc])=>{
|
116
|
+
return traverseFields({
|
117
|
+
doc: localeDoc,
|
118
|
+
fields: tab.fields,
|
119
|
+
locale,
|
120
|
+
path: newPath,
|
121
|
+
rows
|
122
|
+
});
|
123
|
+
});
|
124
|
+
} else {
|
125
|
+
return traverseFields({
|
126
|
+
doc: newDoc,
|
127
|
+
fields: tab.fields,
|
128
|
+
path: newPath,
|
129
|
+
rows
|
130
|
+
});
|
131
|
+
}
|
132
|
+
}
|
133
|
+
} else {
|
134
|
+
traverseFields({
|
135
|
+
doc,
|
136
|
+
fields: tab.fields,
|
137
|
+
path,
|
138
|
+
rows
|
139
|
+
});
|
140
|
+
}
|
141
|
+
});
|
142
|
+
}
|
143
|
+
case 'relationship':
|
144
|
+
case 'upload':
|
145
|
+
{
|
146
|
+
if (typeof field.relationTo === 'string') {
|
147
|
+
if (field.type === 'upload' || !field.hasMany) {
|
148
|
+
const relationshipPath = `${path ? `${path}.` : ''}${field.name}`;
|
149
|
+
if (field.localized) {
|
150
|
+
const matchedRelationshipsWithLocales = rows.filter((row)=>row.path === relationshipPath);
|
151
|
+
if (matchedRelationshipsWithLocales.length && !doc[field.name]) {
|
152
|
+
doc[field.name] = {};
|
153
|
+
}
|
154
|
+
const newDoc = doc[field.name];
|
155
|
+
matchedRelationshipsWithLocales.forEach((localeRow)=>{
|
156
|
+
if (typeof localeRow.locale === 'string') {
|
157
|
+
const [, id] = Object.entries(localeRow).find(([key, val])=>val !== null && ![
|
158
|
+
'id',
|
159
|
+
'locale',
|
160
|
+
'order',
|
161
|
+
'parent_id',
|
162
|
+
'path'
|
163
|
+
].includes(key));
|
164
|
+
newDoc[localeRow.locale] = id;
|
165
|
+
}
|
166
|
+
});
|
167
|
+
} else {
|
168
|
+
const matchedRelationship = rows.find((row)=>{
|
169
|
+
const matchesPath = row.path === relationshipPath;
|
170
|
+
if (locale) return matchesPath && locale === row.locale;
|
171
|
+
return row.path === relationshipPath;
|
172
|
+
});
|
173
|
+
if (matchedRelationship) {
|
174
|
+
const [, id] = Object.entries(matchedRelationship).find(([key, val])=>val !== null && ![
|
175
|
+
'id',
|
176
|
+
'locale',
|
177
|
+
'order',
|
178
|
+
'parent_id',
|
179
|
+
'path'
|
180
|
+
].includes(key));
|
181
|
+
doc[field.name] = id;
|
182
|
+
}
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
186
|
+
}
|
187
|
+
}
|
188
|
+
});
|
189
|
+
};
|
190
|
+
|
191
|
+
//# sourceMappingURL=traverseFields.js.map
|