@extravirgin/payload-enchants-translator 1.0.2 → 1.0.3
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.
|
@@ -29,7 +29,7 @@ export const traverseFields = ({ dataFrom, emptyOnly, fields, localizedParent, s
|
|
|
29
29
|
{
|
|
30
30
|
const groupDataFrom = siblingDataFrom[field.name];
|
|
31
31
|
if (!groupDataFrom) break;
|
|
32
|
-
let groupDataTranslated = siblingDataTranslated[field.name]
|
|
32
|
+
let groupDataTranslated = siblingDataTranslated[field.name];
|
|
33
33
|
if (!groupDataTranslated) {
|
|
34
34
|
groupDataTranslated = {
|
|
35
35
|
id: ObjectID().toHexString()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/translate/traverseFields.ts"],"sourcesContent":["import ObjectID from 'bson-objectid';\nimport type { Field } from 'payload';\nimport { tabHasName } from 'payload/shared';\n\nimport { isEmpty } from '../utils/isEmpty';\nimport { traverseRichText } from './traverseRichText';\nimport type { ValueToTranslate } from './types';\n\nexport const traverseFields = ({\n dataFrom,\n emptyOnly,\n fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n}: {\n dataFrom: Record<string, unknown>;\n emptyOnly?: boolean;\n fields: Field[];\n localizedParent?: boolean;\n siblingDataFrom?: Record<string, unknown>;\n siblingDataTranslated?: Record<string, unknown>;\n translatedData: Record<string, unknown>;\n valuesToTranslate: ValueToTranslate[];\n}) => {\n siblingDataFrom = siblingDataFrom ?? dataFrom;\n siblingDataTranslated = siblingDataTranslated ?? translatedData;\n\n for (const field of fields) {\n switch (field.type) {\n case 'tabs':\n for (const tab of field.tabs) {\n const hasName = tabHasName(tab);\n\n const tabDataFrom = hasName\n ? (siblingDataFrom[tab.name] as Record<string, unknown>)\n : siblingDataFrom;\n\n if (!tabDataFrom) return;\n\n const tabDataTranslated = hasName\n ? ((siblingDataTranslated[tab.name] as Record<string, unknown>) ?? {})\n : siblingDataTranslated;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: tab.fields,\n localizedParent: tab.localized,\n siblingDataFrom: tabDataFrom,\n siblingDataTranslated: tabDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n }\n\n break;\n\n case 'group': {\n const groupDataFrom = siblingDataFrom[field.name] as Record<string, unknown>;\n\n if (!groupDataFrom) break;\n\n let groupDataTranslated =\n (siblingDataTranslated[field.name] as Record<string, unknown>) ?? {};\n\n if (!groupDataTranslated) {\n groupDataTranslated = {id: ObjectID().toHexString()};\n siblingDataTranslated[field.name] = groupDataTranslated;\n }\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: groupDataFrom,\n siblingDataTranslated: groupDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n\n break;\n }\n\n case 'array': {\n const arrayDataFrom = siblingDataFrom[field.name] as {\n id: string;\n }[];\n\n if (isEmpty(arrayDataFrom)) break;\n\n let arrayDataTranslated =\n (siblingDataTranslated[field.name] as { id: string }[] | undefined) ?? [];\n\n if (field.localized || localizedParent) {\n if (arrayDataTranslated.length > 0 && emptyOnly) break;\n\n arrayDataTranslated = arrayDataFrom.map(() => ({\n id: ObjectID().toHexString(),\n }));\n }\n\n arrayDataTranslated.forEach((item, index) => {\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: arrayDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = arrayDataTranslated;\n\n break;\n }\n\n case 'blocks': {\n const blocksDataFrom = siblingDataFrom[field.name] as {\n blockType: string;\n id: string;\n }[];\n\n if (isEmpty(blocksDataFrom)) break;\n\n let blocksDataTranslated =\n (siblingDataTranslated[field.name] as { blockType: string; id: string }[] | undefined) ??\n [];\n\n if (field.localized || localizedParent) {\n if (blocksDataTranslated.length > 0 && emptyOnly) break;\n\n blocksDataTranslated = blocksDataFrom.map(({ blockType }) => ({\n blockType,\n id: ObjectID().toHexString(),\n }));\n }\n\n blocksDataTranslated.forEach((item, index) => {\n const block = field.blocks.find((each: Record<string, unknown>) => each.slug === item.blockType);\n\n if (!block) return;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: blocksDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = blocksDataTranslated;\n\n break;\n }\n\n case 'collapsible':\n case 'row':\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n break;\n\n // long ass cases here we have\n case 'date':\n case 'checkbox':\n case 'json':\n case 'code':\n case 'email':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'select':\n case 'upload':\n siblingDataTranslated[field.name] = siblingDataFrom[field.name];\n\n break;\n\n case 'text':\n case 'textarea':\n if (field.custom && typeof field.custom === 'object' && field.custom.translatorSkip) break;\n\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n // do not translate the block ID or admin-facing label\n if (field.name === 'blockName' || field.name === 'id') {\n break;\n }\n\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingDataTranslated[field.name] = translated;\n },\n value: siblingDataFrom[field.name],\n });\n break;\n\n case 'richText': {\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n const richTextDataFrom = siblingDataFrom[field.name] as object;\n\n siblingDataTranslated[field.name] = richTextDataFrom;\n\n if (!richTextDataFrom) break;\n\n const isSlate = Array.isArray(richTextDataFrom);\n\n const isLexical = 'root' in richTextDataFrom;\n\n if (!isSlate && !isLexical) break;\n\n if (isLexical) {\n const root = (siblingDataTranslated[field.name] as Record<string, unknown>)\n ?.root as Record<string, unknown>;\n\n if (root) {\n traverseRichText({\n onText: (siblingData)=>{\n valuesToTranslate.push({\n onTranslate: (translated: string)=>{\n siblingData.text = translated;\n },\n value: siblingData.text\n });\n },\n root\n });\n\n const richTextBlocksGetSubFields = (field.editor as any)?.editorConfig?.features?.getSubFields?.get('block');\n if (typeof richTextBlocksGetSubFields !== 'function') break;\n const richTextBlocks = richTextBlocksGetSubFields('block');\n const richTextBlockDataFrom = (richTextDataFrom.root as Record<string, unknown>)?.children;\n if (isEmpty(richTextBlockDataFrom) || !Array.isArray(richTextBlockDataFrom) || isEmpty(richTextBlocks)) break;\n let richTextBlocksDataTranslated = ((siblingDataTranslated[field.name] as Record<string, unknown>)?.root as Record<string, unknown>)?.children as Record<string, unknown>[] ?? [];\n\n if (field.localized || localizedParent) {\n if (richTextBlocksDataTranslated.length > 0 && emptyOnly) break;\n richTextBlocksDataTranslated = richTextBlockDataFrom.map((blockData)=>{\n if (blockData?.fields?.blockType) {\n return {\n ...blockData,\n fields: {\n blockType: blockData?.fields?.blockType,\n id: ObjectID().toHexString()\n }\n }\n }\n return blockData;\n });\n }\n\n richTextBlocksDataTranslated.forEach((item, index)=>{\n const block = richTextBlocks[0].blocks.find((each: Record<string, unknown>)=>each.slug && each.slug === (item.fields as Record<string, unknown>).blockType);\n if (!block) return;\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: richTextBlockDataFrom[index].fields,\n siblingDataTranslated: item.fields as Record<string, unknown>,\n translatedData,\n valuesToTranslate\n });\n });\n ((siblingDataTranslated[field.name] as Record<string, unknown>).root as Record<string, unknown>).children = richTextBlocksDataTranslated;\n }\n } else {\n for (const root of siblingDataTranslated[field.name] as unknown[]) {\n traverseRichText({\n onText: (siblingData) => {\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingData.text = translated;\n },\n value: siblingData.text,\n });\n },\n root: root as Record<string, unknown>,\n });\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n }\n};\n"],"names":["ObjectID","tabHasName","isEmpty","traverseRichText","traverseFields","dataFrom","emptyOnly","fields","localizedParent","siblingDataFrom","siblingDataTranslated","translatedData","valuesToTranslate","field","type","tab","tabs","hasName","tabDataFrom","name","tabDataTranslated","localized","groupDataFrom","groupDataTranslated","id","toHexString","arrayDataFrom","arrayDataTranslated","length","map","forEach","item","index","blocksDataFrom","blocksDataTranslated","blockType","block","blocks","find","each","slug","custom","translatorSkip","push","onTranslate","translated","value","richTextDataFrom","isSlate","Array","isArray","isLexical","root","onText","siblingData","text","richTextBlocksGetSubFields","editor","editorConfig","features","getSubFields","get","richTextBlocks","richTextBlockDataFrom","children","richTextBlocksDataTranslated","blockData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/translate/traverseFields.ts"],"sourcesContent":["import ObjectID from 'bson-objectid';\nimport type { Field } from 'payload';\nimport { tabHasName } from 'payload/shared';\n\nimport { isEmpty } from '../utils/isEmpty';\nimport { traverseRichText } from './traverseRichText';\nimport type { ValueToTranslate } from './types';\n\nexport const traverseFields = ({\n dataFrom,\n emptyOnly,\n fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n}: {\n dataFrom: Record<string, unknown>;\n emptyOnly?: boolean;\n fields: Field[];\n localizedParent?: boolean;\n siblingDataFrom?: Record<string, unknown>;\n siblingDataTranslated?: Record<string, unknown>;\n translatedData: Record<string, unknown>;\n valuesToTranslate: ValueToTranslate[];\n}) => {\n siblingDataFrom = siblingDataFrom ?? dataFrom;\n siblingDataTranslated = siblingDataTranslated ?? translatedData;\n\n for (const field of fields) {\n switch (field.type) {\n case 'tabs':\n for (const tab of field.tabs) {\n const hasName = tabHasName(tab);\n\n const tabDataFrom = hasName\n ? (siblingDataFrom[tab.name] as Record<string, unknown>)\n : siblingDataFrom;\n\n if (!tabDataFrom) return;\n\n const tabDataTranslated = hasName\n ? ((siblingDataTranslated[tab.name] as Record<string, unknown>) ?? {})\n : siblingDataTranslated;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: tab.fields,\n localizedParent: tab.localized,\n siblingDataFrom: tabDataFrom,\n siblingDataTranslated: tabDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n }\n\n break;\n\n case 'group': {\n const groupDataFrom = siblingDataFrom[field.name] as Record<string, unknown>;\n\n if (!groupDataFrom) break;\n\n let groupDataTranslated =\n (siblingDataTranslated[field.name] as Record<string, unknown>);\n\n if (!groupDataTranslated) {\n groupDataTranslated = {id: ObjectID().toHexString()};\n siblingDataTranslated[field.name] = groupDataTranslated;\n }\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: groupDataFrom,\n siblingDataTranslated: groupDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n\n break;\n }\n\n case 'array': {\n const arrayDataFrom = siblingDataFrom[field.name] as {\n id: string;\n }[];\n\n if (isEmpty(arrayDataFrom)) break;\n\n let arrayDataTranslated =\n (siblingDataTranslated[field.name] as { id: string }[] | undefined) ?? [];\n\n if (field.localized || localizedParent) {\n if (arrayDataTranslated.length > 0 && emptyOnly) break;\n\n arrayDataTranslated = arrayDataFrom.map(() => ({\n id: ObjectID().toHexString(),\n }));\n }\n\n arrayDataTranslated.forEach((item, index) => {\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: arrayDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = arrayDataTranslated;\n\n break;\n }\n\n case 'blocks': {\n const blocksDataFrom = siblingDataFrom[field.name] as {\n blockType: string;\n id: string;\n }[];\n\n if (isEmpty(blocksDataFrom)) break;\n\n let blocksDataTranslated =\n (siblingDataTranslated[field.name] as { blockType: string; id: string }[] | undefined) ??\n [];\n\n if (field.localized || localizedParent) {\n if (blocksDataTranslated.length > 0 && emptyOnly) break;\n\n blocksDataTranslated = blocksDataFrom.map(({ blockType }) => ({\n blockType,\n id: ObjectID().toHexString(),\n }));\n }\n\n blocksDataTranslated.forEach((item, index) => {\n const block = field.blocks.find((each: Record<string, unknown>) => each.slug === item.blockType);\n\n if (!block) return;\n\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: blocksDataFrom[index],\n siblingDataTranslated: item,\n translatedData,\n valuesToTranslate,\n });\n });\n\n siblingDataTranslated[field.name] = blocksDataTranslated;\n\n break;\n }\n\n case 'collapsible':\n case 'row':\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: field.fields,\n localizedParent,\n siblingDataFrom,\n siblingDataTranslated,\n translatedData,\n valuesToTranslate,\n });\n break;\n\n // long ass cases here we have\n case 'date':\n case 'checkbox':\n case 'json':\n case 'code':\n case 'email':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'select':\n case 'upload':\n siblingDataTranslated[field.name] = siblingDataFrom[field.name];\n\n break;\n\n case 'text':\n case 'textarea':\n if (field.custom && typeof field.custom === 'object' && field.custom.translatorSkip) break;\n\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n // do not translate the block ID or admin-facing label\n if (field.name === 'blockName' || field.name === 'id') {\n break;\n }\n\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingDataTranslated[field.name] = translated;\n },\n value: siblingDataFrom[field.name],\n });\n break;\n\n case 'richText': {\n if (!(field.localized || localizedParent) || isEmpty(siblingDataFrom[field.name])) break;\n if (emptyOnly && siblingDataTranslated[field.name]) break;\n\n const richTextDataFrom = siblingDataFrom[field.name] as object;\n\n siblingDataTranslated[field.name] = richTextDataFrom;\n\n if (!richTextDataFrom) break;\n\n const isSlate = Array.isArray(richTextDataFrom);\n\n const isLexical = 'root' in richTextDataFrom;\n\n if (!isSlate && !isLexical) break;\n\n if (isLexical) {\n const root = (siblingDataTranslated[field.name] as Record<string, unknown>)\n ?.root as Record<string, unknown>;\n\n if (root) {\n traverseRichText({\n onText: (siblingData)=>{\n valuesToTranslate.push({\n onTranslate: (translated: string)=>{\n siblingData.text = translated;\n },\n value: siblingData.text\n });\n },\n root\n });\n\n const richTextBlocksGetSubFields = (field.editor as any)?.editorConfig?.features?.getSubFields?.get('block');\n if (typeof richTextBlocksGetSubFields !== 'function') break;\n const richTextBlocks = richTextBlocksGetSubFields('block');\n const richTextBlockDataFrom = (richTextDataFrom.root as Record<string, unknown>)?.children;\n if (isEmpty(richTextBlockDataFrom) || !Array.isArray(richTextBlockDataFrom) || isEmpty(richTextBlocks)) break;\n let richTextBlocksDataTranslated = ((siblingDataTranslated[field.name] as Record<string, unknown>)?.root as Record<string, unknown>)?.children as Record<string, unknown>[] ?? [];\n\n if (field.localized || localizedParent) {\n if (richTextBlocksDataTranslated.length > 0 && emptyOnly) break;\n richTextBlocksDataTranslated = richTextBlockDataFrom.map((blockData)=>{\n if (blockData?.fields?.blockType) {\n return {\n ...blockData,\n fields: {\n blockType: blockData?.fields?.blockType,\n id: ObjectID().toHexString()\n }\n }\n }\n return blockData;\n });\n }\n\n richTextBlocksDataTranslated.forEach((item, index)=>{\n const block = richTextBlocks[0].blocks.find((each: Record<string, unknown>)=>each.slug && each.slug === (item.fields as Record<string, unknown>).blockType);\n if (!block) return;\n traverseFields({\n dataFrom,\n emptyOnly,\n fields: block.fields,\n localizedParent: localizedParent ?? field.localized,\n siblingDataFrom: richTextBlockDataFrom[index].fields,\n siblingDataTranslated: item.fields as Record<string, unknown>,\n translatedData,\n valuesToTranslate\n });\n });\n ((siblingDataTranslated[field.name] as Record<string, unknown>).root as Record<string, unknown>).children = richTextBlocksDataTranslated;\n }\n } else {\n for (const root of siblingDataTranslated[field.name] as unknown[]) {\n traverseRichText({\n onText: (siblingData) => {\n valuesToTranslate.push({\n onTranslate: (translated: string) => {\n siblingData.text = translated;\n },\n value: siblingData.text,\n });\n },\n root: root as Record<string, unknown>,\n });\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n }\n};\n"],"names":["ObjectID","tabHasName","isEmpty","traverseRichText","traverseFields","dataFrom","emptyOnly","fields","localizedParent","siblingDataFrom","siblingDataTranslated","translatedData","valuesToTranslate","field","type","tab","tabs","hasName","tabDataFrom","name","tabDataTranslated","localized","groupDataFrom","groupDataTranslated","id","toHexString","arrayDataFrom","arrayDataTranslated","length","map","forEach","item","index","blocksDataFrom","blocksDataTranslated","blockType","block","blocks","find","each","slug","custom","translatorSkip","push","onTranslate","translated","value","richTextDataFrom","isSlate","Array","isArray","isLexical","root","onText","siblingData","text","richTextBlocksGetSubFields","editor","editorConfig","features","getSubFields","get","richTextBlocks","richTextBlockDataFrom","children","richTextBlocksDataTranslated","blockData"],"mappings":"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"}
|
package/package.json
CHANGED