diff --git a/docs/lexical/migration.mdx b/docs/lexical/migration.mdx index 9c8324f0a..880e19af7 100644 --- a/docs/lexical/migration.mdx +++ b/docs/lexical/migration.mdx @@ -20,7 +20,7 @@ IMPORTANT: This will overwrite all slate data. We recommend doing the following 3. Add the SlateToLexicalFeature (as seen below) first, and test it out by loading up the Admin Panel, to see if the migrator works as expected. You might have to build some custom converters for some fields first in order to convert custom Slate nodes. The SlateToLexicalFeature is where the converters are stored. Only fields with this feature added will be migrated. ```ts -import { migrateSlateToLexical } from '@payloadcms/richtext-lexical' +import { migrateSlateToLexical } from '@payloadcms/richtext-lexical/migrate' await migrateSlateToLexical({ payload }) ``` @@ -34,7 +34,8 @@ Simply add the `SlateToLexicalFeature` to your editor: ```ts import type { CollectionConfig } from 'payload' -import { SlateToLexicalFeature, lexicalEditor } from '@payloadcms/richtext-lexical' +import { SlateToLexicalFeature } from '@payloadcms/richtext-lexical/migrate' +import { lexicalEditor } from '@payloadcms/richtext-lexical' const Pages: CollectionConfig = { slug: 'pages', @@ -64,8 +65,8 @@ The easy way to solve this: Edit the richText field and save the document! This If you have custom Slate nodes, create a custom converter for them. Here's the Upload converter as an example: ```ts -import type { SerializedUploadNode } from '../uploadNode.' -import type { SlateNodeConverter } from '@payloadcms/richtext-lexical' +import type { SerializedUploadNode } from '../uploadNode' +import type { SlateNodeConverter } from '@payloadcms/richtext-lexical/migrate' export const SlateUploadConverter: SlateNodeConverter = { converter({ slateNode }) { @@ -95,9 +96,9 @@ When using the `SlateToLexicalFeature`, you can add your custom converters to th ```ts import type { CollectionConfig } from 'payload' +import { lexicalEditor } from '@payloadcms/richtext-lexical' import { SlateToLexicalFeature, - lexicalEditor, defaultSlateConverters, } from '@payloadcms/richtext-lexical' diff --git a/packages/richtext-lexical/package.json b/packages/richtext-lexical/package.json index 7c797ad0f..22d34a1ab 100644 --- a/packages/richtext-lexical/package.json +++ b/packages/richtext-lexical/package.json @@ -23,6 +23,11 @@ "types": "./src/exports/client/index.ts", "default": "./src/exports/client/index.ts" }, + "./migrate": { + "import": "./src/exports/server/migrate.ts", + "types": "./src/exports/server/migrate.ts", + "default": "./src/exports/server/migrate.ts" + }, "./generateComponentMap": "./src/utilities/generateComponentMap.tsx" }, "main": "./src/index.ts", @@ -109,6 +114,11 @@ "types": "./dist/exports/client/index.d.ts", "default": "./dist/exports/client/index.js" }, + "./migrate": { + "import": "./dist/exports/server/migrate.js", + "types": "./dist/exports/server/migrate.d.ts", + "default": "./dist/exports/server/migrate.js" + }, "./generateComponentMap": { "import": "./dist/utilities/generateComponentMap.js", "types": "./dist/utilities/generateComponentMap.d.ts", diff --git a/packages/richtext-lexical/src/exports/server/migrate.ts b/packages/richtext-lexical/src/exports/server/migrate.ts new file mode 100644 index 000000000..fe338f5c1 --- /dev/null +++ b/packages/richtext-lexical/src/exports/server/migrate.ts @@ -0,0 +1,19 @@ +export { LexicalPluginToLexicalFeature } from '../../features/migrations/lexicalPluginToLexical/feature.server.js' +export { SlateBlockquoteConverter } from '../../features/migrations/slateToLexical/converter/converters/blockquote/converter.js' +export { SlateHeadingConverter } from '../../features/migrations/slateToLexical/converter/converters/heading/converter.js' +export { SlateIndentConverter } from '../../features/migrations/slateToLexical/converter/converters/indent/converter.js' +export { SlateLinkConverter } from '../../features/migrations/slateToLexical/converter/converters/link/converter.js' +export { SlateListItemConverter } from '../../features/migrations/slateToLexical/converter/converters/listItem/converter.js' +export { SlateOrderedListConverter } from '../../features/migrations/slateToLexical/converter/converters/orderedList/converter.js' +export { SlateRelationshipConverter } from '../../features/migrations/slateToLexical/converter/converters/relationship/converter.js' +export { SlateUnknownConverter } from '../../features/migrations/slateToLexical/converter/converters/unknown/converter.js' +export { SlateUnorderedListConverter } from '../../features/migrations/slateToLexical/converter/converters/unorderedList/converter.js' +export { SlateUploadConverter } from '../../features/migrations/slateToLexical/converter/converters/upload/converter.js' +export { defaultSlateConverters } from '../../features/migrations/slateToLexical/converter/defaultConverters.js' +export { + convertSlateNodesToLexical, + convertSlateToLexical, +} from '../../features/migrations/slateToLexical/converter/index.js' + +export { SlateToLexicalFeature } from '../../features/migrations/slateToLexical/feature.server.js' +export { migrateSlateToLexical } from '../../utilities/migrateSlateToLexical/index.js' diff --git a/packages/richtext-lexical/src/index.ts b/packages/richtext-lexical/src/index.ts index f8ea271f0..2ccf58957 100644 --- a/packages/richtext-lexical/src/index.ts +++ b/packages/richtext-lexical/src/index.ts @@ -879,28 +879,11 @@ export { LinkFeature, type LinkFeatureServerProps } from './features/link/server export { ChecklistFeature } from './features/lists/checklist/server/index.js' export { OrderedListFeature } from './features/lists/orderedList/server/index.js' export { UnorderedListFeature } from './features/lists/unorderedList/server/index.js' -export { LexicalPluginToLexicalFeature } from './features/migrations/lexicalPluginToLexical/feature.server.js' -export { SlateBlockquoteConverter } from './features/migrations/slateToLexical/converter/converters/blockquote/converter.js' -export { SlateHeadingConverter } from './features/migrations/slateToLexical/converter/converters/heading/converter.js' -export { SlateIndentConverter } from './features/migrations/slateToLexical/converter/converters/indent/converter.js' -export { SlateLinkConverter } from './features/migrations/slateToLexical/converter/converters/link/converter.js' -export { SlateListItemConverter } from './features/migrations/slateToLexical/converter/converters/listItem/converter.js' -export { SlateOrderedListConverter } from './features/migrations/slateToLexical/converter/converters/orderedList/converter.js' -export { SlateRelationshipConverter } from './features/migrations/slateToLexical/converter/converters/relationship/converter.js' -export { SlateUnknownConverter } from './features/migrations/slateToLexical/converter/converters/unknown/converter.js' -export { SlateUnorderedListConverter } from './features/migrations/slateToLexical/converter/converters/unorderedList/converter.js' -export { SlateUploadConverter } from './features/migrations/slateToLexical/converter/converters/upload/converter.js' -export { defaultSlateConverters } from './features/migrations/slateToLexical/converter/defaultConverters.js' -export { - convertSlateNodesToLexical, - convertSlateToLexical, -} from './features/migrations/slateToLexical/converter/index.js' export type { SlateNode, SlateNodeConverter, } from './features/migrations/slateToLexical/converter/types.js' -export { SlateToLexicalFeature } from './features/migrations/slateToLexical/feature.server.js' export { ParagraphFeature } from './features/paragraph/server/index.js' export { @@ -1009,6 +992,4 @@ export type { LexicalEditorProps, LexicalRichTextAdapter } from './types.js' export { createServerFeature } from './utilities/createServerFeature.js' export type { FieldsDrawerProps } from './utilities/fieldsDrawer/Drawer.js' -export { migrateSlateToLexical } from './utilities/migrateSlateToLexical/index.js' - export { upgradeLexicalData } from './utilities/upgradeLexicalData/index.js' diff --git a/test/fields/collections/LexicalMigrate/index.ts b/test/fields/collections/LexicalMigrate/index.ts index 1cb8912f9..9ff19b70c 100644 --- a/test/fields/collections/LexicalMigrate/index.ts +++ b/test/fields/collections/LexicalMigrate/index.ts @@ -2,14 +2,16 @@ import type { CollectionConfig } from 'payload' import { HTMLConverterFeature, - LexicalPluginToLexicalFeature, LinkFeature, - SlateToLexicalFeature, TreeViewFeature, UploadFeature, lexicalEditor, lexicalHTML, } from '@payloadcms/richtext-lexical' +import { + LexicalPluginToLexicalFeature, + SlateToLexicalFeature, +} from '@payloadcms/richtext-lexical/migrate' import { lexicalMigrateFieldsSlug } from '../../slugs.js' import { getSimpleLexicalData } from './data.js'