@payloadcms/drizzle 3.1.1-canary.9da0158 → 3.1.1
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/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts +2 -0
- package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -0
- package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js +16 -0
- package/dist/postgres/createJSONQuery/convertPathToJSONTraversal.js.map +1 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts +2 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.d.ts.map +1 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.js +5 -0
- package/dist/postgres/createJSONQuery/formatJSONPathSegment.js.map +1 -0
- package/dist/upsertRow/index.d.ts.map +1 -1
- package/dist/upsertRow/index.js +8 -8
- package/dist/upsertRow/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertPathToJSONTraversal.d.ts","sourceRoot":"","sources":["../../../src/postgres/createJSONQuery/convertPathToJSONTraversal.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,qBAAsB,MAAM,EAAE,WAYpE,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { formatJSONPathSegment } from './formatJSONPathSegment.js';
|
|
2
|
+
export const convertPathToJSONTraversal = (incomingSegments)=>{
|
|
3
|
+
const segments = [
|
|
4
|
+
...incomingSegments
|
|
5
|
+
];
|
|
6
|
+
segments.shift();
|
|
7
|
+
return segments.reduce((res, segment, i)=>{
|
|
8
|
+
const formattedSegment = formatJSONPathSegment(segment);
|
|
9
|
+
if (i + 1 === segments.length) {
|
|
10
|
+
return `${res}->>${formattedSegment}`;
|
|
11
|
+
}
|
|
12
|
+
return `${res}->${formattedSegment}`;
|
|
13
|
+
}, '');
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=convertPathToJSONTraversal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/postgres/createJSONQuery/convertPathToJSONTraversal.ts"],"sourcesContent":["import { formatJSONPathSegment } from './formatJSONPathSegment.js'\n\nexport const convertPathToJSONTraversal = (incomingSegments: string[]) => {\n const segments = [...incomingSegments]\n segments.shift()\n\n return segments.reduce((res, segment, i) => {\n const formattedSegment = formatJSONPathSegment(segment)\n\n if (i + 1 === segments.length) {\n return `${res}->>${formattedSegment}`\n }\n return `${res}->${formattedSegment}`\n }, '')\n}\n"],"names":["formatJSONPathSegment","convertPathToJSONTraversal","incomingSegments","segments","shift","reduce","res","segment","i","formattedSegment","length"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,6BAA4B;AAElE,OAAO,MAAMC,6BAA6B,CAACC;IACzC,MAAMC,WAAW;WAAID;KAAiB;IACtCC,SAASC,KAAK;IAEd,OAAOD,SAASE,MAAM,CAAC,CAACC,KAAKC,SAASC;QACpC,MAAMC,mBAAmBT,sBAAsBO;QAE/C,IAAIC,IAAI,MAAML,SAASO,MAAM,EAAE;YAC7B,OAAO,CAAC,EAAEJ,IAAI,GAAG,EAAEG,iBAAiB,CAAC;QACvC;QACA,OAAO,CAAC,EAAEH,IAAI,EAAE,EAAEG,iBAAiB,CAAC;IACtC,GAAG;AACL,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatJSONPathSegment.d.ts","sourceRoot":"","sources":["../../../src/postgres/createJSONQuery/formatJSONPathSegment.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,YAAa,MAAM,WAEpD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/postgres/createJSONQuery/formatJSONPathSegment.ts"],"sourcesContent":["export const formatJSONPathSegment = (segment: string) => {\n return Number.isNaN(parseInt(segment)) ? `'${segment}'` : segment\n}\n"],"names":["formatJSONPathSegment","segment","Number","isNaN","parseInt"],"mappings":"AAAA,OAAO,MAAMA,wBAAwB,CAACC;IACpC,OAAOC,OAAOC,KAAK,CAACC,SAASH,YAAY,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,GAAGA;AAC5D,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAStC,eAAO,MAAM,SAAS,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,6HAe3E,IAAI,KAAG,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAStC,eAAO,MAAM,SAAS,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,6HAe3E,IAAI,KAAG,OAAO,CAAC,CAAC,CA8ZlB,CAAA"}
|
package/dist/upsertRow/index.js
CHANGED
|
@@ -90,13 +90,11 @@ export const upsertRow = async ({ id, adapter, data, db, fields, ignoreResult, j
|
|
|
90
90
|
// store by table name and rows
|
|
91
91
|
if (Object.keys(rowToInsert.selects).length > 0) {
|
|
92
92
|
Object.entries(rowToInsert.selects).forEach(([selectTableName, selectRows])=>{
|
|
93
|
+
selectsToInsert[selectTableName] = [];
|
|
93
94
|
selectRows.forEach((row)=>{
|
|
94
95
|
if (typeof row.parent === 'undefined') {
|
|
95
96
|
row.parent = insertedRow.id;
|
|
96
97
|
}
|
|
97
|
-
if (!selectsToInsert[selectTableName]) {
|
|
98
|
-
selectsToInsert[selectTableName] = [];
|
|
99
|
-
}
|
|
100
98
|
selectsToInsert[selectTableName].push(row);
|
|
101
99
|
});
|
|
102
100
|
});
|
|
@@ -294,11 +292,13 @@ export const upsertRow = async ({ id, adapter, data, db, fields, ignoreResult, j
|
|
|
294
292
|
where: eq(selectTable.parent, insertedRow.id)
|
|
295
293
|
});
|
|
296
294
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
295
|
+
if (tableRows.length) {
|
|
296
|
+
await adapter.insert({
|
|
297
|
+
db,
|
|
298
|
+
tableName: selectTableName,
|
|
299
|
+
values: tableRows
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
302
|
}
|
|
303
303
|
// //////////////////////////////////
|
|
304
304
|
// Error Handling
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/upsertRow/index.ts"],"sourcesContent":["import type { TypeWithID } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport { ValidationError } from 'payload'\n\nimport type { BlockRowToInsert } from '../transform/write/types.js'\nimport type { Args } from './types.js'\n\nimport { buildFindManyArgs } from '../find/buildFindManyArgs.js'\nimport { transform } from '../transform/read/index.js'\nimport { transformForWrite } from '../transform/write/index.js'\nimport { deleteExistingArrayRows } from './deleteExistingArrayRows.js'\nimport { deleteExistingRowsByPath } from './deleteExistingRowsByPath.js'\nimport { insertArrays } from './insertArrays.js'\n\nexport const upsertRow = async <T extends Record<string, unknown> | TypeWithID>({\n id,\n adapter,\n data,\n db,\n fields,\n ignoreResult,\n joinQuery,\n operation,\n path = '',\n req,\n select,\n tableName,\n upsertTarget,\n where,\n}: Args): Promise<T> => {\n // Split out the incoming data into the corresponding:\n // base row, locales, relationships, blocks, and arrays\n const rowToInsert = transformForWrite({\n adapter,\n data,\n fields,\n path,\n tableName,\n })\n\n // First, we insert the main row\n let insertedRow: Record<string, unknown>\n\n try {\n if (operation === 'update') {\n const target = upsertTarget || adapter.tables[tableName].id\n\n if (id) {\n rowToInsert.row.id = id\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target },\n tableName,\n values: rowToInsert.row,\n })\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target, where },\n tableName,\n values: rowToInsert.row,\n })\n }\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n tableName,\n values: rowToInsert.row,\n })\n }\n\n const localesToInsert: Record<string, unknown>[] = []\n const relationsToInsert: Record<string, unknown>[] = []\n const textsToInsert: Record<string, unknown>[] = []\n const numbersToInsert: Record<string, unknown>[] = []\n const blocksToInsert: { [blockType: string]: BlockRowToInsert[] } = {}\n const selectsToInsert: { [selectTableName: string]: Record<string, unknown>[] } = {}\n\n // If there are locale rows with data, add the parent and locale to each\n if (Object.keys(rowToInsert.locales).length > 0) {\n Object.entries(rowToInsert.locales).forEach(([locale, localeRow]) => {\n localeRow._parentID = insertedRow.id\n localeRow._locale = locale\n localesToInsert.push(localeRow)\n })\n }\n\n // If there are relationships, add parent to each\n if (rowToInsert.relationships.length > 0) {\n rowToInsert.relationships.forEach((relation) => {\n relation.parent = insertedRow.id\n relationsToInsert.push(relation)\n })\n }\n\n // If there are texts, add parent to each\n if (rowToInsert.texts.length > 0) {\n rowToInsert.texts.forEach((textRow) => {\n textRow.parent = insertedRow.id\n textsToInsert.push(textRow)\n })\n }\n\n // If there are numbers, add parent to each\n if (rowToInsert.numbers.length > 0) {\n rowToInsert.numbers.forEach((numberRow) => {\n numberRow.parent = insertedRow.id\n numbersToInsert.push(numberRow)\n })\n }\n\n // If there are selects, add parent to each, and then\n // store by table name and rows\n if (Object.keys(rowToInsert.selects).length > 0) {\n Object.entries(rowToInsert.selects).forEach(([selectTableName, selectRows]) => {\n selectRows.forEach((row) => {\n if (typeof row.parent === 'undefined') {\n row.parent = insertedRow.id\n }\n if (!selectsToInsert[selectTableName]) {\n selectsToInsert[selectTableName] = []\n }\n selectsToInsert[selectTableName].push(row)\n })\n })\n }\n\n // If there are blocks, add parent to each, and then\n // store by table name and rows\n Object.keys(rowToInsert.blocks).forEach((blockName) => {\n rowToInsert.blocks[blockName].forEach((blockRow) => {\n blockRow.row._parentID = insertedRow.id\n if (!blocksToInsert[blockName]) {\n blocksToInsert[blockName] = []\n }\n if (blockRow.row.uuid) {\n delete blockRow.row.uuid\n }\n blocksToInsert[blockName].push(blockRow)\n })\n })\n\n // //////////////////////////////////\n // INSERT LOCALES\n // //////////////////////////////////\n\n if (localesToInsert.length > 0) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n const localeTable = adapter.tables[`${tableName}${adapter.localesSuffix}`]\n\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: localeTableName,\n where: eq(localeTable._parentID, insertedRow.id),\n })\n }\n\n await adapter.insert({\n db,\n tableName: localeTableName,\n values: localesToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT RELATIONSHIPS\n // //////////////////////////////////\n\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: [...relationsToInsert, ...rowToInsert.relationshipsToDelete],\n tableName: relationshipsTableName,\n })\n }\n\n if (relationsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: relationshipsTableName,\n values: relationsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany TEXTS\n // //////////////////////////////////\n\n const textsTableName = `${tableName}_texts`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: textsToInsert,\n tableName: textsTableName,\n })\n }\n\n if (textsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: textsTableName,\n values: textsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany NUMBERS\n // //////////////////////////////////\n\n const numbersTableName = `${tableName}_numbers`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: numbersToInsert,\n tableName: numbersTableName,\n })\n }\n\n if (numbersToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: numbersTableName,\n values: numbersToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT BLOCKS\n // //////////////////////////////////\n\n const insertedBlockRows: Record<string, Record<string, unknown>[]> = {}\n\n if (operation === 'update') {\n for (const blockName of rowToInsert.blocksToDelete) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n const blockTable = adapter.tables[blockTableName]\n await adapter.deleteWhere({\n db,\n tableName: blockTableName,\n where: eq(blockTable._parentID, insertedRow.id),\n })\n }\n }\n\n for (const [blockName, blockRows] of Object.entries(blocksToInsert)) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n insertedBlockRows[blockName] = await adapter.insert({\n db,\n tableName: blockTableName,\n values: blockRows.map(({ row }) => row),\n })\n\n insertedBlockRows[blockName].forEach((row, i) => {\n blockRows[i].row = row\n })\n\n const blockLocaleIndexMap: number[] = []\n\n const blockLocaleRowsToInsert = blockRows.reduce((acc, blockRow, i) => {\n if (Object.entries(blockRow.locales).length > 0) {\n Object.entries(blockRow.locales).forEach(([blockLocale, blockLocaleData]) => {\n if (Object.keys(blockLocaleData).length > 0) {\n blockLocaleData._parentID = blockRow.row.id\n blockLocaleData._locale = blockLocale\n acc.push(blockLocaleData)\n blockLocaleIndexMap.push(i)\n }\n })\n }\n\n return acc\n }, [])\n\n if (blockLocaleRowsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: `${blockTableName}${adapter.localesSuffix}`,\n values: blockLocaleRowsToInsert,\n })\n }\n\n await insertArrays({\n adapter,\n arrays: blockRows.map(({ arrays }) => arrays),\n db,\n parentRows: insertedBlockRows[blockName],\n })\n }\n\n // //////////////////////////////////\n // INSERT ARRAYS RECURSIVELY\n // //////////////////////////////////\n\n if (operation === 'update') {\n for (const arrayTableName of Object.keys(rowToInsert.arrays)) {\n await deleteExistingArrayRows({\n adapter,\n db,\n parentID: insertedRow.id,\n tableName: arrayTableName,\n })\n }\n }\n\n await insertArrays({\n adapter,\n arrays: [rowToInsert.arrays],\n db,\n parentRows: [insertedRow],\n })\n\n // //////////////////////////////////\n // INSERT hasMany SELECTS\n // //////////////////////////////////\n\n for (const [selectTableName, tableRows] of Object.entries(selectsToInsert)) {\n const selectTable = adapter.tables[selectTableName]\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: selectTableName,\n where: eq(selectTable.parent, insertedRow.id),\n })\n }\n await adapter.insert({\n db,\n tableName: selectTableName,\n values: tableRows,\n })\n }\n\n // //////////////////////////////////\n // Error Handling\n // //////////////////////////////////\n } catch (error) {\n if (error.code === '23505') {\n let fieldName: null | string = null\n // We need to try and find the right constraint for the field but if we can't we fallback to a generic message\n if (adapter.fieldConstraints?.[tableName]) {\n if (adapter.fieldConstraints[tableName]?.[error.constraint]) {\n fieldName = adapter.fieldConstraints[tableName]?.[error.constraint]\n } else {\n const replacement = `${tableName}_`\n\n if (error.constraint.includes(replacement)) {\n const replacedConstraint = error.constraint.replace(replacement, '')\n\n if (replacedConstraint && adapter.fieldConstraints[tableName]?.[replacedConstraint]) {\n fieldName = adapter.fieldConstraints[tableName][replacedConstraint]\n }\n }\n }\n }\n\n if (!fieldName) {\n // Last case scenario we extract the key and value from the detail on the error\n const detail = error.detail\n const regex = /Key \\(([^)]+)\\)=\\(([^)]+)\\)/\n const match = detail.match(regex)\n\n if (match) {\n const key = match[1]\n\n fieldName = key\n }\n }\n\n throw new ValidationError(\n {\n id,\n errors: [\n {\n message: req.t('error:valueMustBeUnique'),\n path: fieldName,\n },\n ],\n },\n req.t,\n )\n } else {\n throw error\n }\n }\n\n if (ignoreResult) {\n return data as T\n }\n\n // //////////////////////////////////\n // RETRIEVE NEWLY UPDATED ROW\n // //////////////////////////////////\n\n joinQuery = operation === 'create' ? false : joinQuery\n\n const findManyArgs = buildFindManyArgs({\n adapter,\n depth: 0,\n fields,\n joinQuery,\n select,\n tableName,\n })\n\n findManyArgs.where = eq(adapter.tables[tableName].id, insertedRow.id)\n\n const doc = await db.query[tableName].findFirst(findManyArgs)\n\n // //////////////////////////////////\n // TRANSFORM DATA\n // //////////////////////////////////\n\n const result = transform<T>({\n adapter,\n config: adapter.payload.config,\n data: doc,\n fields,\n joinQuery,\n })\n\n return result\n}\n"],"names":["eq","ValidationError","buildFindManyArgs","transform","transformForWrite","deleteExistingArrayRows","deleteExistingRowsByPath","insertArrays","upsertRow","id","adapter","data","db","fields","ignoreResult","joinQuery","operation","path","req","select","tableName","upsertTarget","where","rowToInsert","insertedRow","target","tables","row","insert","onConflictDoUpdate","set","values","localesToInsert","relationsToInsert","textsToInsert","numbersToInsert","blocksToInsert","selectsToInsert","Object","keys","locales","length","entries","forEach","locale","localeRow","_parentID","_locale","push","relationships","relation","parent","texts","textRow","numbers","numberRow","selects","selectTableName","selectRows","blocks","blockName","blockRow","uuid","localeTableName","localesSuffix","localeTable","deleteWhere","relationshipsTableName","relationshipsSuffix","localeColumnName","parentColumnName","parentID","pathColumnName","rows","relationshipsToDelete","textsTableName","numbersTableName","insertedBlockRows","blocksToDelete","blockTableName","tableNameMap","get","blockTable","blockRows","map","i","blockLocaleIndexMap","blockLocaleRowsToInsert","reduce","acc","blockLocale","blockLocaleData","arrays","parentRows","arrayTableName","tableRows","selectTable","error","code","fieldName","fieldConstraints","constraint","replacement","includes","replacedConstraint","replace","detail","regex","match","key","errors","message","t","findManyArgs","depth","doc","query","findFirst","result","config","payload"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/upsertRow/index.ts"],"sourcesContent":["import type { TypeWithID } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport { ValidationError } from 'payload'\n\nimport type { BlockRowToInsert } from '../transform/write/types.js'\nimport type { Args } from './types.js'\n\nimport { buildFindManyArgs } from '../find/buildFindManyArgs.js'\nimport { transform } from '../transform/read/index.js'\nimport { transformForWrite } from '../transform/write/index.js'\nimport { deleteExistingArrayRows } from './deleteExistingArrayRows.js'\nimport { deleteExistingRowsByPath } from './deleteExistingRowsByPath.js'\nimport { insertArrays } from './insertArrays.js'\n\nexport const upsertRow = async <T extends Record<string, unknown> | TypeWithID>({\n id,\n adapter,\n data,\n db,\n fields,\n ignoreResult,\n joinQuery,\n operation,\n path = '',\n req,\n select,\n tableName,\n upsertTarget,\n where,\n}: Args): Promise<T> => {\n // Split out the incoming data into the corresponding:\n // base row, locales, relationships, blocks, and arrays\n const rowToInsert = transformForWrite({\n adapter,\n data,\n fields,\n path,\n tableName,\n })\n\n // First, we insert the main row\n let insertedRow: Record<string, unknown>\n\n try {\n if (operation === 'update') {\n const target = upsertTarget || adapter.tables[tableName].id\n\n if (id) {\n rowToInsert.row.id = id\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target },\n tableName,\n values: rowToInsert.row,\n })\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n onConflictDoUpdate: { set: rowToInsert.row, target, where },\n tableName,\n values: rowToInsert.row,\n })\n }\n } else {\n ;[insertedRow] = await adapter.insert({\n db,\n tableName,\n values: rowToInsert.row,\n })\n }\n\n const localesToInsert: Record<string, unknown>[] = []\n const relationsToInsert: Record<string, unknown>[] = []\n const textsToInsert: Record<string, unknown>[] = []\n const numbersToInsert: Record<string, unknown>[] = []\n const blocksToInsert: { [blockType: string]: BlockRowToInsert[] } = {}\n const selectsToInsert: { [selectTableName: string]: Record<string, unknown>[] } = {}\n\n // If there are locale rows with data, add the parent and locale to each\n if (Object.keys(rowToInsert.locales).length > 0) {\n Object.entries(rowToInsert.locales).forEach(([locale, localeRow]) => {\n localeRow._parentID = insertedRow.id\n localeRow._locale = locale\n localesToInsert.push(localeRow)\n })\n }\n\n // If there are relationships, add parent to each\n if (rowToInsert.relationships.length > 0) {\n rowToInsert.relationships.forEach((relation) => {\n relation.parent = insertedRow.id\n relationsToInsert.push(relation)\n })\n }\n\n // If there are texts, add parent to each\n if (rowToInsert.texts.length > 0) {\n rowToInsert.texts.forEach((textRow) => {\n textRow.parent = insertedRow.id\n textsToInsert.push(textRow)\n })\n }\n\n // If there are numbers, add parent to each\n if (rowToInsert.numbers.length > 0) {\n rowToInsert.numbers.forEach((numberRow) => {\n numberRow.parent = insertedRow.id\n numbersToInsert.push(numberRow)\n })\n }\n\n // If there are selects, add parent to each, and then\n // store by table name and rows\n if (Object.keys(rowToInsert.selects).length > 0) {\n Object.entries(rowToInsert.selects).forEach(([selectTableName, selectRows]) => {\n selectsToInsert[selectTableName] = []\n\n selectRows.forEach((row) => {\n if (typeof row.parent === 'undefined') {\n row.parent = insertedRow.id\n }\n\n selectsToInsert[selectTableName].push(row)\n })\n })\n }\n\n // If there are blocks, add parent to each, and then\n // store by table name and rows\n Object.keys(rowToInsert.blocks).forEach((blockName) => {\n rowToInsert.blocks[blockName].forEach((blockRow) => {\n blockRow.row._parentID = insertedRow.id\n if (!blocksToInsert[blockName]) {\n blocksToInsert[blockName] = []\n }\n if (blockRow.row.uuid) {\n delete blockRow.row.uuid\n }\n blocksToInsert[blockName].push(blockRow)\n })\n })\n\n // //////////////////////////////////\n // INSERT LOCALES\n // //////////////////////////////////\n\n if (localesToInsert.length > 0) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n const localeTable = adapter.tables[`${tableName}${adapter.localesSuffix}`]\n\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: localeTableName,\n where: eq(localeTable._parentID, insertedRow.id),\n })\n }\n\n await adapter.insert({\n db,\n tableName: localeTableName,\n values: localesToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT RELATIONSHIPS\n // //////////////////////////////////\n\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: [...relationsToInsert, ...rowToInsert.relationshipsToDelete],\n tableName: relationshipsTableName,\n })\n }\n\n if (relationsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: relationshipsTableName,\n values: relationsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany TEXTS\n // //////////////////////////////////\n\n const textsTableName = `${tableName}_texts`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: textsToInsert,\n tableName: textsTableName,\n })\n }\n\n if (textsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: textsTableName,\n values: textsToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT hasMany NUMBERS\n // //////////////////////////////////\n\n const numbersTableName = `${tableName}_numbers`\n\n if (operation === 'update') {\n await deleteExistingRowsByPath({\n adapter,\n db,\n localeColumnName: 'locale',\n parentColumnName: 'parent',\n parentID: insertedRow.id,\n pathColumnName: 'path',\n rows: numbersToInsert,\n tableName: numbersTableName,\n })\n }\n\n if (numbersToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: numbersTableName,\n values: numbersToInsert,\n })\n }\n\n // //////////////////////////////////\n // INSERT BLOCKS\n // //////////////////////////////////\n\n const insertedBlockRows: Record<string, Record<string, unknown>[]> = {}\n\n if (operation === 'update') {\n for (const blockName of rowToInsert.blocksToDelete) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n const blockTable = adapter.tables[blockTableName]\n await adapter.deleteWhere({\n db,\n tableName: blockTableName,\n where: eq(blockTable._parentID, insertedRow.id),\n })\n }\n }\n\n for (const [blockName, blockRows] of Object.entries(blocksToInsert)) {\n const blockTableName = adapter.tableNameMap.get(`${tableName}_blocks_${blockName}`)\n insertedBlockRows[blockName] = await adapter.insert({\n db,\n tableName: blockTableName,\n values: blockRows.map(({ row }) => row),\n })\n\n insertedBlockRows[blockName].forEach((row, i) => {\n blockRows[i].row = row\n })\n\n const blockLocaleIndexMap: number[] = []\n\n const blockLocaleRowsToInsert = blockRows.reduce((acc, blockRow, i) => {\n if (Object.entries(blockRow.locales).length > 0) {\n Object.entries(blockRow.locales).forEach(([blockLocale, blockLocaleData]) => {\n if (Object.keys(blockLocaleData).length > 0) {\n blockLocaleData._parentID = blockRow.row.id\n blockLocaleData._locale = blockLocale\n acc.push(blockLocaleData)\n blockLocaleIndexMap.push(i)\n }\n })\n }\n\n return acc\n }, [])\n\n if (blockLocaleRowsToInsert.length > 0) {\n await adapter.insert({\n db,\n tableName: `${blockTableName}${adapter.localesSuffix}`,\n values: blockLocaleRowsToInsert,\n })\n }\n\n await insertArrays({\n adapter,\n arrays: blockRows.map(({ arrays }) => arrays),\n db,\n parentRows: insertedBlockRows[blockName],\n })\n }\n\n // //////////////////////////////////\n // INSERT ARRAYS RECURSIVELY\n // //////////////////////////////////\n\n if (operation === 'update') {\n for (const arrayTableName of Object.keys(rowToInsert.arrays)) {\n await deleteExistingArrayRows({\n adapter,\n db,\n parentID: insertedRow.id,\n tableName: arrayTableName,\n })\n }\n }\n\n await insertArrays({\n adapter,\n arrays: [rowToInsert.arrays],\n db,\n parentRows: [insertedRow],\n })\n\n // //////////////////////////////////\n // INSERT hasMany SELECTS\n // //////////////////////////////////\n\n for (const [selectTableName, tableRows] of Object.entries(selectsToInsert)) {\n const selectTable = adapter.tables[selectTableName]\n if (operation === 'update') {\n await adapter.deleteWhere({\n db,\n tableName: selectTableName,\n where: eq(selectTable.parent, insertedRow.id),\n })\n }\n\n if (tableRows.length) {\n await adapter.insert({\n db,\n tableName: selectTableName,\n values: tableRows,\n })\n }\n }\n\n // //////////////////////////////////\n // Error Handling\n // //////////////////////////////////\n } catch (error) {\n if (error.code === '23505') {\n let fieldName: null | string = null\n // We need to try and find the right constraint for the field but if we can't we fallback to a generic message\n if (adapter.fieldConstraints?.[tableName]) {\n if (adapter.fieldConstraints[tableName]?.[error.constraint]) {\n fieldName = adapter.fieldConstraints[tableName]?.[error.constraint]\n } else {\n const replacement = `${tableName}_`\n\n if (error.constraint.includes(replacement)) {\n const replacedConstraint = error.constraint.replace(replacement, '')\n\n if (replacedConstraint && adapter.fieldConstraints[tableName]?.[replacedConstraint]) {\n fieldName = adapter.fieldConstraints[tableName][replacedConstraint]\n }\n }\n }\n }\n\n if (!fieldName) {\n // Last case scenario we extract the key and value from the detail on the error\n const detail = error.detail\n const regex = /Key \\(([^)]+)\\)=\\(([^)]+)\\)/\n const match = detail.match(regex)\n\n if (match) {\n const key = match[1]\n\n fieldName = key\n }\n }\n\n throw new ValidationError(\n {\n id,\n errors: [\n {\n message: req.t('error:valueMustBeUnique'),\n path: fieldName,\n },\n ],\n },\n req.t,\n )\n } else {\n throw error\n }\n }\n\n if (ignoreResult) {\n return data as T\n }\n\n // //////////////////////////////////\n // RETRIEVE NEWLY UPDATED ROW\n // //////////////////////////////////\n\n joinQuery = operation === 'create' ? false : joinQuery\n\n const findManyArgs = buildFindManyArgs({\n adapter,\n depth: 0,\n fields,\n joinQuery,\n select,\n tableName,\n })\n\n findManyArgs.where = eq(adapter.tables[tableName].id, insertedRow.id)\n\n const doc = await db.query[tableName].findFirst(findManyArgs)\n\n // //////////////////////////////////\n // TRANSFORM DATA\n // //////////////////////////////////\n\n const result = transform<T>({\n adapter,\n config: adapter.payload.config,\n data: doc,\n fields,\n joinQuery,\n })\n\n return result\n}\n"],"names":["eq","ValidationError","buildFindManyArgs","transform","transformForWrite","deleteExistingArrayRows","deleteExistingRowsByPath","insertArrays","upsertRow","id","adapter","data","db","fields","ignoreResult","joinQuery","operation","path","req","select","tableName","upsertTarget","where","rowToInsert","insertedRow","target","tables","row","insert","onConflictDoUpdate","set","values","localesToInsert","relationsToInsert","textsToInsert","numbersToInsert","blocksToInsert","selectsToInsert","Object","keys","locales","length","entries","forEach","locale","localeRow","_parentID","_locale","push","relationships","relation","parent","texts","textRow","numbers","numberRow","selects","selectTableName","selectRows","blocks","blockName","blockRow","uuid","localeTableName","localesSuffix","localeTable","deleteWhere","relationshipsTableName","relationshipsSuffix","localeColumnName","parentColumnName","parentID","pathColumnName","rows","relationshipsToDelete","textsTableName","numbersTableName","insertedBlockRows","blocksToDelete","blockTableName","tableNameMap","get","blockTable","blockRows","map","i","blockLocaleIndexMap","blockLocaleRowsToInsert","reduce","acc","blockLocale","blockLocaleData","arrays","parentRows","arrayTableName","tableRows","selectTable","error","code","fieldName","fieldConstraints","constraint","replacement","includes","replacedConstraint","replace","detail","regex","match","key","errors","message","t","findManyArgs","depth","doc","query","findFirst","result","config","payload"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/drizzle",
|
|
3
|
-
"version": "3.1.1
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "A library of shared functions used by different payload database adapters",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"@types/pg": "8.10.2",
|
|
54
54
|
"@types/to-snake-case": "1.0.0",
|
|
55
55
|
"@payloadcms/eslint-config": "3.0.0",
|
|
56
|
-
"payload": "3.1.1
|
|
56
|
+
"payload": "3.1.1"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"payload": "3.1.1
|
|
59
|
+
"payload": "3.1.1"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "pnpm build:swc && pnpm build:types",
|