Files
payload/packages/db-postgres/src/transform/write/index.ts
Alessio Gravili ae7d6f97d2 chore: formatting and linting (#3261)
* chore: lint packages/payload

* chore: lint packages/db-postgres

* chore: lint packages/db-mongodb

* chore: update eslintrc exclusion rules

* chore: update eslintrc exclusion rules

* chore: lint misc files

* chore: run prettier through packages

* chore: run eslint on payload again

* chore: prettier misc files

* chore: prettier docs
2023-09-01 17:39:44 +02:00

52 lines
1.1 KiB
TypeScript

/* eslint-disable no-param-reassign */
import type { Field } from 'payload/types'
import type { RowToInsert } from './types'
import { traverseFields } from './traverseFields'
type Args = {
data: Record<string, unknown>
fields: Field[]
locale: string
path?: string
tableName: string
}
export const transformForWrite = ({
data,
fields,
locale,
path = '',
tableName,
}: Args): RowToInsert => {
// Split out the incoming data into the corresponding:
// base row, locales, relationships, blocks, and arrays
const rowToInsert: RowToInsert = {
arrays: {},
blocks: {},
locale: {},
relationships: [],
row: {},
}
// This function is responsible for building up the
// above rowToInsert
traverseFields({
arrays: rowToInsert.arrays,
blocks: rowToInsert.blocks,
columnPrefix: '',
data,
fields,
locale,
localeRow: rowToInsert.locale,
newTableName: tableName,
parentTableName: tableName,
path,
relationships: rowToInsert.relationships,
row: rowToInsert.row,
})
return rowToInsert
}