@payloadcms/drizzle 3.8.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/find/chainMethods.d.ts +3 -4
- package/dist/find/chainMethods.d.ts.map +1 -1
- package/dist/find/chainMethods.js.map +1 -1
- package/dist/find/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +1 -0
- package/dist/find/findMany.js.map +1 -1
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +35 -72
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/queries/buildAndOrConditions.d.ts +2 -1
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +2 -1
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/buildQuery.d.ts +2 -1
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +2 -1
- package/dist/queries/buildQuery.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 +19 -1
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/parseParams.d.ts +2 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +3 -1
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
- package/dist/queries/sanitizeQueryValue.js +7 -0
- package/dist/queries/sanitizeQueryValue.js.map +1 -1
- package/dist/transform/read/traverseFields.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.js +11 -10
- package/dist/transform/read/traverseFields.js.map +1 -1
- package/dist/utilities/json.d.ts +9 -0
- package/dist/utilities/json.d.ts.map +1 -0
- package/dist/utilities/json.js +28 -0
- package/dist/utilities/json.js.map +1 -0
- package/dist/utilities/rawConstraint.d.ts +9 -0
- package/dist/utilities/rawConstraint.d.ts.map +1 -0
- package/dist/utilities/rawConstraint.js +12 -0
- package/dist/utilities/rawConstraint.js.map +1 -0
- package/package.json +3 -3
- /package/{license.md → LICENSE.md} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { FlattenedField, JoinQuery, SanitizedConfig } 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: FlattenedField[]\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 (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n let 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.flattenedFields,\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.flattenedFields,\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.flattenedFields,\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.flattenedFields,\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 = field.defaultLimit ?? 10 } =\n joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\n\n // raw hasMany results from SQLite\n if (typeof fieldData === 'string') {\n fieldData = JSON.parse(fieldData)\n }\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).map(({ id }) => ({\n id,\n })),\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 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'group':\n case 'tab': {\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.flattenedFields,\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 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'point': {\n if (typeof fieldData === 'string') {\n val = JSON.parse(fieldData)\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 case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\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 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":["fieldIsVirtual","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","type","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","flattenedFields","_order","acc","i","blockFieldPath","blocksByPath","forEach","Object","entries","localizedBlocks","map","block","find","slug","blockType","blockResult","localization","localeCodes","localeIndex","length","_index","relationTo","hasMany","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","limit","defaultLimit","replaceAll","JSON","parse","fieldResult","joinResult","docs","hasNextPage","_parentID","keys","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","selectData","filter","payload","val","Date","toISOString","groupFieldPrefix","groupData","refKey","Number","parseFloat","collections","customIDType","String"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { FlattenedField, JoinQuery, SanitizedConfig } 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: FlattenedField[]\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 (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n let 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.flattenedFields,\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.flattenedFields,\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.flattenedFields,\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.flattenedFields,\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 = field.defaultLimit ?? 10 } =\n joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\n\n // raw hasMany results from SQLite\n if (typeof fieldData === 'string') {\n fieldData = JSON.parse(fieldData)\n }\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 && adapter.payload.config.localization) {\n fieldResult = fieldData.reduce(\n (joinResult, row) => {\n if (typeof row.locale === 'string') {\n joinResult[row.locale].docs.push(row.id)\n }\n\n return joinResult\n },\n\n // initialize with defaults so empty won't be undefined\n adapter.payload.config.localization.localeCodes.reduce((acc, code) => {\n acc[code] = {\n docs: [],\n hasNextPage: false,\n }\n return acc\n }, {}),\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).map(({ id }) => ({\n id,\n })),\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 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'group':\n case 'tab': {\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.flattenedFields,\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 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'point': {\n if (typeof fieldData === 'string') {\n val = JSON.parse(fieldData)\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 case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\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 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":["fieldIsVirtual","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","type","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","flattenedFields","_order","acc","i","blockFieldPath","blocksByPath","forEach","Object","entries","localizedBlocks","map","block","find","slug","blockType","blockResult","localization","localeCodes","localeIndex","length","_index","relationTo","hasMany","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","limit","defaultLimit","replaceAll","JSON","parse","fieldResult","payload","joinResult","docs","code","hasNextPage","keys","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","selectData","filter","val","Date","toISOString","groupFieldPrefix","groupData","refKey","Number","parseFloat","collections","customIDType","String"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Column, SQL } from 'drizzle-orm';
|
|
2
|
+
import type { DrizzleAdapter } from '../types.js';
|
|
3
|
+
export declare function jsonAgg(adapter: DrizzleAdapter, expression: SQL): SQL<unknown>;
|
|
4
|
+
/**
|
|
5
|
+
* @param shape Potential for SQL injections, so you shouldn't allow user-specified key names
|
|
6
|
+
*/
|
|
7
|
+
export declare function jsonBuildObject<T extends Record<string, Column | SQL>>(adapter: DrizzleAdapter, shape: T): SQL<unknown>;
|
|
8
|
+
export declare const jsonAggBuildObject: <T extends Record<string, Column | SQL>>(adapter: DrizzleAdapter, shape: T) => SQL<unknown>;
|
|
9
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utilities/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAI9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,gBAM/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,EACpE,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,CAAC,gBAiBT;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,WAC9D,cAAc,SAChB,CAAC,iBAGT,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { sql } from 'drizzle-orm';
|
|
2
|
+
export function jsonAgg(adapter, expression) {
|
|
3
|
+
if (adapter.name === 'sqlite') {
|
|
4
|
+
return sql`coalesce(json_group_array(${expression}), '[]')`;
|
|
5
|
+
}
|
|
6
|
+
return sql`coalesce(json_agg(${expression}), '[]'::json)`;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @param shape Potential for SQL injections, so you shouldn't allow user-specified key names
|
|
10
|
+
*/ export function jsonBuildObject(adapter, shape) {
|
|
11
|
+
const chunks = [];
|
|
12
|
+
Object.entries(shape).forEach(([key, value])=>{
|
|
13
|
+
if (chunks.length > 0) {
|
|
14
|
+
chunks.push(sql.raw(','));
|
|
15
|
+
}
|
|
16
|
+
chunks.push(sql.raw(`'${key}',`));
|
|
17
|
+
chunks.push(sql`${value}`);
|
|
18
|
+
});
|
|
19
|
+
if (adapter.name === 'sqlite') {
|
|
20
|
+
return sql`json_object(${sql.join(chunks)})`;
|
|
21
|
+
}
|
|
22
|
+
return sql`json_build_object(${sql.join(chunks)})`;
|
|
23
|
+
}
|
|
24
|
+
export const jsonAggBuildObject = (adapter, shape)=>{
|
|
25
|
+
return jsonAgg(adapter, jsonBuildObject(adapter, shape));
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/json.ts"],"sourcesContent":["import type { Column, SQL } from 'drizzle-orm'\n\nimport { sql } from 'drizzle-orm'\n\nimport type { DrizzleAdapter } from '../types.js'\n\nexport function jsonAgg(adapter: DrizzleAdapter, expression: SQL) {\n if (adapter.name === 'sqlite') {\n return sql`coalesce(json_group_array(${expression}), '[]')`\n }\n\n return sql`coalesce(json_agg(${expression}), '[]'::json)`\n}\n\n/**\n * @param shape Potential for SQL injections, so you shouldn't allow user-specified key names\n */\nexport function jsonBuildObject<T extends Record<string, Column | SQL>>(\n adapter: DrizzleAdapter,\n shape: T,\n) {\n const chunks: SQL[] = []\n\n Object.entries(shape).forEach(([key, value]) => {\n if (chunks.length > 0) {\n chunks.push(sql.raw(','))\n }\n chunks.push(sql.raw(`'${key}',`))\n chunks.push(sql`${value}`)\n })\n\n if (adapter.name === 'sqlite') {\n return sql`json_object(${sql.join(chunks)})`\n }\n\n return sql`json_build_object(${sql.join(chunks)})`\n}\n\nexport const jsonAggBuildObject = <T extends Record<string, Column | SQL>>(\n adapter: DrizzleAdapter,\n shape: T,\n) => {\n return jsonAgg(adapter, jsonBuildObject(adapter, shape))\n}\n"],"names":["sql","jsonAgg","adapter","expression","name","jsonBuildObject","shape","chunks","Object","entries","forEach","key","value","length","push","raw","join","jsonAggBuildObject"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AAIjC,OAAO,SAASC,QAAQC,OAAuB,EAAEC,UAAe;IAC9D,IAAID,QAAQE,IAAI,KAAK,UAAU;QAC7B,OAAOJ,GAAG,CAAC,0BAA0B,EAAEG,WAAW,QAAQ,CAAC;IAC7D;IAEA,OAAOH,GAAG,CAAC,kBAAkB,EAAEG,WAAW,cAAc,CAAC;AAC3D;AAEA;;CAEC,GACD,OAAO,SAASE,gBACdH,OAAuB,EACvBI,KAAQ;IAER,MAAMC,SAAgB,EAAE;IAExBC,OAAOC,OAAO,CAACH,OAAOI,OAAO,CAAC,CAAC,CAACC,KAAKC,MAAM;QACzC,IAAIL,OAAOM,MAAM,GAAG,GAAG;YACrBN,OAAOO,IAAI,CAACd,IAAIe,GAAG,CAAC;QACtB;QACAR,OAAOO,IAAI,CAACd,IAAIe,GAAG,CAAC,CAAC,CAAC,EAAEJ,IAAI,EAAE,CAAC;QAC/BJ,OAAOO,IAAI,CAACd,GAAG,CAAC,EAAEY,MAAM,CAAC;IAC3B;IAEA,IAAIV,QAAQE,IAAI,KAAK,UAAU;QAC7B,OAAOJ,GAAG,CAAC,YAAY,EAAEA,IAAIgB,IAAI,CAACT,QAAQ,CAAC,CAAC;IAC9C;IAEA,OAAOP,GAAG,CAAC,kBAAkB,EAAEA,IAAIgB,IAAI,CAACT,QAAQ,CAAC,CAAC;AACpD;AAEA,OAAO,MAAMU,qBAAqB,CAChCf,SACAI;IAEA,OAAOL,QAAQC,SAASG,gBAAgBH,SAASI;AACnD,EAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* You can use this to inject a raw query to where
|
|
3
|
+
*/
|
|
4
|
+
export declare const rawConstraint: (value: unknown) => {
|
|
5
|
+
type: symbol;
|
|
6
|
+
value: unknown;
|
|
7
|
+
};
|
|
8
|
+
export declare const isRawConstraint: (value: unknown) => value is ReturnType<typeof rawConstraint>;
|
|
9
|
+
//# sourceMappingURL=rawConstraint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rawConstraint.d.ts","sourceRoot":"","sources":["../../src/utilities/rawConstraint.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,aAAa,UAAW,OAAO;;;CAG1C,CAAA;AAEF,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,KAAK,IAAI,UAAU,CAAC,OAAO,aAAa,CAExF,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const RawConstraintSymbol = Symbol('RawConstraint');
|
|
2
|
+
/**
|
|
3
|
+
* You can use this to inject a raw query to where
|
|
4
|
+
*/ export const rawConstraint = (value)=>({
|
|
5
|
+
type: RawConstraintSymbol,
|
|
6
|
+
value
|
|
7
|
+
});
|
|
8
|
+
export const isRawConstraint = (value)=>{
|
|
9
|
+
return value && typeof value === 'object' && 'type' in value && value.type === RawConstraintSymbol;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=rawConstraint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/rawConstraint.ts"],"sourcesContent":["const RawConstraintSymbol = Symbol('RawConstraint')\n\n/**\n * You can use this to inject a raw query to where\n */\nexport const rawConstraint = (value: unknown) => ({\n type: RawConstraintSymbol,\n value,\n})\n\nexport const isRawConstraint = (value: unknown): value is ReturnType<typeof rawConstraint> => {\n return value && typeof value === 'object' && 'type' in value && value.type === RawConstraintSymbol\n}\n"],"names":["RawConstraintSymbol","Symbol","rawConstraint","value","type","isRawConstraint"],"mappings":"AAAA,MAAMA,sBAAsBC,OAAO;AAEnC;;CAEC,GACD,OAAO,MAAMC,gBAAgB,CAACC,QAAoB,CAAA;QAChDC,MAAMJ;QACNG;IACF,CAAA,EAAE;AAEF,OAAO,MAAME,kBAAkB,CAACF;IAC9B,OAAOA,SAAS,OAAOA,UAAU,YAAY,UAAUA,SAASA,MAAMC,IAAI,KAAKJ;AACjF,EAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/drizzle",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
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.
|
|
56
|
+
"payload": "3.9.0"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"payload": "3.
|
|
59
|
+
"payload": "3.9.0"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "pnpm build:swc && pnpm build:types",
|
|
File without changes
|