@payloadcms/drizzle 3.41.0-canary.2 → 3.41.0-canary.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +12 -1
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/transform/read/traverseFields.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.js +11 -3
- package/dist/transform/read/traverseFields.js.map +1 -1
- package/dist/transform/write/array.d.ts +4 -2
- package/dist/transform/write/array.d.ts.map +1 -1
- package/dist/transform/write/array.js +3 -1
- package/dist/transform/write/array.js.map +1 -1
- package/dist/transform/write/blocks.d.ts +4 -2
- package/dist/transform/write/blocks.d.ts.map +1 -1
- package/dist/transform/write/blocks.js +3 -1
- package/dist/transform/write/blocks.js.map +1 -1
- package/dist/transform/write/index.d.ts.map +1 -1
- package/dist/transform/write/index.js +6 -2
- package/dist/transform/write/index.js.map +1 -1
- package/dist/transform/write/traverseFields.d.ts +4 -2
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +41 -1
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/transform/write/types.d.ts +10 -0
- package/dist/transform/write/types.d.ts.map +1 -1
- package/dist/transform/write/types.js.map +1 -1
- package/dist/upsertRow/index.js +8 -2
- package/dist/upsertRow/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -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 {
|
|
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,
|
|
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;
|
|
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,
|
|
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;
|
|
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":"
|
|
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"}
|
package/dist/upsertRow/index.js
CHANGED
|
@@ -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:
|
|
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:
|
|
207
|
+
rows: [
|
|
208
|
+
...numbersToInsert,
|
|
209
|
+
...rowToInsert.numbersToDelete
|
|
210
|
+
],
|
|
205
211
|
tableName: numbersTableName
|
|
206
212
|
});
|
|
207
213
|
}
|