@payloadcms/drizzle 3.41.0-internal.c079756 → 3.41.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/blocks.ts"],"sourcesContent":["import type { FlattenedBlock, FlattenedBlocksField } from 'payload'\n\nimport { fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { resolveBlockTableName } from '../../utilities/validateExistingBlockIsIdentical.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n data: Record<string, unknown>[]\n field: FlattenedBlocksField\n locale?: string\n numbers: Record<string, unknown>[]\n parentIsLocalized: boolean\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\nexport const transformBlocks = ({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data,\n field,\n locale,\n numbers,\n parentIsLocalized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n data.forEach((blockRow, i) => {\n if (typeof blockRow.blockType !== 'string') {\n return\n }\n\n const matchedBlock =\n adapter.payload.blocks[blockRow.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockRow.blockType,\n ) as FlattenedBlock | undefined)\n\n if (!matchedBlock) {\n return\n }\n const blockType = toSnakeCase(blockRow.blockType)\n\n const newRow: BlockRowToInsert = {\n arrays: {},\n locales: {},\n row: {\n _order: i + 1,\n _path: `${path}${field.name}`,\n },\n }\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && locale) {\n newRow.row._locale = locale\n }\n if (withinArrayOrBlockLocale) {\n newRow.row._locale = withinArrayOrBlockLocale\n }\n\n const blockTableName = resolveBlockTableName(\n matchedBlock,\n adapter.tableNameMap.get(`${baseTableName}_blocks_${blockType}`),\n )\n\n if (!blocks[blockTableName]) {\n blocks[blockTableName] = []\n }\n\n const hasUUID = adapter.tables[blockTableName]._uuid\n\n // If we have declared a _uuid field on arrays,\n // that means the ID has to be unique,\n // and our ids within arrays are not unique.\n // So move the ID to a uuid field for storage\n // and allow the database to generate a serial id automatically\n if (hasUUID) {\n newRow.row._uuid = blockRow.id\n delete blockRow.id\n }\n\n traverseFields({\n adapter,\n arrays: newRow.arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: '',\n data: blockRow,\n fieldPrefix: '',\n fields: matchedBlock.flattenedFields,\n insideArrayOrBlock: true,\n locales: newRow.locales,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName: blockTableName,\n path: `${path || ''}${field.name}.${i}.`,\n relationships,\n relationshipsToDelete,\n row: newRow.row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n blocks[blockTableName].push(newRow)\n })\n}\n"],"names":["fieldShouldBeLocalized","toSnakeCase","resolveBlockTableName","traverseFields","transformBlocks","adapter","baseTableName","blocks","blocksToDelete","data","field","locale","numbers","parentIsLocalized","path","relationships","relationshipsToDelete","selects","texts","withinArrayOrBlockLocale","forEach","blockRow","i","blockType","matchedBlock","payload","blockReferences","find","block","slug","newRow","arrays","locales","row","_order","_path","name","_locale","blockTableName","tableNameMap","get","hasUUID","tables","_uuid","id","columnPrefix","fieldPrefix","fields","flattenedFields","insideArrayOrBlock","localized","parentTableName","push"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ,iBAAgB;AACvD,OAAOC,iBAAiB,gBAAe;AAKvC,SAASC,qBAAqB,QAAQ,sDAAqD;AAC3F,SAASC,cAAc,QAAQ,sBAAqB;AA2BpD,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,OAAO,EACPC,aAAa,EACbC,MAAM,EACNC,cAAc,EACdC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,iBAAiB,EACjBC,IAAI,EACJC,aAAa,EACbC,qBAAqB,EACrBC,OAAO,EACPC,KAAK,EACLC,wBAAwB,EACnB;IACLV,KAAKW,OAAO,CAAC,CAACC,UAAUC;QACtB,IAAI,OAAOD,SAASE,SAAS,KAAK,UAAU;YAC1C;QACF;QAEA,MAAMC,eACJnB,QAAQoB,OAAO,CAAClB,MAAM,CAACc,SAASE,SAAS,CAAC,IACzC,AAACb,CAAAA,MAAMgB,eAAe,IAAIhB,MAAMH,MAAM,AAAD,EAAGoB,IAAI,CAC3C,CAACC,QAAU,OAAOA,UAAU,YAAYA,MAAMC,IAAI,KAAKR,SAASE,SAAS;QAG7E,IAAI,CAACC,cAAc;YACjB;QACF;QACA,MAAMD,YAAYtB,YAAYoB,SAASE,SAAS;QAEhD,MAAMO,SAA2B;YAC/BC,QAAQ,CAAC;YACTC,SAAS,CAAC;YACVC,KAAK;gBACHC,QAAQZ,IAAI;gBACZa,OAAO,GAAGrB,OAAOJ,MAAM0B,IAAI,EAAE;YAC/B;QACF;QAEA,IAAIpC,uBAAuB;YAAEU;YAAOG;QAAkB,MAAMF,QAAQ;YAClEmB,OAAOG,GAAG,CAACI,OAAO,GAAG1B;QACvB;QACA,IAAIQ,0BAA0B;YAC5BW,OAAOG,GAAG,CAACI,OAAO,GAAGlB;QACvB;QAEA,MAAMmB,iBAAiBpC,sBACrBsB,cACAnB,QAAQkC,YAAY,CAACC,GAAG,CAAC,GAAGlC,cAAc,QAAQ,EAAEiB,WAAW;QAGjE,IAAI,CAAChB,MAAM,CAAC+B,eAAe,EAAE;YAC3B/B,MAAM,CAAC+B,eAAe,GAAG,EAAE;QAC7B;QAEA,MAAMG,UAAUpC,QAAQqC,MAAM,CAACJ,eAAe,CAACK,KAAK;QAEpD,+CAA+C;QAC/C,sCAAsC;QACtC,4CAA4C;QAC5C,6CAA6C;QAC7C,+DAA+D;QAC/D,IAAIF,SAAS;YACXX,OAAOG,GAAG,CAACU,KAAK,GAAGtB,SAASuB,EAAE;YAC9B,OAAOvB,SAASuB,EAAE;QACpB;QAEAzC,eAAe;YACbE;YACA0B,QAAQD,OAAOC,MAAM;YACrBzB;YACAC;YACAC;YACAqC,cAAc;YACdpC,MAAMY;YACNyB,aAAa;YACbC,QAAQvB,aAAawB,eAAe;YACpCC,oBAAoB;YACpBjB,SAASF,OAAOE,OAAO;YACvBpB;YACAC,mBAAmBA,qBAAqBH,MAAMwC,SAAS;YACvDC,iBAAiBb;YACjBxB,MAAM,GAAGA,QAAQ,KAAKJ,MAAM0B,IAAI,CAAC,CAAC,EAAEd,EAAE,CAAC,CAAC;YACxCP;YACAC;YACAiB,KAAKH,OAAOG,GAAG;YACfhB;YACAC;YACAC;QACF;QAEAZ,MAAM,CAAC+B,eAAe,CAACc,IAAI,CAACtB;IAC9B;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/write/blocks.ts"],"sourcesContent":["import type { FlattenedBlock, FlattenedBlocksField } from 'payload'\n\nimport { fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type {\n BlockRowToInsert,\n NumberToDelete,\n RelationshipToDelete,\n TextToDelete,\n} from './types.js'\n\nimport { resolveBlockTableName } from '../../utilities/validateExistingBlockIsIdentical.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n data: Record<string, unknown>[]\n field: FlattenedBlocksField\n locale?: string\n numbers: Record<string, unknown>[]\n numbersToDelete: NumberToDelete[]\n parentIsLocalized: boolean\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n textsToDelete: TextToDelete[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\nexport const transformBlocks = ({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data,\n field,\n locale,\n numbers,\n numbersToDelete,\n parentIsLocalized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale,\n}: Args) => {\n data.forEach((blockRow, i) => {\n if (typeof blockRow.blockType !== 'string') {\n return\n }\n\n const matchedBlock =\n adapter.payload.blocks[blockRow.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockRow.blockType,\n ) as FlattenedBlock | undefined)\n\n if (!matchedBlock) {\n return\n }\n const blockType = toSnakeCase(blockRow.blockType)\n\n const newRow: BlockRowToInsert = {\n arrays: {},\n locales: {},\n row: {\n _order: i + 1,\n _path: `${path}${field.name}`,\n },\n }\n\n if (fieldShouldBeLocalized({ field, parentIsLocalized }) && locale) {\n newRow.row._locale = locale\n }\n if (withinArrayOrBlockLocale) {\n newRow.row._locale = withinArrayOrBlockLocale\n }\n\n const blockTableName = resolveBlockTableName(\n matchedBlock,\n adapter.tableNameMap.get(`${baseTableName}_blocks_${blockType}`),\n )\n\n if (!blocks[blockTableName]) {\n blocks[blockTableName] = []\n }\n\n const hasUUID = adapter.tables[blockTableName]._uuid\n\n // If we have declared a _uuid field on arrays,\n // that means the ID has to be unique,\n // and our ids within arrays are not unique.\n // So move the ID to a uuid field for storage\n // and allow the database to generate a serial id automatically\n if (hasUUID) {\n newRow.row._uuid = blockRow.id\n delete blockRow.id\n }\n\n traverseFields({\n adapter,\n arrays: newRow.arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: '',\n data: blockRow,\n fieldPrefix: '',\n fields: matchedBlock.flattenedFields,\n insideArrayOrBlock: true,\n locales: newRow.locales,\n numbers,\n numbersToDelete,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName: blockTableName,\n path: `${path || ''}${field.name}.${i}.`,\n relationships,\n relationshipsToDelete,\n row: newRow.row,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale,\n })\n\n blocks[blockTableName].push(newRow)\n })\n}\n"],"names":["fieldShouldBeLocalized","toSnakeCase","resolveBlockTableName","traverseFields","transformBlocks","adapter","baseTableName","blocks","blocksToDelete","data","field","locale","numbers","numbersToDelete","parentIsLocalized","path","relationships","relationshipsToDelete","selects","texts","textsToDelete","withinArrayOrBlockLocale","forEach","blockRow","i","blockType","matchedBlock","payload","blockReferences","find","block","slug","newRow","arrays","locales","row","_order","_path","name","_locale","blockTableName","tableNameMap","get","hasUUID","tables","_uuid","id","columnPrefix","fieldPrefix","fields","flattenedFields","insideArrayOrBlock","localized","parentTableName","push"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ,iBAAgB;AACvD,OAAOC,iBAAiB,gBAAe;AAUvC,SAASC,qBAAqB,QAAQ,sDAAqD;AAC3F,SAASC,cAAc,QAAQ,sBAAqB;AA6BpD,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,OAAO,EACPC,aAAa,EACbC,MAAM,EACNC,cAAc,EACdC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,eAAe,EACfC,iBAAiB,EACjBC,IAAI,EACJC,aAAa,EACbC,qBAAqB,EACrBC,OAAO,EACPC,KAAK,EACLC,aAAa,EACbC,wBAAwB,EACnB;IACLZ,KAAKa,OAAO,CAAC,CAACC,UAAUC;QACtB,IAAI,OAAOD,SAASE,SAAS,KAAK,UAAU;YAC1C;QACF;QAEA,MAAMC,eACJrB,QAAQsB,OAAO,CAACpB,MAAM,CAACgB,SAASE,SAAS,CAAC,IACzC,AAACf,CAAAA,MAAMkB,eAAe,IAAIlB,MAAMH,MAAM,AAAD,EAAGsB,IAAI,CAC3C,CAACC,QAAU,OAAOA,UAAU,YAAYA,MAAMC,IAAI,KAAKR,SAASE,SAAS;QAG7E,IAAI,CAACC,cAAc;YACjB;QACF;QACA,MAAMD,YAAYxB,YAAYsB,SAASE,SAAS;QAEhD,MAAMO,SAA2B;YAC/BC,QAAQ,CAAC;YACTC,SAAS,CAAC;YACVC,KAAK;gBACHC,QAAQZ,IAAI;gBACZa,OAAO,GAAGtB,OAAOL,MAAM4B,IAAI,EAAE;YAC/B;QACF;QAEA,IAAItC,uBAAuB;YAAEU;YAAOI;QAAkB,MAAMH,QAAQ;YAClEqB,OAAOG,GAAG,CAACI,OAAO,GAAG5B;QACvB;QACA,IAAIU,0BAA0B;YAC5BW,OAAOG,GAAG,CAACI,OAAO,GAAGlB;QACvB;QAEA,MAAMmB,iBAAiBtC,sBACrBwB,cACArB,QAAQoC,YAAY,CAACC,GAAG,CAAC,GAAGpC,cAAc,QAAQ,EAAEmB,WAAW;QAGjE,IAAI,CAAClB,MAAM,CAACiC,eAAe,EAAE;YAC3BjC,MAAM,CAACiC,eAAe,GAAG,EAAE;QAC7B;QAEA,MAAMG,UAAUtC,QAAQuC,MAAM,CAACJ,eAAe,CAACK,KAAK;QAEpD,+CAA+C;QAC/C,sCAAsC;QACtC,4CAA4C;QAC5C,6CAA6C;QAC7C,+DAA+D;QAC/D,IAAIF,SAAS;YACXX,OAAOG,GAAG,CAACU,KAAK,GAAGtB,SAASuB,EAAE;YAC9B,OAAOvB,SAASuB,EAAE;QACpB;QAEA3C,eAAe;YACbE;YACA4B,QAAQD,OAAOC,MAAM;YACrB3B;YACAC;YACAC;YACAuC,cAAc;YACdtC,MAAMc;YACNyB,aAAa;YACbC,QAAQvB,aAAawB,eAAe;YACpCC,oBAAoB;YACpBjB,SAASF,OAAOE,OAAO;YACvBtB;YACAC;YACAC,mBAAmBA,qBAAqBJ,MAAM0C,SAAS;YACvDC,iBAAiBb;YACjBzB,MAAM,GAAGA,QAAQ,KAAKL,MAAM4B,IAAI,CAAC,CAAC,EAAEd,EAAE,CAAC,CAAC;YACxCR;YACAC;YACAkB,KAAKH,OAAOG,GAAG;YACfjB;YACAC;YACAC;YACAC;QACF;QAEAd,MAAM,CAACiC,eAAe,CAACc,IAAI,CAACtB;IAC9B;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/write/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI7C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,mEAO3B,IAAI,KAAG,WAwCT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/write/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI7C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,iBAAiB,mEAO3B,IAAI,KAAG,WA4CT,CAAA"}
@@ -7,11 +7,13 @@ export const transformForWrite = ({ adapter, data, fields, parentIsLocalized, pa
7
7
  blocksToDelete: new Set(),
8
8
  locales: {},
9
9
  numbers: [],
10
+ numbersToDelete: [],
10
11
  relationships: [],
11
12
  relationshipsToDelete: [],
12
13
  row: {},
13
14
  selects: {},
14
- texts: []
15
+ texts: [],
16
+ textsToDelete: []
15
17
  };
16
18
  // This function is responsible for building up the
17
19
  // above rowToInsert
@@ -27,6 +29,7 @@ export const transformForWrite = ({ adapter, data, fields, parentIsLocalized, pa
27
29
  fields,
28
30
  locales: rowToInsert.locales,
29
31
  numbers: rowToInsert.numbers,
32
+ numbersToDelete: rowToInsert.numbersToDelete,
30
33
  parentIsLocalized,
31
34
  parentTableName: tableName,
32
35
  path,
@@ -34,7 +37,8 @@ export const transformForWrite = ({ adapter, data, fields, parentIsLocalized, pa
34
37
  relationshipsToDelete: rowToInsert.relationshipsToDelete,
35
38
  row: rowToInsert.row,
36
39
  selects: rowToInsert.selects,
37
- texts: rowToInsert.texts
40
+ texts: rowToInsert.texts,
41
+ textsToDelete: rowToInsert.textsToDelete
38
42
  });
39
43
  return rowToInsert;
40
44
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/index.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { RowToInsert } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n data: Record<string, unknown>\n fields: FlattenedField[]\n parentIsLocalized?: boolean\n path?: string\n tableName: string\n}\n\nexport const transformForWrite = ({\n adapter,\n data,\n fields,\n parentIsLocalized,\n path = '',\n tableName,\n}: Args): RowToInsert => {\n // Split out the incoming data into rows to insert / delete\n const rowToInsert: RowToInsert = {\n arrays: {},\n blocks: {},\n blocksToDelete: new Set(),\n locales: {},\n numbers: [],\n relationships: [],\n relationshipsToDelete: [],\n row: {},\n selects: {},\n texts: [],\n }\n\n // This function is responsible for building up the\n // above rowToInsert\n traverseFields({\n adapter,\n arrays: rowToInsert.arrays,\n baseTableName: tableName,\n blocks: rowToInsert.blocks,\n blocksToDelete: rowToInsert.blocksToDelete,\n columnPrefix: '',\n data,\n fieldPrefix: '',\n fields,\n locales: rowToInsert.locales,\n numbers: rowToInsert.numbers,\n parentIsLocalized,\n parentTableName: tableName,\n path,\n relationships: rowToInsert.relationships,\n relationshipsToDelete: rowToInsert.relationshipsToDelete,\n row: rowToInsert.row,\n selects: rowToInsert.selects,\n texts: rowToInsert.texts,\n })\n\n return rowToInsert\n}\n"],"names":["traverseFields","transformForWrite","adapter","data","fields","parentIsLocalized","path","tableName","rowToInsert","arrays","blocks","blocksToDelete","Set","locales","numbers","relationships","relationshipsToDelete","row","selects","texts","baseTableName","columnPrefix","fieldPrefix","parentTableName"],"mappings":"AAKA,SAASA,cAAc,QAAQ,sBAAqB;AAWpD,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,OAAO,EACPC,IAAI,EACJC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EAAE,EACTC,SAAS,EACJ;IACL,2DAA2D;IAC3D,MAAMC,cAA2B;QAC/BC,QAAQ,CAAC;QACTC,QAAQ,CAAC;QACTC,gBAAgB,IAAIC;QACpBC,SAAS,CAAC;QACVC,SAAS,EAAE;QACXC,eAAe,EAAE;QACjBC,uBAAuB,EAAE;QACzBC,KAAK,CAAC;QACNC,SAAS,CAAC;QACVC,OAAO,EAAE;IACX;IAEA,mDAAmD;IACnD,oBAAoB;IACpBnB,eAAe;QACbE;QACAO,QAAQD,YAAYC,MAAM;QAC1BW,eAAeb;QACfG,QAAQF,YAAYE,MAAM;QAC1BC,gBAAgBH,YAAYG,cAAc;QAC1CU,cAAc;QACdlB;QACAmB,aAAa;QACblB;QACAS,SAASL,YAAYK,OAAO;QAC5BC,SAASN,YAAYM,OAAO;QAC5BT;QACAkB,iBAAiBhB;QACjBD;QACAS,eAAeP,YAAYO,aAAa;QACxCC,uBAAuBR,YAAYQ,qBAAqB;QACxDC,KAAKT,YAAYS,GAAG;QACpBC,SAASV,YAAYU,OAAO;QAC5BC,OAAOX,YAAYW,KAAK;IAC1B;IAEA,OAAOX;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/write/index.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { RowToInsert } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n data: Record<string, unknown>\n fields: FlattenedField[]\n parentIsLocalized?: boolean\n path?: string\n tableName: string\n}\n\nexport const transformForWrite = ({\n adapter,\n data,\n fields,\n parentIsLocalized,\n path = '',\n tableName,\n}: Args): RowToInsert => {\n // Split out the incoming data into rows to insert / delete\n const rowToInsert: RowToInsert = {\n arrays: {},\n blocks: {},\n blocksToDelete: new Set(),\n locales: {},\n numbers: [],\n numbersToDelete: [],\n relationships: [],\n relationshipsToDelete: [],\n row: {},\n selects: {},\n texts: [],\n textsToDelete: [],\n }\n\n // This function is responsible for building up the\n // above rowToInsert\n traverseFields({\n adapter,\n arrays: rowToInsert.arrays,\n baseTableName: tableName,\n blocks: rowToInsert.blocks,\n blocksToDelete: rowToInsert.blocksToDelete,\n columnPrefix: '',\n data,\n fieldPrefix: '',\n fields,\n locales: rowToInsert.locales,\n numbers: rowToInsert.numbers,\n numbersToDelete: rowToInsert.numbersToDelete,\n parentIsLocalized,\n parentTableName: tableName,\n path,\n relationships: rowToInsert.relationships,\n relationshipsToDelete: rowToInsert.relationshipsToDelete,\n row: rowToInsert.row,\n selects: rowToInsert.selects,\n texts: rowToInsert.texts,\n textsToDelete: rowToInsert.textsToDelete,\n })\n\n return rowToInsert\n}\n"],"names":["traverseFields","transformForWrite","adapter","data","fields","parentIsLocalized","path","tableName","rowToInsert","arrays","blocks","blocksToDelete","Set","locales","numbers","numbersToDelete","relationships","relationshipsToDelete","row","selects","texts","textsToDelete","baseTableName","columnPrefix","fieldPrefix","parentTableName"],"mappings":"AAKA,SAASA,cAAc,QAAQ,sBAAqB;AAWpD,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,OAAO,EACPC,IAAI,EACJC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EAAE,EACTC,SAAS,EACJ;IACL,2DAA2D;IAC3D,MAAMC,cAA2B;QAC/BC,QAAQ,CAAC;QACTC,QAAQ,CAAC;QACTC,gBAAgB,IAAIC;QACpBC,SAAS,CAAC;QACVC,SAAS,EAAE;QACXC,iBAAiB,EAAE;QACnBC,eAAe,EAAE;QACjBC,uBAAuB,EAAE;QACzBC,KAAK,CAAC;QACNC,SAAS,CAAC;QACVC,OAAO,EAAE;QACTC,eAAe,EAAE;IACnB;IAEA,mDAAmD;IACnD,oBAAoB;IACpBrB,eAAe;QACbE;QACAO,QAAQD,YAAYC,MAAM;QAC1Ba,eAAef;QACfG,QAAQF,YAAYE,MAAM;QAC1BC,gBAAgBH,YAAYG,cAAc;QAC1CY,cAAc;QACdpB;QACAqB,aAAa;QACbpB;QACAS,SAASL,YAAYK,OAAO;QAC5BC,SAASN,YAAYM,OAAO;QAC5BC,iBAAiBP,YAAYO,eAAe;QAC5CV;QACAoB,iBAAiBlB;QACjBD;QACAU,eAAeR,YAAYQ,aAAa;QACxCC,uBAAuBT,YAAYS,qBAAqB;QACxDC,KAAKV,YAAYU,GAAG;QACpBC,SAASX,YAAYW,OAAO;QAC5BC,OAAOZ,YAAYY,KAAK;QACxBC,eAAeb,YAAYa,aAAa;IAC1C;IAEA,OAAOb;AACT,EAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { FlattenedField } from 'payload';
2
2
  import type { DrizzleAdapter } from '../../types.js';
3
- import type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js';
3
+ import type { ArrayRowToInsert, BlockRowToInsert, NumberToDelete, RelationshipToDelete, TextToDelete } from './types.js';
4
4
  type Args = {
5
5
  adapter: DrizzleAdapter;
6
6
  arrays: {
@@ -36,6 +36,7 @@ type Args = {
36
36
  [locale: string]: Record<string, unknown>;
37
37
  };
38
38
  numbers: Record<string, unknown>[];
39
+ numbersToDelete: NumberToDelete[];
39
40
  parentIsLocalized: boolean;
40
41
  /**
41
42
  * This is the name of the parent table
@@ -49,12 +50,13 @@ type Args = {
49
50
  [tableName: string]: Record<string, unknown>[];
50
51
  };
51
52
  texts: Record<string, unknown>[];
53
+ textsToDelete: TextToDelete[];
52
54
  /**
53
55
  * Set to a locale code if this set of fields is traversed within a
54
56
  * localized array or block field
55
57
  */
56
58
  withinArrayOrBlockLocale?: string;
57
59
  };
58
- export declare const traverseFields: ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, insideArrayOrBlock, locales, numbers, parentIsLocalized, parentTableName, path, relationships, relationshipsToDelete, row, selects, texts, withinArrayOrBlockLocale, }: Args) => void;
60
+ export declare const traverseFields: ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, insideArrayOrBlock, locales, numbers, numbersToDelete, parentIsLocalized, parentTableName, path, relationships, relationshipsToDelete, row, selects, texts, textsToDelete, withinArrayOrBlockLocale, }: Args) => void;
59
61
  export {};
60
62
  //# sourceMappingURL=traverseFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/write/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAW1F,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC3C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,iBAAiB,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,cAAc,6SAwBxB,IAAI,SAubN,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/write/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAA;AAWnB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC3C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,iBAAiB,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,cAAc,6UA0BxB,IAAI,SAudN,CAAA"}
@@ -9,7 +9,7 @@ import { transformNumbers } from './numbers.js';
9
9
  import { transformRelationship } from './relationships.js';
10
10
  import { transformSelects } from './selects.js';
11
11
  import { transformTexts } from './texts.js';
12
- export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, insideArrayOrBlock = false, locales, numbers, parentIsLocalized, parentTableName, path, relationships, relationshipsToDelete, row, selects, texts, withinArrayOrBlockLocale })=>{
12
+ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete, columnPrefix, data, existingLocales, fieldPrefix, fields, forcedLocale, insideArrayOrBlock = false, locales, numbers, numbersToDelete, parentIsLocalized, parentTableName, path, relationships, relationshipsToDelete, row, selects, texts, textsToDelete, withinArrayOrBlockLocale })=>{
13
13
  if (row._uuid) {
14
14
  data._uuid = row._uuid;
15
15
  }
@@ -46,12 +46,14 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
46
46
  field,
47
47
  locale: localeKey,
48
48
  numbers,
49
+ numbersToDelete,
49
50
  parentIsLocalized: parentIsLocalized || field.localized,
50
51
  path,
51
52
  relationships,
52
53
  relationshipsToDelete,
53
54
  selects,
54
55
  texts,
56
+ textsToDelete,
55
57
  withinArrayOrBlockLocale: localeKey
56
58
  });
