@payloadcms/drizzle 3.0.0-beta.108 → 3.0.0-beta.110
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/postgres/init.d.ts.map +1 -1
- package/dist/postgres/init.js +10 -1
- package/dist/postgres/init.js.map +1 -1
- package/dist/postgres/schema/traverseFields.js +2 -2
- package/dist/postgres/schema/traverseFields.js.map +1 -1
- package/dist/postgres/types.d.ts +16 -3
- package/dist/postgres/types.d.ts.map +1 -1
- package/dist/postgres/types.js.map +1 -1
- package/dist/queries/buildOrderBy.d.ts.map +1 -1
- package/dist/queries/buildOrderBy.js +1 -0
- package/dist/queries/buildOrderBy.js.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +2 -1
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +18 -5
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +2 -0
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/sanitizeQueryValue.d.ts +2 -1
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
- package/dist/queries/sanitizeQueryValue.js +9 -1
- package/dist/queries/sanitizeQueryValue.js.map +1 -1
- package/dist/transform/read/traverseFields.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.js +32 -4
- package/dist/transform/read/traverseFields.js.map +1 -1
- package/dist/utilities/executeSchemaHooks.d.ts +24 -0
- package/dist/utilities/executeSchemaHooks.d.ts.map +1 -0
- package/dist/utilities/executeSchemaHooks.js +21 -0
- package/dist/utilities/executeSchemaHooks.js.map +1 -0
- package/dist/utilities/extendDrizzleTable.d.ts +19 -0
- package/dist/utilities/extendDrizzleTable.d.ts.map +1 -0
- package/dist/utilities/extendDrizzleTable.js +38 -0
- package/dist/utilities/extendDrizzleTable.js.map +1 -0
- package/package.json +3 -3
|
@@ -131,10 +131,11 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
131
131
|
}
|
|
132
132
|
if (field.type === 'blocks') {
|
|
133
133
|
const blockFieldPath = `${sanitizedPath}${field.name}`;
|
|
134
|
-
|
|
134
|
+
const blocksByPath = blocks[blockFieldPath];
|
|
135
|
+
if (Array.isArray(blocksByPath)) {
|
|
135
136
|
if (field.localized) {
|
|
136
137
|
result[field.name] = {};
|
|
137
|
-
|
|
138
|
+
blocksByPath.forEach((row)=>{
|
|
138
139
|
if (row._uuid) {
|
|
139
140
|
row.id = row._uuid;
|
|
140
141
|
delete row._uuid;
|
|
@@ -173,7 +174,21 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
173
174
|
});
|
|
174
175
|
});
|
|
175
176
|
} else {
|
|
176
|
-
|
|
177
|
+
// Add locale-specific index to have a proper blockFieldPath for current locale
|
|
178
|
+
// because blocks can be in the same array for different locales!
|
|
179
|
+
if (withinArrayOrBlockLocale && config.localization) {
|
|
180
|
+
for (const locale of config.localization.localeCodes){
|
|
181
|
+
let localeIndex = 0;
|
|
182
|
+
for(let i = 0; i < blocksByPath.length; i++){
|
|
183
|
+
const row = blocksByPath[i];
|
|
184
|
+
if (row._locale === locale) {
|
|
185
|
+
row._index = localeIndex;
|
|
186
|
+
localeIndex++;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
result[field.name] = blocksByPath.reduce((acc, row, i)=>{
|
|
177
192
|
delete row._order;
|
|
178
193
|
if (row._uuid) {
|
|
179
194
|
row.id = row._uuid;
|
|
@@ -185,6 +200,10 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
185
200
|
if (row._locale) {
|
|
186
201
|
delete row._locale;
|
|
187
202
|
}
|
|
203
|
+
if (typeof row._index === 'number') {
|
|
204
|
+
i = row._index;
|
|
205
|
+
delete row._index;
|
|
206
|
+
}
|
|
188
207
|
acc.push(traverseFields({
|
|
189
208
|
adapter,
|
|
190
209
|
blocks,
|
|
@@ -382,12 +401,21 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
|
|
|
382
401
|
return selectResult;
|
|
383
402
|
}, {});
|
|
384
403
|
} else {
|
|
385
|
-
|
|
404
|
+
let selectData = fieldData;
|
|
405
|
+
if (withinArrayOrBlockLocale) {
|
|
406
|
+
selectData = selectData.filter(({ locale })=>locale === withinArrayOrBlockLocale);
|
|
407
|
+
}
|
|
408
|
+
result[field.name] = selectData.map(({ value })=>value);
|
|
386
409
|
}
|
|
387
410
|
}
|
|
388
411
|
return result;
|
|
389
412
|
}
|
|
390
413
|
if (field.localized && Array.isArray(table._locales)) {
|
|
414
|
+
if (!table._locales.length && adapter.payload.config.localization) {
|
|
415
|
+
adapter.payload.config.localization.localeCodes.forEach((_locale)=>table._locales.push({
|
|
416
|
+
_locale
|
|
417
|
+
}));
|
|
418
|
+
}
|
|
391
419
|
table._locales.forEach((localeRow)=>{
|
|
392
420
|
valuesToTransform.push({
|
|
393
421
|
ref: localizedFieldData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { Field, JoinQuery, SanitizedConfig, TabAsField } from 'payload'\n\nimport { fieldAffectsData, fieldIsVirtual } from 'payload/shared'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\nimport { transformHasManyNumber } from './hasManyNumber.js'\nimport { transformHasManyText } from './hasManyText.js'\nimport { transformRelationship } from './relationship.js'\n\ntype TraverseFieldsArgs = {\n /**\n * The DB adapter\n */\n adapter: DrizzleAdapter\n /**\n * Pre-formatted blocks map\n */\n blocks: BlocksMap\n /**\n * The full Payload config\n */\n config: SanitizedConfig\n /**\n * The data reference to be mutated within this recursive function\n */\n dataRef: Record<string, unknown>\n /**\n * Data that needs to be removed from the result after all fields have populated\n */\n deletions: (() => void)[]\n /**\n * Column prefix can be built up by group and named tab fields\n */\n fieldPrefix: string\n /**\n * An array of Payload fields to traverse\n */\n fields: (Field | TabAsField)[]\n /**\n *\n */\n joinQuery?: JoinQuery\n /**\n * All hasMany number fields, as returned by Drizzle, keyed on an object by field path\n */\n numbers: Record<string, Record<string, unknown>[]>\n /**\n * The current field path (in dot notation), used to merge in relationships\n */\n path: string\n /**\n * All related documents, as returned by Drizzle, keyed on an object by field path\n */\n relationships: Record<string, Record<string, unknown>[]>\n /**\n * Data structure representing the nearest table from db\n */\n table: Record<string, unknown>\n /**\n * All hasMany text fields, as returned by Drizzle, keyed on an object by field path\n */\n texts: Record<string, Record<string, unknown>[]>\n /**\n * Set to a locale if this group of fields is within a localized array or block.\n */\n withinArrayOrBlockLocale?: string\n}\n\n// Traverse fields recursively, transforming data\n// for each field type into required Payload shape\nexport const traverseFields = <T extends Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n}: TraverseFieldsArgs): T => {\n const sanitizedPath = path ? `${path}.` : path\n\n const formatted = fields.reduce((result, field) => {\n if (field.type === 'tabs') {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (\n field.type === 'collapsible' ||\n field.type === 'row' ||\n (field.type === 'tab' && !('name' in field))\n ) {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (fieldAffectsData(field)) {\n if (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n const fieldData = table[fieldName]\n const localizedFieldData = {}\n const valuesToTransform: {\n ref: Record<string, unknown>\n table: Record<string, unknown>\n }[] = []\n\n if (fieldPrefix) {\n deletions.push(() => delete table[fieldName])\n }\n\n if (field.type === 'array') {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((arrayResult, row) => {\n if (typeof row._locale === 'string') {\n if (!arrayResult[row._locale]) {\n arrayResult[row._locale] = []\n }\n const locale = row._locale\n const data = {}\n delete row._locale\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n const rowResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale: locale,\n })\n\n if ('_order' in rowResult) {\n delete rowResult._order\n }\n\n arrayResult[locale].push(rowResult)\n }\n\n return arrayResult\n }, {})\n } else {\n result[field.name] = fieldData.reduce((acc, row, i) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if ('_order' in row) {\n delete row._order\n }\n\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale,\n }),\n )\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'blocks') {\n const blockFieldPath = `${sanitizedPath}${field.name}`\n\n if (Array.isArray(blocks[blockFieldPath])) {\n if (field.localized) {\n result[field.name] = {}\n\n blocks[blockFieldPath].forEach((row) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n if (typeof row._locale === 'string') {\n if (!result[field.name][row._locale]) {\n result[field.name][row._locale] = []\n }\n result[field.name][row._locale].push(row)\n delete row._locale\n }\n })\n\n Object.entries(result[field.name]).forEach(([locale, localizedBlocks]) => {\n result[field.name][locale] = localizedBlocks.map((row) => {\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale: locale,\n })\n\n delete blockResult._order\n return blockResult\n }\n\n return {}\n })\n })\n } else {\n result[field.name] = blocks[blockFieldPath].reduce((acc, row, i) => {\n delete row._order\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale,\n }),\n )\n\n return acc\n }\n } else {\n acc.push({})\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (typeof field.relationTo === 'string' && !('hasMany' in field && field.hasMany)) {\n if (\n field.localized &&\n config.localization &&\n config.localization.locales &&\n Array.isArray(table?._locales)\n ) {\n table._locales.forEach((localeRow) => {\n result[field.name] = { [localeRow._locale]: localeRow[fieldName] }\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n } else {\n const relationPathMatch = relationships[`${sanitizedPath}${field.name}`]\n if (!relationPathMatch) {\n if ('hasMany' in field && field.hasMany) {\n if (field.localized && config.localization && config.localization.locales) {\n result[field.name] = {\n [config.localization.defaultLocale]: [],\n }\n } else {\n result[field.name] = []\n }\n }\n\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const relationsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n relationPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!relationsByLocale[row.locale]) {\n relationsByLocale[row.locale] = []\n }\n relationsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(relationsByLocale).forEach(([locale, relations]) => {\n transformRelationship({\n field,\n locale,\n ref: result,\n relations,\n })\n })\n } else {\n transformRelationship({\n field,\n ref: result,\n relations: relationPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n return result\n }\n }\n\n if (field.type === 'join') {\n const { limit = 10 } = joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\n\n let fieldResult:\n | { docs: unknown[]; hasNextPage: boolean }\n | Record<string, { docs: unknown[]; hasNextPage: boolean }>\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n fieldResult = fieldData.reduce((joinResult, row) => {\n if (typeof row._locale === 'string') {\n if (!joinResult[row._locale]) {\n joinResult[row._locale] = {\n docs: [],\n hasNextPage: false,\n }\n }\n joinResult[row._locale].docs.push(row._parentID)\n }\n\n return joinResult\n }, {})\n Object.keys(fieldResult).forEach((locale) => {\n fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit\n fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit)\n })\n } else {\n const hasNextPage = limit !== 0 && fieldData.length > limit\n fieldResult = {\n docs: hasNextPage ? fieldData.slice(0, limit) : fieldData,\n hasNextPage,\n }\n }\n }\n\n result[field.name] = fieldResult\n return result\n }\n\n if (field.type === 'text' && field?.hasMany) {\n const textPathMatch = texts[`${sanitizedPath}${field.name}`]\n if (!textPathMatch) {\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const textsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n textPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!textsByLocale[row.locale]) {\n textsByLocale[row.locale] = []\n }\n textsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(textsByLocale).forEach(([locale, texts]) => {\n transformHasManyText({\n field,\n locale,\n ref: result,\n textRows: texts,\n })\n })\n } else {\n transformHasManyText({\n field,\n ref: result,\n textRows: textPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPathMatch = numbers[`${sanitizedPath}${field.name}`]\n if (!numberPathMatch) {\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const numbersByLocale: Record<string, Record<string, unknown>[]> = {}\n\n numberPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!numbersByLocale[row.locale]) {\n numbersByLocale[row.locale] = []\n }\n numbersByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(numbersByLocale).forEach(([locale, numbers]) => {\n transformHasManyNumber({\n field,\n locale,\n numberRows: numbers,\n ref: result,\n })\n })\n } else {\n transformHasManyNumber({\n field,\n numberRows: numberPathMatch,\n ref: result,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'select' && field.hasMany) {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((selectResult, row) => {\n if (typeof row.locale === 'string') {\n if (!selectResult[row.locale]) {\n selectResult[row.locale] = []\n }\n selectResult[row.locale].push(row.value)\n }\n\n return selectResult\n }, {})\n } else {\n result[field.name] = fieldData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (field.localized && Array.isArray(table._locales)) {\n table._locales.forEach((localeRow) => {\n valuesToTransform.push({\n ref: localizedFieldData,\n table: {\n ...table,\n ...localeRow,\n },\n })\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n\n valuesToTransform.forEach(({ ref, table }) => {\n const fieldData = table[`${fieldPrefix || ''}${field.name}`]\n const locale = table?._locale\n let val = fieldData\n\n switch (field.type) {\n case 'tab':\n case 'group': {\n const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`\n const groupData = {}\n const locale = table._locale as string\n const refKey = field.localized && locale ? locale : field.name\n\n if (field.localized && locale) {\n delete table._locale\n }\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale,\n })\n\n if ('_order' in ref) {\n delete ref._order\n }\n\n return\n }\n\n case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n val &&\n typeof field.relationTo === 'string' &&\n adapter.payload.collections[field.relationTo].customIDType === 'number'\n ) {\n val = Number(val)\n }\n\n break\n }\n\n default: {\n break\n }\n }\n if (typeof locale === 'string') {\n ref[locale] = val\n } else {\n result[field.name] = val\n }\n })\n\n if (Object.keys(localizedFieldData).length > 0) {\n result[field.name] = localizedFieldData\n }\n\n return result\n }\n\n return result\n }, dataRef)\n\n if (Array.isArray(table._locales)) {\n deletions.push(() => delete table._locales)\n }\n\n return formatted as T\n}\n"],"names":["fieldAffectsData","fieldIsVirtual","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","type","tabs","map","tab","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","_order","acc","i","blockFieldPath","forEach","Object","entries","localizedBlocks","block","find","slug","blockType","blockResult","relationTo","hasMany","localization","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","limit","replaceAll","fieldResult","joinResult","docs","hasNextPage","_parentID","keys","length","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","val","groupFieldPrefix","groupData","refKey","String","Number","parseFloat","Date","toISOString","payload","collections","customIDType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { Field, JoinQuery, SanitizedConfig, TabAsField } from 'payload'\n\nimport { fieldAffectsData, fieldIsVirtual } from 'payload/shared'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\nimport { transformHasManyNumber } from './hasManyNumber.js'\nimport { transformHasManyText } from './hasManyText.js'\nimport { transformRelationship } from './relationship.js'\n\ntype TraverseFieldsArgs = {\n /**\n * The DB adapter\n */\n adapter: DrizzleAdapter\n /**\n * Pre-formatted blocks map\n */\n blocks: BlocksMap\n /**\n * The full Payload config\n */\n config: SanitizedConfig\n /**\n * The data reference to be mutated within this recursive function\n */\n dataRef: Record<string, unknown>\n /**\n * Data that needs to be removed from the result after all fields have populated\n */\n deletions: (() => void)[]\n /**\n * Column prefix can be built up by group and named tab fields\n */\n fieldPrefix: string\n /**\n * An array of Payload fields to traverse\n */\n fields: (Field | TabAsField)[]\n /**\n *\n */\n joinQuery?: JoinQuery\n /**\n * All hasMany number fields, as returned by Drizzle, keyed on an object by field path\n */\n numbers: Record<string, Record<string, unknown>[]>\n /**\n * The current field path (in dot notation), used to merge in relationships\n */\n path: string\n /**\n * All related documents, as returned by Drizzle, keyed on an object by field path\n */\n relationships: Record<string, Record<string, unknown>[]>\n /**\n * Data structure representing the nearest table from db\n */\n table: Record<string, unknown>\n /**\n * All hasMany text fields, as returned by Drizzle, keyed on an object by field path\n */\n texts: Record<string, Record<string, unknown>[]>\n /**\n * Set to a locale if this group of fields is within a localized array or block.\n */\n withinArrayOrBlockLocale?: string\n}\n\n// Traverse fields recursively, transforming data\n// for each field type into required Payload shape\nexport const traverseFields = <T extends Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n}: TraverseFieldsArgs): T => {\n const sanitizedPath = path ? `${path}.` : path\n\n const formatted = fields.reduce((result, field) => {\n if (field.type === 'tabs') {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (\n field.type === 'collapsible' ||\n field.type === 'row' ||\n (field.type === 'tab' && !('name' in field))\n ) {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (fieldAffectsData(field)) {\n if (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n const fieldData = table[fieldName]\n const localizedFieldData = {}\n const valuesToTransform: {\n ref: Record<string, unknown>\n table: Record<string, unknown>\n }[] = []\n\n if (fieldPrefix) {\n deletions.push(() => delete table[fieldName])\n }\n\n if (field.type === 'array') {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((arrayResult, row) => {\n if (typeof row._locale === 'string') {\n if (!arrayResult[row._locale]) {\n arrayResult[row._locale] = []\n }\n const locale = row._locale\n const data = {}\n delete row._locale\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n const rowResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale: locale,\n })\n\n if ('_order' in rowResult) {\n delete rowResult._order\n }\n\n arrayResult[locale].push(rowResult)\n }\n\n return arrayResult\n }, {})\n } else {\n result[field.name] = fieldData.reduce((acc, row, i) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if ('_order' in row) {\n delete row._order\n }\n\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale,\n }),\n )\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'blocks') {\n const blockFieldPath = `${sanitizedPath}${field.name}`\n const blocksByPath = blocks[blockFieldPath]\n\n if (Array.isArray(blocksByPath)) {\n if (field.localized) {\n result[field.name] = {}\n\n blocksByPath.forEach((row) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n if (typeof row._locale === 'string') {\n if (!result[field.name][row._locale]) {\n result[field.name][row._locale] = []\n }\n result[field.name][row._locale].push(row)\n delete row._locale\n }\n })\n\n Object.entries(result[field.name]).forEach(([locale, localizedBlocks]) => {\n result[field.name][locale] = localizedBlocks.map((row) => {\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale: locale,\n })\n\n delete blockResult._order\n return blockResult\n }\n\n return {}\n })\n })\n } else {\n // Add locale-specific index to have a proper blockFieldPath for current locale\n // because blocks can be in the same array for different locales!\n if (withinArrayOrBlockLocale && config.localization) {\n for (const locale of config.localization.localeCodes) {\n let localeIndex = 0\n\n for (let i = 0; i < blocksByPath.length; i++) {\n const row = blocksByPath[i]\n if (row._locale === locale) {\n row._index = localeIndex\n localeIndex++\n }\n }\n }\n }\n\n result[field.name] = blocksByPath.reduce((acc, row, i) => {\n delete row._order\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n const block = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n if (typeof row._index === 'number') {\n i = row._index\n delete row._index\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\n numbers,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n texts,\n withinArrayOrBlockLocale,\n }),\n )\n\n return acc\n }\n } else {\n acc.push({})\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (typeof field.relationTo === 'string' && !('hasMany' in field && field.hasMany)) {\n if (\n field.localized &&\n config.localization &&\n config.localization.locales &&\n Array.isArray(table?._locales)\n ) {\n table._locales.forEach((localeRow) => {\n result[field.name] = { [localeRow._locale]: localeRow[fieldName] }\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n } else {\n const relationPathMatch = relationships[`${sanitizedPath}${field.name}`]\n\n if (!relationPathMatch) {\n if ('hasMany' in field && field.hasMany) {\n if (field.localized && config.localization && config.localization.locales) {\n result[field.name] = {\n [config.localization.defaultLocale]: [],\n }\n } else {\n result[field.name] = []\n }\n }\n\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const relationsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n relationPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!relationsByLocale[row.locale]) {\n relationsByLocale[row.locale] = []\n }\n relationsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(relationsByLocale).forEach(([locale, relations]) => {\n transformRelationship({\n field,\n locale,\n ref: result,\n relations,\n })\n })\n } else {\n transformRelationship({\n field,\n ref: result,\n relations: relationPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n return result\n }\n }\n\n if (field.type === 'join') {\n const { limit = 10 } = joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\n\n let fieldResult:\n | { docs: unknown[]; hasNextPage: boolean }\n | Record<string, { docs: unknown[]; hasNextPage: boolean }>\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n fieldResult = fieldData.reduce((joinResult, row) => {\n if (typeof row._locale === 'string') {\n if (!joinResult[row._locale]) {\n joinResult[row._locale] = {\n docs: [],\n hasNextPage: false,\n }\n }\n joinResult[row._locale].docs.push(row._parentID)\n }\n\n return joinResult\n }, {})\n Object.keys(fieldResult).forEach((locale) => {\n fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit\n fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit)\n })\n } else {\n const hasNextPage = limit !== 0 && fieldData.length > limit\n fieldResult = {\n docs: hasNextPage ? fieldData.slice(0, limit) : fieldData,\n hasNextPage,\n }\n }\n }\n\n result[field.name] = fieldResult\n return result\n }\n\n if (field.type === 'text' && field?.hasMany) {\n const textPathMatch = texts[`${sanitizedPath}${field.name}`]\n if (!textPathMatch) {\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const textsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n textPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!textsByLocale[row.locale]) {\n textsByLocale[row.locale] = []\n }\n textsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(textsByLocale).forEach(([locale, texts]) => {\n transformHasManyText({\n field,\n locale,\n ref: result,\n textRows: texts,\n })\n })\n } else {\n transformHasManyText({\n field,\n ref: result,\n textRows: textPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPathMatch = numbers[`${sanitizedPath}${field.name}`]\n if (!numberPathMatch) {\n return result\n }\n\n if (field.localized) {\n result[field.name] = {}\n const numbersByLocale: Record<string, Record<string, unknown>[]> = {}\n\n numberPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!numbersByLocale[row.locale]) {\n numbersByLocale[row.locale] = []\n }\n numbersByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(numbersByLocale).forEach(([locale, numbers]) => {\n transformHasManyNumber({\n field,\n locale,\n numberRows: numbers,\n ref: result,\n })\n })\n } else {\n transformHasManyNumber({\n field,\n numberRows: numberPathMatch,\n ref: result,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'select' && field.hasMany) {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\n result[field.name] = fieldData.reduce((selectResult, row) => {\n if (typeof row.locale === 'string') {\n if (!selectResult[row.locale]) {\n selectResult[row.locale] = []\n }\n selectResult[row.locale].push(row.value)\n }\n\n return selectResult\n }, {})\n } else {\n let selectData = fieldData\n if (withinArrayOrBlockLocale) {\n selectData = selectData.filter(({ locale }) => locale === withinArrayOrBlockLocale)\n }\n result[field.name] = selectData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (field.localized && Array.isArray(table._locales)) {\n if (!table._locales.length && adapter.payload.config.localization) {\n adapter.payload.config.localization.localeCodes.forEach((_locale) =>\n (table._locales as unknown[]).push({ _locale }),\n )\n }\n\n table._locales.forEach((localeRow) => {\n valuesToTransform.push({\n ref: localizedFieldData,\n table: {\n ...table,\n ...localeRow,\n },\n })\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n\n valuesToTransform.forEach(({ ref, table }) => {\n const fieldData = table[`${fieldPrefix || ''}${field.name}`]\n const locale = table?._locale\n let val = fieldData\n\n switch (field.type) {\n case 'tab':\n case 'group': {\n const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`\n const groupData = {}\n const locale = table._locale as string\n const refKey = field.localized && locale ? locale : field.name\n\n if (field.localized && locale) {\n delete table._locale\n }\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.fields,\n numbers,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale,\n })\n\n if ('_order' in ref) {\n delete ref._order\n }\n\n return\n }\n\n case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n val &&\n typeof field.relationTo === 'string' &&\n adapter.payload.collections[field.relationTo].customIDType === 'number'\n ) {\n val = Number(val)\n }\n\n break\n }\n\n default: {\n break\n }\n }\n if (typeof locale === 'string') {\n ref[locale] = val\n } else {\n result[field.name] = val\n }\n })\n\n if (Object.keys(localizedFieldData).length > 0) {\n result[field.name] = localizedFieldData\n }\n\n return result\n }\n\n return result\n }, dataRef)\n\n if (Array.isArray(table._locales)) {\n deletions.push(() => delete table._locales)\n }\n\n return formatted as T\n}\n"],"names":["fieldAffectsData","fieldIsVirtual","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","type","tabs","map","tab","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","_order","acc","i","blockFieldPath","blocksByPath","forEach","Object","entries","localizedBlocks","block","find","slug","blockType","blockResult","localization","localeCodes","localeIndex","length","_index","relationTo","hasMany","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","limit","replaceAll","fieldResult","joinResult","docs","hasNextPage","_parentID","keys","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","selectData","filter","payload","val","groupFieldPrefix","groupData","refKey","String","Number","parseFloat","Date","toISOString","collections","customIDType"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,cAAc,QAAQ,iBAAgB;AAKjE,SAASC,sBAAsB,QAAQ,qBAAoB;AAC3D,SAASC,oBAAoB,QAAQ,mBAAkB;AACvD,SAASC,qBAAqB,QAAQ,oBAAmB;AA6DzD,iDAAiD;AACjD,kDAAkD;AAClD,OAAO,MAAMC,iBAAiB,CAAoC,EAChEC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,IAAI,EACJC,aAAa,EACbC,KAAK,EACLC,KAAK,EACLC,wBAAwB,EACL;IACnB,MAAMC,gBAAgBL,OAAO,CAAC,EAAEA,KAAK,CAAC,CAAC,GAAGA;IAE1C,MAAMM,YAAYT,OAAOU,MAAM,CAAC,CAACC,QAAQC;QACvC,IAAIA,MAAMC,IAAI,KAAK,QAAQ;YACzBpB,eAAe;gBACbC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC,QAAQY,MAAME,IAAI,CAACC,GAAG,CAAC,CAACC,MAAS,CAAA;wBAAE,GAAGA,GAAG;wBAAEH,MAAM;oBAAM,CAAA;gBACvDZ;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;YACF;QACF;QAEA,IACEK,MAAMC,IAAI,KAAK,iBACfD,MAAMC,IAAI,KAAK,SACdD,MAAMC,IAAI,KAAK,SAAS,CAAE,CAAA,UAAUD,KAAI,GACzC;YACAnB,eAAe;gBACbC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC,QAAQY,MAAMZ,MAAM;gBACpBC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;gBACAC;YACF;QACF;QAEA,IAAInB,iBAAiBwB,QAAQ;YAC3B,IAAIvB,eAAeuB,QAAQ;gBACzB,OAAOD;YACT;YAEA,MAAMM,YAAY,CAAC,EAAElB,eAAe,GAAG,EAAEa,MAAMM,IAAI,CAAC,CAAC;YACrD,MAAMC,YAAYd,KAAK,CAACY,UAAU;YAClC,MAAMG,qBAAqB,CAAC;YAC5B,MAAMC,oBAGA,EAAE;YAER,IAAItB,aAAa;gBACfD,UAAUwB,IAAI,CAAC,IAAM,OAAOjB,KAAK,CAACY,UAAU;YAC9C;YAEA,IAAIL,MAAMC,IAAI,KAAK,SAAS;gBAC1B,IAAIU,MAAMC,OAAO,CAACL,YAAY;oBAC5B,IAAIP,MAAMa,SAAS,EAAE;wBACnBd,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAGC,UAAUT,MAAM,CAAC,CAACgB,aAAaC;4BAClD,IAAI,OAAOA,IAAIC,OAAO,KAAK,UAAU;gCACnC,IAAI,CAACF,WAAW,CAACC,IAAIC,OAAO,CAAC,EAAE;oCAC7BF,WAAW,CAACC,IAAIC,OAAO,CAAC,GAAG,EAAE;gCAC/B;gCACA,MAAMC,SAASF,IAAIC,OAAO;gCAC1B,MAAME,OAAO,CAAC;gCACd,OAAOH,IAAIC,OAAO;gCAClB,IAAID,IAAII,KAAK,EAAE;oCACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;oCAClB,OAAOJ,IAAII,KAAK;gCAClB;gCAEA,MAAME,YAAYxC,eAAkB;oCAClCC;oCACAC;oCACAC;oCACAC,SAASiC;oCACThC;oCACAC,aAAa;oCACbC,QAAQY,MAAMZ,MAAM;oCACpBE;oCACAC,MAAM,CAAC,EAAEK,cAAc,EAAEI,MAAMM,IAAI,CAAC,CAAC,EAAES,IAAIO,MAAM,GAAG,EAAE,CAAC;oCACvD9B;oCACAC,OAAOsB;oCACPrB;oCACAC,0BAA0BsB;gCAC5B;gCAEA,IAAI,YAAYI,WAAW;oCACzB,OAAOA,UAAUC,MAAM;gCACzB;gCAEAR,WAAW,CAACG,OAAO,CAACP,IAAI,CAACW;4BAC3B;4BAEA,OAAOP;wBACT,GAAG,CAAC;oBACN,OAAO;wBACLf,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAGC,UAAUT,MAAM,CAAC,CAACyB,KAAKR,KAAKS;4BAC/C,IAAIT,IAAII,KAAK,EAAE;gCACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;gCAClB,OAAOJ,IAAII,KAAK;4BAClB;4BAEA,IAAI,YAAYJ,KAAK;gCACnB,OAAOA,IAAIO,MAAM;4BACnB;4BAEA,IACE,CAAC3B,4BACAA,4BAA4BA,6BAA6BoB,IAAIC,OAAO,EACrE;gCACA,IAAID,IAAIC,OAAO,EAAE;oCACf,OAAOD,IAAIC,OAAO;gCACpB;gCAEAO,IAAIb,IAAI,CACN7B,eAAkB;oCAChBC;oCACAC;oCACAC;oCACAC,SAAS8B;oCACT7B;oCACAC,aAAa;oCACbC,QAAQY,MAAMZ,MAAM;oCACpBE;oCACAC,MAAM,CAAC,EAAEK,cAAc,EAAEI,MAAMM,IAAI,CAAC,CAAC,EAAEkB,EAAE,CAAC;oCAC1ChC;oCACAC,OAAOsB;oCACPrB;oCACAC;gCACF;4BAEJ;4BAEA,OAAO4B;wBACT,GAAG,EAAE;oBACP;gBACF;gBAEA,OAAOxB;YACT;YAEA,IAAIC,MAAMC,IAAI,KAAK,UAAU;gBAC3B,MAAMwB,iBAAiB,CAAC,EAAE7B,cAAc,EAAEI,MAAMM,IAAI,CAAC,CAAC;gBACtD,MAAMoB,eAAe3C,MAAM,CAAC0C,eAAe;gBAE3C,IAAId,MAAMC,OAAO,CAACc,eAAe;oBAC/B,IAAI1B,MAAMa,SAAS,EAAE;wBACnBd,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG,CAAC;wBAEtBoB,aAAaC,OAAO,CAAC,CAACZ;4BACpB,IAAIA,IAAII,KAAK,EAAE;gCACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;gCAClB,OAAOJ,IAAII,KAAK;4BAClB;4BACA,IAAI,OAAOJ,IAAIC,OAAO,KAAK,UAAU;gCACnC,IAAI,CAACjB,MAAM,CAACC,MAAMM,IAAI,CAAC,CAACS,IAAIC,OAAO,CAAC,EAAE;oCACpCjB,MAAM,CAACC,MAAMM,IAAI,CAAC,CAACS,IAAIC,OAAO,CAAC,GAAG,EAAE;gCACtC;gCACAjB,MAAM,CAACC,MAAMM,IAAI,CAAC,CAACS,IAAIC,OAAO,CAAC,CAACN,IAAI,CAACK;gCACrC,OAAOA,IAAIC,OAAO;4BACpB;wBACF;wBAEAY,OAAOC,OAAO,CAAC9B,MAAM,CAACC,MAAMM,IAAI,CAAC,EAAEqB,OAAO,CAAC,CAAC,CAACV,QAAQa,gBAAgB;4BACnE/B,MAAM,CAACC,MAAMM,IAAI,CAAC,CAACW,OAAO,GAAGa,gBAAgB3B,GAAG,CAAC,CAACY;gCAChD,MAAMgB,QAAQ/B,MAAMjB,MAAM,CAACiD,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASlB,IAAImB,SAAS;gCAEpE,IAAIH,OAAO;oCACT,MAAMI,cAActD,eAAkB;wCACpCC;wCACAC;wCACAC;wCACAC,SAAS8B;wCACT7B;wCACAC,aAAa;wCACbC,QAAQ2C,MAAM3C,MAAM;wCACpBE;wCACAC,MAAM,CAAC,EAAEkC,eAAe,CAAC,EAAEV,IAAIO,MAAM,GAAG,EAAE,CAAC;wCAC3C9B;wCACAC,OAAOsB;wCACPrB;wCACAC,0BAA0BsB;oCAC5B;oCAEA,OAAOkB,YAAYb,MAAM;oCACzB,OAAOa;gCACT;gCAEA,OAAO,CAAC;4BACV;wBACF;oBACF,OAAO;wBACL,+EAA+E;wBAC/E,iEAAiE;wBACjE,IAAIxC,4BAA4BX,OAAOoD,YAAY,EAAE;4BACnD,KAAK,MAAMnB,UAAUjC,OAAOoD,YAAY,CAACC,WAAW,CAAE;gCACpD,IAAIC,cAAc;gCAElB,IAAK,IAAId,IAAI,GAAGA,IAAIE,aAAaa,MAAM,EAAEf,IAAK;oCAC5C,MAAMT,MAAMW,YAAY,CAACF,EAAE;oCAC3B,IAAIT,IAAIC,OAAO,KAAKC,QAAQ;wCAC1BF,IAAIyB,MAAM,GAAGF;wCACbA;oCACF;gCACF;4BACF;wBACF;wBAEAvC,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAGoB,aAAa5B,MAAM,CAAC,CAACyB,KAAKR,KAAKS;4BAClD,OAAOT,IAAIO,MAAM;4BACjB,IAAIP,IAAII,KAAK,EAAE;gCACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;gCAClB,OAAOJ,IAAII,KAAK;4BAClB;4BACA,MAAMY,QAAQ/B,MAAMjB,MAAM,CAACiD,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASlB,IAAImB,SAAS;4BAEpE,IAAIH,OAAO;gCACT,IACE,CAACpC,4BACAA,4BAA4BA,6BAA6BoB,IAAIC,OAAO,EACrE;oCACA,IAAID,IAAIC,OAAO,EAAE;wCACf,OAAOD,IAAIC,OAAO;oCACpB;oCACA,IAAI,OAAOD,IAAIyB,MAAM,KAAK,UAAU;wCAClChB,IAAIT,IAAIyB,MAAM;wCACd,OAAOzB,IAAIyB,MAAM;oCACnB;oCAEAjB,IAAIb,IAAI,CACN7B,eAAkB;wCAChBC;wCACAC;wCACAC;wCACAC,SAAS8B;wCACT7B;wCACAC,aAAa;wCACbC,QAAQ2C,MAAM3C,MAAM;wCACpBE;wCACAC,MAAM,CAAC,EAAEkC,eAAe,CAAC,EAAED,EAAE,CAAC;wCAC9BhC;wCACAC,OAAOsB;wCACPrB;wCACAC;oCACF;oCAGF,OAAO4B;gCACT;4BACF,OAAO;gCACLA,IAAIb,IAAI,CAAC,CAAC;4BACZ;4BAEA,OAAOa;wBACT,GAAG,EAAE;oBACP;gBACF;gBAEA,OAAOxB;YACT;YAEA,IAAIC,MAAMC,IAAI,KAAK,kBAAkBD,MAAMC,IAAI,KAAK,UAAU;gBAC5D,IAAI,OAAOD,MAAMyC,UAAU,KAAK,YAAY,CAAE,CAAA,aAAazC,SAASA,MAAM0C,OAAO,AAAD,GAAI;oBAClF,IACE1C,MAAMa,SAAS,IACf7B,OAAOoD,YAAY,IACnBpD,OAAOoD,YAAY,CAACO,OAAO,IAC3BhC,MAAMC,OAAO,CAACnB,OAAOmD,WACrB;wBACAnD,MAAMmD,QAAQ,CAACjB,OAAO,CAAC,CAACkB;4BACtB9C,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG;gCAAE,CAACuC,UAAU7B,OAAO,CAAC,EAAE6B,SAAS,CAACxC,UAAU;4BAAC;wBACnE;oBACF,OAAO;wBACLI,kBAAkBC,IAAI,CAAC;4BAAEoC,KAAK/C;4BAAQN;wBAAM;oBAC9C;gBACF,OAAO;oBACL,MAAMsD,oBAAoBvD,aAAa,CAAC,CAAC,EAAEI,cAAc,EAAEI,MAAMM,IAAI,CAAC,CAAC,CAAC;oBAExE,IAAI,CAACyC,mBAAmB;wBACtB,IAAI,aAAa/C,SAASA,MAAM0C,OAAO,EAAE;4BACvC,IAAI1C,MAAMa,SAAS,IAAI7B,OAAOoD,YAAY,IAAIpD,OAAOoD,YAAY,CAACO,OAAO,EAAE;gCACzE5C,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG;oCACnB,CAACtB,OAAOoD,YAAY,CAACY,aAAa,CAAC,EAAE,EAAE;gCACzC;4BACF,OAAO;gCACLjD,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG,EAAE;4BACzB;wBACF;wBAEA,OAAOP;oBACT;oBAEA,IAAIC,MAAMa,SAAS,EAAE;wBACnBd,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG,CAAC;wBACtB,MAAM2C,oBAA+D,CAAC;wBAEtEF,kBAAkBpB,OAAO,CAAC,CAACZ;4BACzB,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;gCAClC,IAAI,CAACgC,iBAAiB,CAAClC,IAAIE,MAAM,CAAC,EAAE;oCAClCgC,iBAAiB,CAAClC,IAAIE,MAAM,CAAC,GAAG,EAAE;gCACpC;gCACAgC,iBAAiB,CAAClC,IAAIE,MAAM,CAAC,CAACP,IAAI,CAACK;4BACrC;wBACF;wBAEAa,OAAOC,OAAO,CAACoB,mBAAmBtB,OAAO,CAAC,CAAC,CAACV,QAAQiC,UAAU;4BAC5DtE,sBAAsB;gCACpBoB;gCACAiB;gCACA6B,KAAK/C;gCACLmD;4BACF;wBACF;oBACF,OAAO;wBACLtE,sBAAsB;4BACpBoB;4BACA8C,KAAK/C;4BACLmD,WAAWH;4BACXpD;wBACF;oBACF;oBACA,OAAOI;gBACT;YACF;YAEA,IAAIC,MAAMC,IAAI,KAAK,QAAQ;gBACzB,MAAM,EAAEkD,QAAQ,EAAE,EAAE,GAAG9D,WAAW,CAAC,CAAC,EAAEF,YAAYiE,UAAU,CAAC,KAAK,KAAK,EAAEpD,MAAMM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE3F,IAAI+C;gBAGJ,IAAI1C,MAAMC,OAAO,CAACL,YAAY;oBAC5B,IAAIP,MAAMa,SAAS,EAAE;wBACnBwC,cAAc9C,UAAUT,MAAM,CAAC,CAACwD,YAAYvC;4BAC1C,IAAI,OAAOA,IAAIC,OAAO,KAAK,UAAU;gCACnC,IAAI,CAACsC,UAAU,CAACvC,IAAIC,OAAO,CAAC,EAAE;oCAC5BsC,UAAU,CAACvC,IAAIC,OAAO,CAAC,GAAG;wCACxBuC,MAAM,EAAE;wCACRC,aAAa;oCACf;gCACF;gCACAF,UAAU,CAACvC,IAAIC,OAAO,CAAC,CAACuC,IAAI,CAAC7C,IAAI,CAACK,IAAI0C,SAAS;4BACjD;4BAEA,OAAOH;wBACT,GAAG,CAAC;wBACJ1B,OAAO8B,IAAI,CAACL,aAAa1B,OAAO,CAAC,CAACV;4BAChCoC,WAAW,CAACpC,OAAO,CAACuC,WAAW,GAAGH,WAAW,CAACpC,OAAO,CAACsC,IAAI,CAAChB,MAAM,GAAGY;4BACpEE,WAAW,CAACpC,OAAO,CAACsC,IAAI,GAAGF,WAAW,CAACpC,OAAO,CAACsC,IAAI,CAACI,KAAK,CAAC,GAAGR;wBAC/D;oBACF,OAAO;wBACL,MAAMK,cAAcL,UAAU,KAAK5C,UAAUgC,MAAM,GAAGY;wBACtDE,cAAc;4BACZE,MAAMC,cAAcjD,UAAUoD,KAAK,CAAC,GAAGR,SAAS5C;4BAChDiD;wBACF;oBACF;gBACF;gBAEAzD,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG+C;gBACrB,OAAOtD;YACT;YAEA,IAAIC,MAAMC,IAAI,KAAK,UAAUD,OAAO0C,SAAS;gBAC3C,MAAMkB,gBAAgBlE,KAAK,CAAC,CAAC,EAAEE,cAAc,EAAEI,MAAMM,IAAI,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAACsD,eAAe;oBAClB,OAAO7D;gBACT;gBAEA,IAAIC,MAAMa,SAAS,EAAE;oBACnBd,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG,CAAC;oBACtB,MAAMuD,gBAA2D,CAAC;oBAElED,cAAcjC,OAAO,CAAC,CAACZ;wBACrB,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;4BAClC,IAAI,CAAC4C,aAAa,CAAC9C,IAAIE,MAAM,CAAC,EAAE;gCAC9B4C,aAAa,CAAC9C,IAAIE,MAAM,CAAC,GAAG,EAAE;4BAChC;4BACA4C,aAAa,CAAC9C,IAAIE,MAAM,CAAC,CAACP,IAAI,CAACK;wBACjC;oBACF;oBAEAa,OAAOC,OAAO,CAACgC,eAAelC,OAAO,CAAC,CAAC,CAACV,QAAQvB,MAAM;wBACpDf,qBAAqB;4BACnBqB;4BACAiB;4BACA6B,KAAK/C;4BACL+D,UAAUpE;wBACZ;oBACF;gBACF,OAAO;oBACLf,qBAAqB;wBACnBqB;wBACA8C,KAAK/C;wBACL+D,UAAUF;wBACVjE;oBACF;gBACF;gBAEA,OAAOI;YACT;YAEA,IAAIC,MAAMC,IAAI,KAAK,YAAYD,MAAM0C,OAAO,EAAE;gBAC5C,MAAMqB,kBAAkBzE,OAAO,CAAC,CAAC,EAAEM,cAAc,EAAEI,MAAMM,IAAI,CAAC,CAAC,CAAC;gBAChE,IAAI,CAACyD,iBAAiB;oBACpB,OAAOhE;gBACT;gBAEA,IAAIC,MAAMa,SAAS,EAAE;oBACnBd,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG,CAAC;oBACtB,MAAM0D,kBAA6D,CAAC;oBAEpED,gBAAgBpC,OAAO,CAAC,CAACZ;wBACvB,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;4BAClC,IAAI,CAAC+C,eAAe,CAACjD,IAAIE,MAAM,CAAC,EAAE;gCAChC+C,eAAe,CAACjD,IAAIE,MAAM,CAAC,GAAG,EAAE;4BAClC;4BACA+C,eAAe,CAACjD,IAAIE,MAAM,CAAC,CAACP,IAAI,CAACK;wBACnC;oBACF;oBAEAa,OAAOC,OAAO,CAACmC,iBAAiBrC,OAAO,CAAC,CAAC,CAACV,QAAQ3B,QAAQ;wBACxDZ,uBAAuB;4BACrBsB;4BACAiB;4BACAgD,YAAY3E;4BACZwD,KAAK/C;wBACP;oBACF;gBACF,OAAO;oBACLrB,uBAAuB;wBACrBsB;wBACAiE,YAAYF;wBACZjB,KAAK/C;wBACLJ;oBACF;gBACF;gBAEA,OAAOI;YACT;YAEA,IAAIC,MAAMC,IAAI,KAAK,YAAYD,MAAM0C,OAAO,EAAE;gBAC5C,IAAI/B,MAAMC,OAAO,CAACL,YAAY;oBAC5B,IAAIP,MAAMa,SAAS,EAAE;wBACnBd,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAGC,UAAUT,MAAM,CAAC,CAACoE,cAAcnD;4BACnD,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;gCAClC,IAAI,CAACiD,YAAY,CAACnD,IAAIE,MAAM,CAAC,EAAE;oCAC7BiD,YAAY,CAACnD,IAAIE,MAAM,CAAC,GAAG,EAAE;gCAC/B;gCACAiD,YAAY,CAACnD,IAAIE,MAAM,CAAC,CAACP,IAAI,CAACK,IAAIoD,KAAK;4BACzC;4BAEA,OAAOD;wBACT,GAAG,CAAC;oBACN,OAAO;wBACL,IAAIE,aAAa7D;wBACjB,IAAIZ,0BAA0B;4BAC5ByE,aAAaA,WAAWC,MAAM,CAAC,CAAC,EAAEpD,MAAM,EAAE,GAAKA,WAAWtB;wBAC5D;wBACAI,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAG8D,WAAWjE,GAAG,CAAC,CAAC,EAAEgE,KAAK,EAAE,GAAKA;oBACrD;gBACF;gBACA,OAAOpE;YACT;YAEA,IAAIC,MAAMa,SAAS,IAAIF,MAAMC,OAAO,CAACnB,MAAMmD,QAAQ,GAAG;gBACpD,IAAI,CAACnD,MAAMmD,QAAQ,CAACL,MAAM,IAAIzD,QAAQwF,OAAO,CAACtF,MAAM,CAACoD,YAAY,EAAE;oBACjEtD,QAAQwF,OAAO,CAACtF,MAAM,CAACoD,YAAY,CAACC,WAAW,CAACV,OAAO,CAAC,CAACX,UACvD,AAACvB,MAAMmD,QAAQ,CAAelC,IAAI,CAAC;4BAAEM;wBAAQ;gBAEjD;gBAEAvB,MAAMmD,QAAQ,CAACjB,OAAO,CAAC,CAACkB;oBACtBpC,kBAAkBC,IAAI,CAAC;wBACrBoC,KAAKtC;wBACLf,OAAO;4BACL,GAAGA,KAAK;4BACR,GAAGoD,SAAS;wBACd;oBACF;gBACF;YACF,OAAO;gBACLpC,kBAAkBC,IAAI,CAAC;oBAAEoC,KAAK/C;oBAAQN;gBAAM;YAC9C;YAEAgB,kBAAkBkB,OAAO,CAAC,CAAC,EAAEmB,GAAG,EAAErD,KAAK,EAAE;gBACvC,MAAMc,YAAYd,KAAK,CAAC,CAAC,EAAEN,eAAe,GAAG,EAAEa,MAAMM,IAAI,CAAC,CAAC,CAAC;gBAC5D,MAAMW,SAASxB,OAAOuB;gBACtB,IAAIuD,MAAMhE;gBAEV,OAAQP,MAAMC,IAAI;oBAChB,KAAK;oBACL,KAAK;wBAAS;4BACZ,MAAMuE,mBAAmB,CAAC,EAAErF,eAAe,GAAG,EAAEa,MAAMM,IAAI,CAAC,CAAC,CAAC;4BAC7D,MAAMmE,YAAY,CAAC;4BACnB,MAAMxD,SAASxB,MAAMuB,OAAO;4BAC5B,MAAM0D,SAAS1E,MAAMa,SAAS,IAAII,SAASA,SAASjB,MAAMM,IAAI;4BAE9D,IAAIN,MAAMa,SAAS,IAAII,QAAQ;gCAC7B,OAAOxB,MAAMuB,OAAO;4BACtB;4BACA8B,GAAG,CAAC4B,OAAO,GAAG7F,eAAwC;gCACpDC;gCACAC;gCACAC;gCACAC,SAASwF;gCACTvF;gCACAC,aAAaqF;gCACbpF,QAAQY,MAAMZ,MAAM;gCACpBE;gCACAC,MAAM,CAAC,EAAEK,cAAc,EAAEI,MAAMM,IAAI,CAAC,CAAC;gCACrCd;gCACAC;gCACAC;gCACAC,0BAA0BsB,UAAUtB;4BACtC;4BAEA,IAAI,YAAYmD,KAAK;gCACnB,OAAOA,IAAIxB,MAAM;4BACnB;4BAEA;wBACF;oBAEA,KAAK;wBAAQ;4BACX,IAAI,OAAOf,cAAc,UAAU;gCACjCgE,MAAMI,OAAOpE;4BACf;4BAEA;wBACF;oBAEA,KAAK;wBAAU;4BACb,IAAI,OAAOA,cAAc,UAAU;gCACjCgE,MAAMK,OAAOC,UAAU,CAACtE;4BAC1B;4BAEA;wBACF;oBAEA,KAAK;wBAAQ;4BACX,IAAI,OAAOA,cAAc,UAAU;gCACjCgE,MAAM,IAAIO,KAAKvE,WAAWwE,WAAW;4BACvC;4BAEA;wBACF;oBAEA,KAAK;oBACL,KAAK;wBAAU;4BACb,IACER,OACA,OAAOvE,MAAMyC,UAAU,KAAK,YAC5B3D,QAAQwF,OAAO,CAACU,WAAW,CAAChF,MAAMyC,UAAU,CAAC,CAACwC,YAAY,KAAK,UAC/D;gCACAV,MAAMK,OAAOL;4BACf;4BAEA;wBACF;oBAEA;wBAAS;4BACP;wBACF;gBACF;gBACA,IAAI,OAAOtD,WAAW,UAAU;oBAC9B6B,GAAG,CAAC7B,OAAO,GAAGsD;gBAChB,OAAO;oBACLxE,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAGiE;gBACvB;YACF;YAEA,IAAI3C,OAAO8B,IAAI,CAAClD,oBAAoB+B,MAAM,GAAG,GAAG;gBAC9CxC,MAAM,CAACC,MAAMM,IAAI,CAAC,GAAGE;YACvB;YAEA,OAAOT;QACT;QAEA,OAAOA;IACT,GAAGd;IAEH,IAAI0B,MAAMC,OAAO,CAACnB,MAAMmD,QAAQ,GAAG;QACjC1D,UAAUwB,IAAI,CAAC,IAAM,OAAOjB,MAAMmD,QAAQ;IAC5C;IAEA,OAAO/C;AACT,EAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DrizzleAdapter } from '../types.js';
|
|
2
|
+
import { extendDrizzleTable } from './extendDrizzleTable.js';
|
|
3
|
+
type DatabaseSchema = {
|
|
4
|
+
enums?: DrizzleAdapter['enums'];
|
|
5
|
+
relations: Record<string, any>;
|
|
6
|
+
tables: DrizzleAdapter['tables'];
|
|
7
|
+
};
|
|
8
|
+
type Adapter = {
|
|
9
|
+
afterSchemaInit: DatabaseSchemaHook[];
|
|
10
|
+
beforeSchemaInit: DatabaseSchemaHook[];
|
|
11
|
+
} & DatabaseSchema;
|
|
12
|
+
type DatabaseSchemaHookArgs = {
|
|
13
|
+
adapter: Record<string, unknown>;
|
|
14
|
+
extendTable: typeof extendDrizzleTable;
|
|
15
|
+
schema: DatabaseSchema;
|
|
16
|
+
};
|
|
17
|
+
type DatabaseSchemaHook = (args: DatabaseSchemaHookArgs) => DatabaseSchema | Promise<DatabaseSchema>;
|
|
18
|
+
type Args = {
|
|
19
|
+
adapter: Adapter;
|
|
20
|
+
type: 'afterSchemaInit' | 'beforeSchemaInit';
|
|
21
|
+
};
|
|
22
|
+
export declare const executeSchemaHooks: ({ type, adapter }: Args) => Promise<void>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=executeSchemaHooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeSchemaHooks.d.ts","sourceRoot":"","sources":["../../src/utilities/executeSchemaHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACjC,CAAA;AAED,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,kBAAkB,EAAE,CAAA;IACrC,gBAAgB,EAAE,kBAAkB,EAAE,CAAA;CACvC,GAAG,cAAc,CAAA;AAElB,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,kBAAkB,CAAA;IACtC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,sBAAsB,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAEpG,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,kBAAkB,sBAA6B,IAAI,KAAG,OAAO,CAAC,IAAI,CAkB9E,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { extendDrizzleTable } from './extendDrizzleTable.js';
|
|
2
|
+
export const executeSchemaHooks = async ({ type, adapter })=>{
|
|
3
|
+
for (const hook of adapter[type]){
|
|
4
|
+
const result = await hook({
|
|
5
|
+
adapter,
|
|
6
|
+
extendTable: extendDrizzleTable,
|
|
7
|
+
schema: {
|
|
8
|
+
enums: adapter.enums,
|
|
9
|
+
relations: adapter.relations,
|
|
10
|
+
tables: adapter.tables
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
if (result.enums) {
|
|
14
|
+
adapter.enums = result.enums;
|
|
15
|
+
}
|
|
16
|
+
adapter.tables = result.tables;
|
|
17
|
+
adapter.relations = result.relations;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=executeSchemaHooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/executeSchemaHooks.ts"],"sourcesContent":["import type { DrizzleAdapter } from '../types.js'\n\nimport { extendDrizzleTable } from './extendDrizzleTable.js'\n\ntype DatabaseSchema = {\n enums?: DrizzleAdapter['enums']\n relations: Record<string, any>\n tables: DrizzleAdapter['tables']\n}\n\ntype Adapter = {\n afterSchemaInit: DatabaseSchemaHook[]\n beforeSchemaInit: DatabaseSchemaHook[]\n} & DatabaseSchema\n\ntype DatabaseSchemaHookArgs = {\n adapter: Record<string, unknown>\n extendTable: typeof extendDrizzleTable\n schema: DatabaseSchema\n}\n\ntype DatabaseSchemaHook = (args: DatabaseSchemaHookArgs) => DatabaseSchema | Promise<DatabaseSchema>\n\ntype Args = {\n adapter: Adapter\n type: 'afterSchemaInit' | 'beforeSchemaInit'\n}\n\nexport const executeSchemaHooks = async ({ type, adapter }: Args): Promise<void> => {\n for (const hook of adapter[type]) {\n const result = await hook({\n adapter,\n extendTable: extendDrizzleTable,\n schema: {\n enums: adapter.enums,\n relations: adapter.relations,\n tables: adapter.tables,\n },\n })\n if (result.enums) {\n adapter.enums = result.enums\n }\n\n adapter.tables = result.tables\n adapter.relations = result.relations\n }\n}\n"],"names":["extendDrizzleTable","executeSchemaHooks","type","adapter","hook","result","extendTable","schema","enums","relations","tables"],"mappings":"AAEA,SAASA,kBAAkB,QAAQ,0BAAyB;AA0B5D,OAAO,MAAMC,qBAAqB,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAQ;IAC9D,KAAK,MAAMC,QAAQD,OAAO,CAACD,KAAK,CAAE;QAChC,MAAMG,SAAS,MAAMD,KAAK;YACxBD;YACAG,aAAaN;YACbO,QAAQ;gBACNC,OAAOL,QAAQK,KAAK;gBACpBC,WAAWN,QAAQM,SAAS;gBAC5BC,QAAQP,QAAQO,MAAM;YACxB;QACF;QACA,IAAIL,OAAOG,KAAK,EAAE;YAChBL,QAAQK,KAAK,GAAGH,OAAOG,KAAK;QAC9B;QAEAL,QAAQO,MAAM,GAAGL,OAAOK,MAAM;QAC9BP,QAAQM,SAAS,GAAGJ,OAAOI,SAAS;IACtC;AACF,EAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implemented from:
|
|
3
|
+
* https://github.com/drizzle-team/drizzle-orm/blob/main/drizzle-orm/src/pg-core/table.ts#L73
|
|
4
|
+
* Drizzle uses @internal JSDoc to remove their internal methods from types, for example
|
|
5
|
+
* Table.Symbol, columnBuilder.build - but they actually exist.
|
|
6
|
+
*/
|
|
7
|
+
import type { ColumnBuilderBase } from 'drizzle-orm';
|
|
8
|
+
import { Table } from 'drizzle-orm';
|
|
9
|
+
type Args = {
|
|
10
|
+
columns?: Record<string, ColumnBuilderBase<any>>;
|
|
11
|
+
extraConfig?: (self: Record<string, any>) => object;
|
|
12
|
+
table: Table;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Extends the passed table with additional columns / extra config
|
|
16
|
+
*/
|
|
17
|
+
export declare const extendDrizzleTable: ({ columns, extraConfig, table }: Args) => void;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=extendDrizzleTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extendDrizzleTable.d.ts","sourceRoot":"","sources":["../../src/utilities/extendDrizzleTable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAWnC,KAAK,IAAI,GAAG;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAA;IACnD,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oCAAqC,IAAI,KAAG,IAkC1E,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implemented from:
|
|
3
|
+
* https://github.com/drizzle-team/drizzle-orm/blob/main/drizzle-orm/src/pg-core/table.ts#L73
|
|
4
|
+
* Drizzle uses @internal JSDoc to remove their internal methods from types, for example
|
|
5
|
+
* Table.Symbol, columnBuilder.build - but they actually exist.
|
|
6
|
+
*/ import { Table } from 'drizzle-orm';
|
|
7
|
+
import { APIError } from 'payload';
|
|
8
|
+
const { Symbol: DrizzleSymbol } = Table;
|
|
9
|
+
/**
|
|
10
|
+
* Extends the passed table with additional columns / extra config
|
|
11
|
+
*/ export const extendDrizzleTable = ({ columns, extraConfig, table })=>{
|
|
12
|
+
const InlineForeignKeys = Object.getOwnPropertySymbols(table).find((symbol)=>{
|
|
13
|
+
return symbol.description?.includes('InlineForeignKeys');
|
|
14
|
+
});
|
|
15
|
+
if (!InlineForeignKeys) {
|
|
16
|
+
throw new APIError(`Error when finding InlineForeignKeys Symbol`, 500);
|
|
17
|
+
}
|
|
18
|
+
if (columns) {
|
|
19
|
+
for (const [name, columnBuilder] of Object.entries(columns)){
|
|
20
|
+
const column = columnBuilder.build(table);
|
|
21
|
+
table[name] = column;
|
|
22
|
+
table[InlineForeignKeys].push(...columnBuilder.buildForeignKeys(column, table));
|
|
23
|
+
table[DrizzleSymbol.Columns][name] = column;
|
|
24
|
+
table[DrizzleSymbol.ExtraConfigColumns][name] = 'buildExtraConfigColumn' in columnBuilder ? columnBuilder.buildExtraConfigColumn(table) : column;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (extraConfig) {
|
|
28
|
+
const originalExtraConfigBuilder = table[DrizzleSymbol.ExtraConfigBuilder];
|
|
29
|
+
table[DrizzleSymbol.ExtraConfigBuilder] = (t)=>{
|
|
30
|
+
return {
|
|
31
|
+
...originalExtraConfigBuilder(t),
|
|
32
|
+
...extraConfig(t)
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=extendDrizzleTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/extendDrizzleTable.ts"],"sourcesContent":["/**\n * Implemented from:\n * https://github.com/drizzle-team/drizzle-orm/blob/main/drizzle-orm/src/pg-core/table.ts#L73\n * Drizzle uses @internal JSDoc to remove their internal methods from types, for example\n * Table.Symbol, columnBuilder.build - but they actually exist.\n */\nimport type { ColumnBuilderBase } from 'drizzle-orm'\n\nimport { Table } from 'drizzle-orm'\nimport { APIError } from 'payload'\n\nconst { Symbol: DrizzleSymbol } = Table as unknown as {\n Symbol: {\n Columns: symbol\n ExtraConfigBuilder: symbol\n ExtraConfigColumns: symbol\n }\n}\n\ntype Args = {\n columns?: Record<string, ColumnBuilderBase<any>>\n extraConfig?: (self: Record<string, any>) => object\n table: Table\n}\n\n/**\n * Extends the passed table with additional columns / extra config\n */\nexport const extendDrizzleTable = ({ columns, extraConfig, table }: Args): void => {\n const InlineForeignKeys = Object.getOwnPropertySymbols(table).find((symbol) => {\n return symbol.description?.includes('InlineForeignKeys')\n })\n\n if (!InlineForeignKeys) {\n throw new APIError(`Error when finding InlineForeignKeys Symbol`, 500)\n }\n\n if (columns) {\n for (const [name, columnBuilder] of Object.entries(columns) as [string, any][]) {\n const column = columnBuilder.build(table)\n\n table[name] = column\n table[InlineForeignKeys].push(...columnBuilder.buildForeignKeys(column, table))\n table[DrizzleSymbol.Columns][name] = column\n\n table[DrizzleSymbol.ExtraConfigColumns][name] =\n 'buildExtraConfigColumn' in columnBuilder\n ? columnBuilder.buildExtraConfigColumn(table)\n : column\n }\n }\n\n if (extraConfig) {\n const originalExtraConfigBuilder = table[DrizzleSymbol.ExtraConfigBuilder]\n\n table[DrizzleSymbol.ExtraConfigBuilder] = (t) => {\n return {\n ...originalExtraConfigBuilder(t),\n ...extraConfig(t),\n }\n }\n }\n}\n"],"names":["Table","APIError","Symbol","DrizzleSymbol","extendDrizzleTable","columns","extraConfig","table","InlineForeignKeys","Object","getOwnPropertySymbols","find","symbol","description","includes","name","columnBuilder","entries","column","build","push","buildForeignKeys","Columns","ExtraConfigColumns","buildExtraConfigColumn","originalExtraConfigBuilder","ExtraConfigBuilder","t"],"mappings":"AAAA;;;;;CAKC,GAGD,SAASA,KAAK,QAAQ,cAAa;AACnC,SAASC,QAAQ,QAAQ,UAAS;AAElC,MAAM,EAAEC,QAAQC,aAAa,EAAE,GAAGH;AAclC;;CAEC,GACD,OAAO,MAAMI,qBAAqB,CAAC,EAAEC,OAAO,EAAEC,WAAW,EAAEC,KAAK,EAAQ;IACtE,MAAMC,oBAAoBC,OAAOC,qBAAqB,CAACH,OAAOI,IAAI,CAAC,CAACC;QAClE,OAAOA,OAAOC,WAAW,EAAEC,SAAS;IACtC;IAEA,IAAI,CAACN,mBAAmB;QACtB,MAAM,IAAIP,SAAS,CAAC,2CAA2C,CAAC,EAAE;IACpE;IAEA,IAAII,SAAS;QACX,KAAK,MAAM,CAACU,MAAMC,cAAc,IAAIP,OAAOQ,OAAO,CAACZ,SAA6B;YAC9E,MAAMa,SAASF,cAAcG,KAAK,CAACZ;YAEnCA,KAAK,CAACQ,KAAK,GAAGG;YACdX,KAAK,CAACC,kBAAkB,CAACY,IAAI,IAAIJ,cAAcK,gBAAgB,CAACH,QAAQX;YACxEA,KAAK,CAACJ,cAAcmB,OAAO,CAAC,CAACP,KAAK,GAAGG;YAErCX,KAAK,CAACJ,cAAcoB,kBAAkB,CAAC,CAACR,KAAK,GAC3C,4BAA4BC,gBACxBA,cAAcQ,sBAAsB,CAACjB,SACrCW;QACR;IACF;IAEA,IAAIZ,aAAa;QACf,MAAMmB,6BAA6BlB,KAAK,CAACJ,cAAcuB,kBAAkB,CAAC;QAE1EnB,KAAK,CAACJ,cAAcuB,kBAAkB,CAAC,GAAG,CAACC;YACzC,OAAO;gBACL,GAAGF,2BAA2BE,EAAE;gBAChC,GAAGrB,YAAYqB,EAAE;YACnB;QACF;IACF;AACF,EAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/drizzle",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.110",
|
|
4
4
|
"description": "A library of shared functions used by different payload database adapters",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"@types/pg": "8.10.2",
|
|
47
47
|
"@types/to-snake-case": "1.0.0",
|
|
48
48
|
"@payloadcms/eslint-config": "3.0.0-beta.97",
|
|
49
|
-
"payload": "3.0.0-beta.
|
|
49
|
+
"payload": "3.0.0-beta.110"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"payload": "3.0.0-beta.
|
|
52
|
+
"payload": "3.0.0-beta.110"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "pnpm build:swc && pnpm build:types",
|