57
59
  arrays[arrayTableName] = arrays[arrayTableName].concat(newRows);
@@ -68,12 +70,14 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
68
70
  data: data[field.name],
69
71
  field,
70
72
  numbers,
73
+ numbersToDelete,
71
74
  parentIsLocalized: parentIsLocalized || field.localized,
72
75
  path,
73
76
  relationships,
74
77
  relationshipsToDelete,
75
78
  selects,
76
79
  texts,
80
+ textsToDelete,
77
81
  withinArrayOrBlockLocale
78
82
  });
79
83
  arrays[arrayTableName] = arrays[arrayTableName].concat(newRows);
@@ -99,12 +103,14 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
99
103
  field,
100
104
  locale: localeKey,
101
105
  numbers,
106
+ numbersToDelete,
102
107
  parentIsLocalized: parentIsLocalized || field.localized,
103
108
  path,
104
109
  relationships,
105
110
  relationshipsToDelete,
106
111
  selects,
107
112
  texts,
113
+ textsToDelete,
108
114
  withinArrayOrBlockLocale: localeKey
109
115
  });
110
116
  }
@@ -119,12 +125,14 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
119
125
  data: fieldData,
120
126
  field,
121
127
  numbers,
128
+ numbersToDelete,
122
129
  parentIsLocalized: parentIsLocalized || field.localized,
123
130
  path,
124
131
  relationships,
125
132
  relationshipsToDelete,
126
133
  selects,
127
134
  texts,
135
+ textsToDelete,
128
136
  withinArrayOrBlockLocale
129
137
  });
130
138
  }
@@ -151,6 +159,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
151
159
  insideArrayOrBlock,
152
160
  locales,
153
161
  numbers,
162
+ numbersToDelete,
154
163
  parentIsLocalized: parentIsLocalized || field.localized,
155
164
  parentTableName,
156
165
  path: `${path || ''}${field.name}.`,
@@ -159,6 +168,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
159
168
  row,
160
169
  selects,
161
170
  texts,
171
+ textsToDelete,
162
172
  withinArrayOrBlockLocale: localeKey
163
173
  });
164
174
  });
@@ -180,6 +190,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
180
190
  insideArrayOrBlock,
181
191
  locales,
182
192
  numbers,
193
+ numbersToDelete,
183
194
  parentIsLocalized: parentIsLocalized || field.localized,
184
195
  parentTableName,
185
196
  path: `${path || ''}${field.name}.`,
@@ -188,6 +199,7 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
188
199
  row,
189
200
  selects,
190
201
  texts,
202
+ textsToDelete,
191
203
  withinArrayOrBlockLocale
192
204
  });
193
205
  }
@@ -259,6 +271,13 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
259
271
  if (typeof fieldData === 'object') {
260
272
  Object.entries(fieldData).forEach(([localeKey, localeData])=>{
261
273
  if (Array.isArray(localeData)) {
274
+ if (!localeData.length) {
275
+ textsToDelete.push({
276
+ locale: localeKey,
277
+ path: textPath
278
+ });
279
+ return;
280
+ }
262
281
  transformTexts({
263
282
  baseRow: {
264
283
  locale: localeKey,
@@ -271,6 +290,13 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
271
290
  });
272
291
  }
273
292
  } else if (Array.isArray(fieldData)) {
293
+ if (!fieldData.length) {
294
+ textsToDelete.push({
295
+ locale: withinArrayOrBlockLocale,
296
+ path: textPath
297
+ });
298
+ return;
299
+ }
274
300
  transformTexts({
275
301
  baseRow: {
276
302
  locale: withinArrayOrBlockLocale,
@@ -288,6 +314,13 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
288
314
  if (typeof fieldData === 'object') {
289
315
  Object.entries(fieldData).forEach(([localeKey, localeData])=>{
290
316
  if (Array.isArray(localeData)) {
317
+ if (!localeData.length) {
318
+ numbersToDelete.push({
319
+ locale: localeKey,
320
+ path: numberPath
321
+ });
322
+ return;
323
+ }
291
324
  transformNumbers({
292
325
  baseRow: {
293
326
  locale: localeKey,
@@ -300,6 +333,13 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
300
333
  });
301
334
  }
302
335
  } else if (Array.isArray(fieldData)) {
336
+ if (!fieldData.length) {
337
+ numbersToDelete.push({
338
+ locale: withinArrayOrBlockLocale,
339
+ path: numberPath
340
+ });
341
+ return;
342
+ }
303
343
  transformNumbers({
304
344
  baseRow: {
305
345
  locale: withinArrayOrBlockLocale,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { resolveBlockTableName } from '../../utilities/validateExistingBlockIsIdentical.js'\nimport { transformArray } from './array.js'\nimport { transformBlocks } from './blocks.js'\nimport { transformNumbers } from './numbers.js'\nimport { transformRelationship } from './relationships.js'\nimport { transformSelects } from './selects.js'\nimport { transformTexts } from './texts.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n /**\n * This is the name of the base table\n */\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n /**\n * A snake-case field prefix, representing prior fields\n * Ex: my_group_my_named_tab_\n */\n columnPrefix: string\n data: Record<string, unknown>\n existingLocales?: Record<string, unknown>[]\n /**\n * A prefix that will retain camel-case formatting, representing prior fields\n * Ex: myGroup_myNamedTab_\n */\n fieldPrefix: string\n fields: FlattenedField[]\n forcedLocale?: string\n /**\n * Tracks whether the current traversion context is from array or block.\n */\n insideArrayOrBlock?: boolean\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n parentIsLocalized: boolean\n /**\n * This is the name of the parent table\n */\n parentTableName: string\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\n\nexport const traverseFields = ({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields,\n forcedLocale,\n insideArrayOrBlock = false,\n locales,\n numbers,\n parentIsLocalized,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n if (row._uuid) {\n data._uuid = row._uuid\n }\n\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldIsVirtual(field)) {\n return\n }\n\n columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`\n fieldName = `${fieldPrefix || ''}${field.name}`\n fieldData = data[field.name]\n\n const isLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n\n if (!arrays[arrayTableName]) {\n arrays[arrayTableName] = []\n }\n\n if (isLocalized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n })\n }\n } else {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: data[field.name],\n field,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n\n return\n }\n\n if (field.type === 'blocks') {\n ;(field.blockReferences ?? field.blocks).forEach((block) => {\n const matchedBlock =\n typeof block === 'string'\n ? adapter.payload.config.blocks.find((each) => each.slug === block)\n : block\n\n blocksToDelete.add(\n resolveBlockTableName(\n matchedBlock,\n adapter.tableNameMap.get(`${baseTableName}_blocks_${toSnakeCase(matchedBlock.slug)}`),\n ),\n )\n })\n\n if (isLocalized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n }\n })\n }\n } else if (isArrayOfRows(fieldData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: fieldData,\n field,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n return\n }\n\n if (field.type === 'group' || field.type === 'tab') {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n if (isLocalized) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n // preserve array ID if there is\n localeData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n forcedLocale: localeKey,\n insideArrayOrBlock,\n locales,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n // preserve array ID if there is\n const groupData = data[field.name] as Record<string, unknown>\n groupData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: groupData,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n insideArrayOrBlock,\n locales,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n }\n\n return\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n const relationshipPath = `${path || ''}${field.name}`\n\n if (\n isLocalized &&\n (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany))\n ) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (localeData === null) {\n relationshipsToDelete.push({\n locale: localeKey,\n path: relationshipPath,\n })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: localeKey,\n path: relationshipPath,\n },\n data: localeData,\n field,\n relationships,\n })\n })\n }\n return\n } else if (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany)) {\n if (fieldData === null || (Array.isArray(fieldData) && fieldData.length === 0)) {\n relationshipsToDelete.push({ path: relationshipPath })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: relationshipPath,\n },\n data: fieldData,\n field,\n relationships,\n })\n return\n } else {\n if (\n !isLocalized &&\n fieldData &&\n typeof fieldData === 'object' &&\n 'id' in fieldData &&\n fieldData?.id\n ) {\n fieldData = fieldData.id\n } else if (isLocalized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (typeof localeData === 'object') {\n if (localeData && 'id' in localeData && localeData?.id) {\n fieldData[localeKey] = localeData.id\n }\n } else {\n fieldData[localeKey] = localeData\n }\n })\n }\n }\n }\n }\n\n if (field.type === 'text' && field.hasMany) {\n const textPath = `${path || ''}${field.name}`\n\n if (isLocalized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformTexts({\n baseRow: {\n locale: localeKey,\n path: textPath,\n },\n data: localeData,\n texts,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformTexts({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: textPath,\n },\n data: fieldData,\n texts,\n })\n }\n\n return\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPath = `${path || ''}${field.name}`\n\n if (isLocalized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformNumbers({\n baseRow: {\n locale: localeKey,\n path: numberPath,\n },\n data: localeData,\n numbers,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformNumbers({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: numberPath,\n },\n data: fieldData,\n numbers,\n })\n }\n\n return\n }\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n if (!selects[selectTableName]) {\n selects[selectTableName] = []\n }\n\n if (isLocalized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: localeData,\n locale: localeKey,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n })\n }\n } else if (Array.isArray(data[field.name])) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: data[field.name],\n locale: withinArrayOrBlockLocale,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n const valuesToTransform: { localeKey?: string; ref: unknown; value: unknown }[] = []\n\n if (isLocalized) {\n if (typeof fieldData === 'object' && fieldData !== null) {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (!locales[localeKey]) {\n locales[localeKey] = {}\n }\n\n valuesToTransform.push({\n localeKey,\n ref: locales,\n value: localeData,\n })\n })\n }\n } else {\n let ref = row\n\n if (forcedLocale) {\n if (!locales[forcedLocale]) {\n locales[forcedLocale] = {}\n }\n ref = locales[forcedLocale]\n }\n\n valuesToTransform.push({ ref, value: fieldData })\n }\n\n valuesToTransform.forEach(({ localeKey, ref, value }) => {\n let formattedValue = value\n\n if (typeof value !== 'undefined') {\n if (value && field.type === 'point' && adapter.name !== 'sqlite') {\n formattedValue = sql`ST_GeomFromGeoJSON(${JSON.stringify(value)})`\n }\n\n if (field.type === 'text' && value && typeof value !== 'string') {\n formattedValue = JSON.stringify(value)\n }\n\n if (field.type === 'date') {\n if (typeof value === 'number' && !Number.isNaN(value)) {\n formattedValue = new Date(value).toISOString()\n } else if (value instanceof Date) {\n formattedValue = value.toISOString()\n }\n }\n }\n\n if (field.type === 'date' && fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n\n if (typeof formattedValue !== 'undefined') {\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n })\n}\n"],"names":["sql","fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","isArrayOfRows","resolveBlockTableName","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","insideArrayOrBlock","locales","numbers","parentIsLocalized","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","withinArrayOrBlockLocale","_uuid","forEach","field","columnName","fieldName","fieldData","name","isLocalized","type","arrayTableName","tableNameMap","get","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","localized","concat","blockReferences","block","matchedBlock","payload","config","find","each","slug","add","id","flattenedFields","groupData","relationshipPath","relationTo","hasMany","push","baseRow","length","textPath","numberPath","selectTableName","undefined","valuesToTransform","ref","value","formattedValue","JSON","stringify","Number","isNaN","Date","toISOString"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type {\n ArrayRowToInsert,\n BlockRowToInsert,\n NumberToDelete,\n RelationshipToDelete,\n TextToDelete,\n} from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { resolveBlockTableName } from '../../utilities/validateExistingBlockIsIdentical.js'\nimport { transformArray } from './array.js'\nimport { transformBlocks } from './blocks.js'\nimport { transformNumbers } from './numbers.js'\nimport { transformRelationship } from './relationships.js'\nimport { transformSelects } from './selects.js'\nimport { transformTexts } from './texts.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n /**\n * This is the name of the base table\n */\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n /**\n * A snake-case field prefix, representing prior fields\n * Ex: my_group_my_named_tab_\n */\n columnPrefix: string\n data: Record<string, unknown>\n existingLocales?: Record<string, unknown>[]\n /**\n * A prefix that will retain camel-case formatting, representing prior fields\n * Ex: myGroup_myNamedTab_\n */\n fieldPrefix: string\n fields: FlattenedField[]\n forcedLocale?: string\n /**\n * Tracks whether the current traversion context is from array or block.\n */\n insideArrayOrBlock?: boolean\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n numbersToDelete: NumberToDelete[]\n parentIsLocalized: boolean\n /**\n * This is the name of the parent table\n */\n parentTableName: string\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n textsToDelete: TextToDelete[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\n\nexport const traverseFields = ({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields,\n forcedLocale,\n insideArrayOrBlock = false,\n locales,\n numbers,\n numbersToDelete,\n parentIsLocalized,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale,\n}: Args) => {\n if (row._uuid) {\n data._uuid = row._uuid\n }\n\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldIsVirtual(field)) {\n return\n }\n\n columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`\n fieldName = `${fieldPrefix || ''}${field.name}`\n fieldData = data[field.name]\n\n const isLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n\n if (!arrays[arrayTableName]) {\n arrays[arrayTableName] = []\n }\n\n if (isLocalized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n numbersToDelete,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale: localeKey,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n })\n }\n } else {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: data[field.name],\n field,\n numbers,\n numbersToDelete,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n\n return\n }\n\n if (field.type === 'blocks') {\n ;(field.blockReferences ?? field.blocks).forEach((block) => {\n const matchedBlock =\n typeof block === 'string'\n ? adapter.payload.config.blocks.find((each) => each.slug === block)\n : block\n\n blocksToDelete.add(\n resolveBlockTableName(\n matchedBlock,\n adapter.tableNameMap.get(`${baseTableName}_blocks_${toSnakeCase(matchedBlock.slug)}`),\n ),\n )\n })\n\n if (isLocalized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n numbersToDelete,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale: localeKey,\n })\n }\n })\n }\n } else if (isArrayOfRows(fieldData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: fieldData,\n field,\n numbers,\n numbersToDelete,\n parentIsLocalized: parentIsLocalized || field.localized,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale,\n })\n }\n\n return\n }\n\n if (field.type === 'group' || field.type === 'tab') {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n if (isLocalized) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n // preserve array ID if there is\n localeData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n forcedLocale: localeKey,\n insideArrayOrBlock,\n locales,\n numbers,\n numbersToDelete,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n // preserve array ID if there is\n const groupData = data[field.name] as Record<string, unknown>\n groupData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: groupData,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n insideArrayOrBlock,\n locales,\n numbers,\n numbersToDelete,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n textsToDelete,\n withinArrayOrBlockLocale,\n })\n }\n }\n\n return\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n const relationshipPath = `${path || ''}${field.name}`\n\n if (\n isLocalized &&\n (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany))\n ) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (localeData === null) {\n relationshipsToDelete.push({\n locale: localeKey,\n path: relationshipPath,\n })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: localeKey,\n path: relationshipPath,\n },\n data: localeData,\n field,\n relationships,\n })\n })\n }\n return\n } else if (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany)) {\n if (fieldData === null || (Array.isArray(fieldData) && fieldData.length === 0)) {\n relationshipsToDelete.push({ path: relationshipPath })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: relationshipPath,\n },\n data: fieldData,\n field,\n relationships,\n })\n return\n } else {\n if (\n !isLocalized &&\n fieldData &&\n typeof fieldData === 'object' &&\n 'id' in fieldData &&\n fieldData?.id\n ) {\n fieldData = fieldData.id\n } else if (isLocalized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (typeof localeData === 'object') {\n if (localeData && 'id' in localeData && localeData?.id) {\n fieldData[localeKey] = localeData.id\n }\n } else {\n fieldData[localeKey] = localeData\n }\n })\n }\n }\n }\n }\n\n if (field.type === 'text' && field.hasMany) {\n const textPath = `${path || ''}${field.name}`\n\n if (isLocalized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n if (!localeData.length) {\n textsToDelete.push({ locale: localeKey, path: textPath })\n return\n }\n\n transformTexts({\n baseRow: {\n locale: localeKey,\n path: textPath,\n },\n data: localeData,\n texts,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n if (!fieldData.length) {\n textsToDelete.push({ locale: withinArrayOrBlockLocale, path: textPath })\n return\n }\n\n transformTexts({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: textPath,\n },\n data: fieldData,\n texts,\n })\n }\n\n return\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPath = `${path || ''}${field.name}`\n\n if (isLocalized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n if (!localeData.length) {\n numbersToDelete.push({ locale: localeKey, path: numberPath })\n return\n }\n\n transformNumbers({\n baseRow: {\n locale: localeKey,\n path: numberPath,\n },\n data: localeData,\n numbers,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n if (!fieldData.length) {\n numbersToDelete.push({ locale: withinArrayOrBlockLocale, path: numberPath })\n return\n }\n\n transformNumbers({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: numberPath,\n },\n data: fieldData,\n numbers,\n })\n }\n\n return\n }\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n if (!selects[selectTableName]) {\n selects[selectTableName] = []\n }\n\n if (isLocalized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: localeData,\n locale: localeKey,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n })\n }\n } else if (Array.isArray(data[field.name])) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: data[field.name],\n locale: withinArrayOrBlockLocale,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n const valuesToTransform: { localeKey?: string; ref: unknown; value: unknown }[] = []\n\n if (isLocalized) {\n if (typeof fieldData === 'object' && fieldData !== null) {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (!locales[localeKey]) {\n locales[localeKey] = {}\n }\n\n valuesToTransform.push({\n localeKey,\n ref: locales,\n value: localeData,\n })\n })\n }\n } else {\n let ref = row\n\n if (forcedLocale) {\n if (!locales[forcedLocale]) {\n locales[forcedLocale] = {}\n }\n ref = locales[forcedLocale]\n }\n\n valuesToTransform.push({ ref, value: fieldData })\n }\n\n valuesToTransform.forEach(({ localeKey, ref, value }) => {\n let formattedValue = value\n\n if (typeof value !== 'undefined') {\n if (value && field.type === 'point' && adapter.name !== 'sqlite') {\n formattedValue = sql`ST_GeomFromGeoJSON(${JSON.stringify(value)})`\n }\n\n if (field.type === 'text' && value && typeof value !== 'string') {\n formattedValue = JSON.stringify(value)\n }\n\n if (field.type === 'date') {\n if (typeof value === 'number' && !Number.isNaN(value)) {\n formattedValue = new Date(value).toISOString()\n } else if (value instanceof Date) {\n formattedValue = value.toISOString()\n }\n }\n }\n\n if (field.type === 'date' && fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n\n if (typeof formattedValue !== 'undefined') {\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n })\n}\n"],"names":["sql","fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","isArrayOfRows","resolveBlockTableName","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","insideArrayOrBlock","locales","numbers","numbersToDelete","parentIsLocalized","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","textsToDelete","withinArrayOrBlockLocale","_uuid","forEach","field","columnName","fieldName","fieldData","name","isLocalized","type","arrayTableName","tableNameMap","get","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","localized","concat","blockReferences","block","matchedBlock","payload","config","find","each","slug","add","id","flattenedFields","groupData","relationshipPath","relationTo","hasMany","push","baseRow","length","textPath","numberPath","selectTableName","undefined","valuesToTransform","ref","value","formattedValue","JSON","stringify","Number","isNaN","Date","toISOString"],"mappings":"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"}
@@ -20,6 +20,14 @@ export type RelationshipToDelete = {
20
20
  locale?: string;
21
21
  path: string;
22
22
  };
23
+ export type TextToDelete = {
24
+ locale?: string;
25
+ path: string;
26
+ };
27
+ export type NumberToDelete = {
28
+ locale?: string;
29
+ path: string;
30
+ };
23
31
  export type RowToInsert = {
24
32
  arrays: {
25
33
  [tableName: string]: ArrayRowToInsert[];
@@ -32,6 +40,7 @@ export type RowToInsert = {
32
40
  [locale: string]: Record<string, unknown>;
33
41
  };
34
42
  numbers: Record<string, unknown>[];
43
+ numbersToDelete: NumberToDelete[];
35
44
  relationships: Record<string, unknown>[];
36
45
  relationshipsToDelete: RelationshipToDelete[];
37
46
  row: Record<string, unknown>;
@@ -39,5 +48,6 @@ export type RowToInsert = {
39
48
  [tableName: string]: Record<string, unknown>[];
40
49
  };
41
50
  texts: Record<string, unknown>[];
51
+ textsToDelete: TextToDelete[];
42
52
  };
43
53
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transform/write/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACjC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transform/write/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/types.ts"],"sourcesContent":["export type ArrayRowToInsert = {\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n locales: {\n [locale: string]: Record<string, unknown>\n }\n row: Record<string, unknown>\n}\n\nexport type BlockRowToInsert = {\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n locales: {\n [locale: string]: Record<string, unknown>\n }\n row: Record<string, unknown>\n}\n\nexport type RelationshipToDelete = {\n locale?: string\n path: string\n}\n\nexport type RowToInsert = {\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n blocks: {\n [tableName: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n}\n"],"names":[],"mappings":"AAyBA,WAmBC"}
1
+ {"version":3,"sources":["../../../src/transform/write/types.ts"],"sourcesContent":["export type ArrayRowToInsert = {\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n locales: {\n [locale: string]: Record<string, unknown>\n }\n row: Record<string, unknown>\n}\n\nexport type BlockRowToInsert = {\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n locales: {\n [locale: string]: Record<string, unknown>\n }\n row: Record<string, unknown>\n}\n\nexport type RelationshipToDelete = {\n locale?: string\n path: string\n}\n\nexport type TextToDelete = {\n locale?: string\n path: string\n}\n\nexport type NumberToDelete = {\n locale?: string\n path: string\n}\n\nexport type RowToInsert = {\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n blocks: {\n [tableName: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n numbersToDelete: NumberToDelete[]\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n textsToDelete: TextToDelete[]\n}\n"],"names":[],"mappings":"AAmCA,WAqBC"}
@@ -178,7 +178,10 @@ joinQuery: _joinQuery, operation, path = '', req, select, tableName, upsertTarge
178
178
  parentColumnName: 'parent',
179
179
  parentID: insertedRow.id,
180
180
  pathColumnName: 'path',
181
- rows: textsToInsert,
181
+ rows: [
182
+ ...textsToInsert,
183
+ ...rowToInsert.textsToDelete
184
+ ],
182
185
  tableName: textsTableName
183
186
  });
184
187
  }
@@ -201,7 +204,10 @@ joinQuery: _joinQuery, operation, path = '', req, select, tableName, upsertTarge
201
204
  parentColumnName: 'parent',
202
205
  parentID: insertedRow.id,
203
206
  pathColumnName: 'path',
204
- rows: numbersToInsert,
207
+ rows: [
208
+ ...numbersToInsert,
209
+ ...rowToInsert.numbersToDelete
210
+ ],
205
211
  tableName: numbersTableName
206
212
  });
207
213
  }