From 0feb18b0c349edf1922df9147675ae4dfc30af65 Mon Sep 17 00:00:00 2001 From: Bob Ippolito Date: Tue, 12 Mar 2024 09:04:54 -0700 Subject: [PATCH] Fix build of fork modules --- packages/lexical-react/package.json | 160 ++++++++++++++++++++++++++++ scripts/build.js | 13 +-- scripts/updateVersion.js | 9 +- 3 files changed, 175 insertions(+), 7 deletions(-) diff --git a/packages/lexical-react/package.json b/packages/lexical-react/package.json index 8f97fa8e294..9c4bbb1e628 100644 --- a/packages/lexical-react/package.json +++ b/packages/lexical-react/package.json @@ -44,161 +44,321 @@ "import": "./LexicalAutoEmbedPlugin.esm.js", "require": "./LexicalAutoEmbedPlugin.js" }, + "./LexicalAutoEmbedPlugin.js": { + "import": "./LexicalAutoEmbedPlugin.esm.js", + "require": "./LexicalAutoEmbedPlugin.js" + }, "./LexicalAutoFocusPlugin": { "import": "./LexicalAutoFocusPlugin.esm.js", "require": "./LexicalAutoFocusPlugin.js" }, + "./LexicalAutoFocusPlugin.js": { + "import": "./LexicalAutoFocusPlugin.esm.js", + "require": "./LexicalAutoFocusPlugin.js" + }, "./LexicalAutoLinkPlugin": { "import": "./LexicalAutoLinkPlugin.esm.js", "require": "./LexicalAutoLinkPlugin.js" }, + "./LexicalAutoLinkPlugin.js": { + "import": "./LexicalAutoLinkPlugin.esm.js", + "require": "./LexicalAutoLinkPlugin.js" + }, "./LexicalBlockWithAlignableContents": { "import": "./LexicalBlockWithAlignableContents.esm.js", "require": "./LexicalBlockWithAlignableContents.js" }, + "./LexicalBlockWithAlignableContents.js": { + "import": "./LexicalBlockWithAlignableContents.esm.js", + "require": "./LexicalBlockWithAlignableContents.js" + }, "./LexicalCharacterLimitPlugin": { "import": "./LexicalCharacterLimitPlugin.esm.js", "require": "./LexicalCharacterLimitPlugin.js" }, + "./LexicalCharacterLimitPlugin.js": { + "import": "./LexicalCharacterLimitPlugin.esm.js", + "require": "./LexicalCharacterLimitPlugin.js" + }, "./LexicalCheckListPlugin": { "import": "./LexicalCheckListPlugin.esm.js", "require": "./LexicalCheckListPlugin.js" }, + "./LexicalCheckListPlugin.js": { + "import": "./LexicalCheckListPlugin.esm.js", + "require": "./LexicalCheckListPlugin.js" + }, "./LexicalClearEditorPlugin": { "import": "./LexicalClearEditorPlugin.esm.js", "require": "./LexicalClearEditorPlugin.js" }, + "./LexicalClearEditorPlugin.js": { + "import": "./LexicalClearEditorPlugin.esm.js", + "require": "./LexicalClearEditorPlugin.js" + }, "./LexicalClickableLinkPlugin": { "import": "./LexicalClickableLinkPlugin.esm.js", "require": "./LexicalClickableLinkPlugin.js" }, + "./LexicalClickableLinkPlugin.js": { + "import": "./LexicalClickableLinkPlugin.esm.js", + "require": "./LexicalClickableLinkPlugin.js" + }, "./LexicalCollaborationContext": { "import": "./LexicalCollaborationContext.esm.js", "require": "./LexicalCollaborationContext.js" }, + "./LexicalCollaborationContext.js": { + "import": "./LexicalCollaborationContext.esm.js", + "require": "./LexicalCollaborationContext.js" + }, "./LexicalCollaborationPlugin": { "import": "./LexicalCollaborationPlugin.esm.js", "require": "./LexicalCollaborationPlugin.js" }, + "./LexicalCollaborationPlugin.js": { + "import": "./LexicalCollaborationPlugin.esm.js", + "require": "./LexicalCollaborationPlugin.js" + }, "./LexicalComposer": { "import": "./LexicalComposer.esm.js", "require": "./LexicalComposer.js" }, + "./LexicalComposer.js": { + "import": "./LexicalComposer.esm.js", + "require": "./LexicalComposer.js" + }, "./LexicalComposerContext": { "import": "./LexicalComposerContext.esm.js", "require": "./LexicalComposerContext.js" }, + "./LexicalComposerContext.js": { + "import": "./LexicalComposerContext.esm.js", + "require": "./LexicalComposerContext.js" + }, "./LexicalContentEditable": { "import": "./LexicalContentEditable.esm.js", "require": "./LexicalContentEditable.js" }, + "./LexicalContentEditable.js": { + "import": "./LexicalContentEditable.esm.js", + "require": "./LexicalContentEditable.js" + }, "./LexicalContextMenuPlugin": { "import": "./LexicalContextMenuPlugin.esm.js", "require": "./LexicalContextMenuPlugin.js" }, + "./LexicalContextMenuPlugin.js": { + "import": "./LexicalContextMenuPlugin.esm.js", + "require": "./LexicalContextMenuPlugin.js" + }, "./LexicalDecoratorBlockNode": { "import": "./LexicalDecoratorBlockNode.esm.js", "require": "./LexicalDecoratorBlockNode.js" }, + "./LexicalDecoratorBlockNode.js": { + "import": "./LexicalDecoratorBlockNode.esm.js", + "require": "./LexicalDecoratorBlockNode.js" + }, "./LexicalEditorRefPlugin": { "import": "./LexicalEditorRefPlugin.esm.js", "require": "./LexicalEditorRefPlugin.js" }, + "./LexicalEditorRefPlugin.js": { + "import": "./LexicalEditorRefPlugin.esm.js", + "require": "./LexicalEditorRefPlugin.js" + }, "./LexicalErrorBoundary": { "import": "./LexicalErrorBoundary.esm.js", "require": "./LexicalErrorBoundary.js" }, + "./LexicalErrorBoundary.js": { + "import": "./LexicalErrorBoundary.esm.js", + "require": "./LexicalErrorBoundary.js" + }, "./LexicalHashtagPlugin": { "import": "./LexicalHashtagPlugin.esm.js", "require": "./LexicalHashtagPlugin.js" }, + "./LexicalHashtagPlugin.js": { + "import": "./LexicalHashtagPlugin.esm.js", + "require": "./LexicalHashtagPlugin.js" + }, "./LexicalHistoryPlugin": { "import": "./LexicalHistoryPlugin.esm.js", "require": "./LexicalHistoryPlugin.js" }, + "./LexicalHistoryPlugin.js": { + "import": "./LexicalHistoryPlugin.esm.js", + "require": "./LexicalHistoryPlugin.js" + }, "./LexicalHorizontalRuleNode": { "import": "./LexicalHorizontalRuleNode.esm.js", "require": "./LexicalHorizontalRuleNode.js" }, + "./LexicalHorizontalRuleNode.js": { + "import": "./LexicalHorizontalRuleNode.esm.js", + "require": "./LexicalHorizontalRuleNode.js" + }, "./LexicalHorizontalRulePlugin": { "import": "./LexicalHorizontalRulePlugin.esm.js", "require": "./LexicalHorizontalRulePlugin.js" }, + "./LexicalHorizontalRulePlugin.js": { + "import": "./LexicalHorizontalRulePlugin.esm.js", + "require": "./LexicalHorizontalRulePlugin.js" + }, "./LexicalLinkPlugin": { "import": "./LexicalLinkPlugin.esm.js", "require": "./LexicalLinkPlugin.js" }, + "./LexicalLinkPlugin.js": { + "import": "./LexicalLinkPlugin.esm.js", + "require": "./LexicalLinkPlugin.js" + }, "./LexicalListPlugin": { "import": "./LexicalListPlugin.esm.js", "require": "./LexicalListPlugin.js" }, + "./LexicalListPlugin.js": { + "import": "./LexicalListPlugin.esm.js", + "require": "./LexicalListPlugin.js" + }, "./LexicalMarkdownShortcutPlugin": { "import": "./LexicalMarkdownShortcutPlugin.esm.js", "require": "./LexicalMarkdownShortcutPlugin.js" }, + "./LexicalMarkdownShortcutPlugin.js": { + "import": "./LexicalMarkdownShortcutPlugin.esm.js", + "require": "./LexicalMarkdownShortcutPlugin.js" + }, "./LexicalNestedComposer": { "import": "./LexicalNestedComposer.esm.js", "require": "./LexicalNestedComposer.js" }, + "./LexicalNestedComposer.js": { + "import": "./LexicalNestedComposer.esm.js", + "require": "./LexicalNestedComposer.js" + }, "./LexicalNodeEventPlugin": { "import": "./LexicalNodeEventPlugin.esm.js", "require": "./LexicalNodeEventPlugin.js" }, + "./LexicalNodeEventPlugin.js": { + "import": "./LexicalNodeEventPlugin.esm.js", + "require": "./LexicalNodeEventPlugin.js" + }, "./LexicalNodeMenuPlugin": { "import": "./LexicalNodeMenuPlugin.esm.js", "require": "./LexicalNodeMenuPlugin.js" }, + "./LexicalNodeMenuPlugin.js": { + "import": "./LexicalNodeMenuPlugin.esm.js", + "require": "./LexicalNodeMenuPlugin.js" + }, "./LexicalOnChangePlugin": { "import": "./LexicalOnChangePlugin.esm.js", "require": "./LexicalOnChangePlugin.js" }, + "./LexicalOnChangePlugin.js": { + "import": "./LexicalOnChangePlugin.esm.js", + "require": "./LexicalOnChangePlugin.js" + }, "./LexicalPlainTextPlugin": { "import": "./LexicalPlainTextPlugin.esm.js", "require": "./LexicalPlainTextPlugin.js" }, + "./LexicalPlainTextPlugin.js": { + "import": "./LexicalPlainTextPlugin.esm.js", + "require": "./LexicalPlainTextPlugin.js" + }, "./LexicalRichTextPlugin": { "import": "./LexicalRichTextPlugin.esm.js", "require": "./LexicalRichTextPlugin.js" }, + "./LexicalRichTextPlugin.js": { + "import": "./LexicalRichTextPlugin.esm.js", + "require": "./LexicalRichTextPlugin.js" + }, "./LexicalTabIndentationPlugin": { "import": "./LexicalTabIndentationPlugin.esm.js", "require": "./LexicalTabIndentationPlugin.js" }, + "./LexicalTabIndentationPlugin.js": { + "import": "./LexicalTabIndentationPlugin.esm.js", + "require": "./LexicalTabIndentationPlugin.js" + }, "./LexicalTableOfContents": { "import": "./LexicalTableOfContents.esm.js", "require": "./LexicalTableOfContents.js" }, + "./LexicalTableOfContents.js": { + "import": "./LexicalTableOfContents.esm.js", + "require": "./LexicalTableOfContents.js" + }, "./LexicalTablePlugin": { "import": "./LexicalTablePlugin.esm.js", "require": "./LexicalTablePlugin.js" }, + "./LexicalTablePlugin.js": { + "import": "./LexicalTablePlugin.esm.js", + "require": "./LexicalTablePlugin.js" + }, "./LexicalTreeView": { "import": "./LexicalTreeView.esm.js", "require": "./LexicalTreeView.js" }, + "./LexicalTreeView.js": { + "import": "./LexicalTreeView.esm.js", + "require": "./LexicalTreeView.js" + }, "./LexicalTypeaheadMenuPlugin": { "import": "./LexicalTypeaheadMenuPlugin.esm.js", "require": "./LexicalTypeaheadMenuPlugin.js" }, + "./LexicalTypeaheadMenuPlugin.js": { + "import": "./LexicalTypeaheadMenuPlugin.esm.js", + "require": "./LexicalTypeaheadMenuPlugin.js" + }, "./useLexicalEditable": { "import": "./useLexicalEditable.esm.js", "require": "./useLexicalEditable.js" }, + "./useLexicalEditable.js": { + "import": "./useLexicalEditable.esm.js", + "require": "./useLexicalEditable.js" + }, "./useLexicalIsTextContentEmpty": { "import": "./useLexicalIsTextContentEmpty.esm.js", "require": "./useLexicalIsTextContentEmpty.js" }, + "./useLexicalIsTextContentEmpty.js": { + "import": "./useLexicalIsTextContentEmpty.esm.js", + "require": "./useLexicalIsTextContentEmpty.js" + }, "./useLexicalNodeSelection": { "import": "./useLexicalNodeSelection.esm.js", "require": "./useLexicalNodeSelection.js" }, + "./useLexicalNodeSelection.js": { + "import": "./useLexicalNodeSelection.esm.js", + "require": "./useLexicalNodeSelection.js" + }, "./useLexicalSubscription": { "import": "./useLexicalSubscription.esm.js", "require": "./useLexicalSubscription.js" }, + "./useLexicalSubscription.js": { + "import": "./useLexicalSubscription.esm.js", + "require": "./useLexicalSubscription.js" + }, "./useLexicalTextEntity": { "import": "./useLexicalTextEntity.esm.js", "require": "./useLexicalTextEntity.js" + }, + "./useLexicalTextEntity.js": { + "import": "./useLexicalTextEntity.esm.js", + "require": "./useLexicalTextEntity.js" } } } diff --git a/scripts/build.js b/scripts/build.js index 7e5254dec9d..53aaba52b75 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -613,24 +613,25 @@ async function moveTSDeclarationFilesIntoDist(packageName, outputPath) { } function buildForkModule(outputPath, outputFileName, format, exports) { - const lines = [getComment(), `'use strict'`]; + const lines = [getComment()]; const extension = getExtension(format); const devFileName = `./${outputFileName}.dev${extension}`; const prodFileName = `./${outputFileName}.prod${extension}`; if (format === 'esm') { - lines.append( - `const mod = await import(process.env.NODE_ENV === 'development' ? '${devFileName}' : '${prodFileName}');`, + lines.push( + `const mod = process.env.NODE_ENV === 'development' ? await import('${devFileName}') : await import('${prodFileName}');`, ); for (const name of exports) { - lines.append( + lines.push( name === 'default' ? `export default mod.default;` : `export const ${name} = mod.${name};`, ); } } else { - lines.append( - `const ${outputFileName} = process.env.NODE_ENV === 'development' ? require('${devFileName}') : require('${prodFileName}')`, + lines.push( + `'use strict'`, + `const ${outputFileName} = process.env.NODE_ENV === 'development' ? require('${devFileName}') : require('${prodFileName}');`, `module.exports = ${outputFileName};`, ); } diff --git a/scripts/updateVersion.js b/scripts/updateVersion.js index 8b6bf0326be..f1c0db44cac 100644 --- a/scripts/updateVersion.js +++ b/scripts/updateVersion.js @@ -64,11 +64,18 @@ function updateModule(packageJSON, pkg) { } else if (fs.existsSync(`./packages/${pkg}/dist`)) { const exports = {}; for (const file of fs.readdirSync(`./packages/${pkg}/dist`)) { - if (file.endsWith('.js')) { + if (/^[^.]+\.js$/.test(file)) { + // support for import "@lexical/react/LexicalComposer" exports[`./${file.replace(/\.js$/, '')}`] = { import: `./${withEsmExtension(file)}`, require: `./${file}`, }; + // support for import "@lexical/react/LexicalComposer.js" + // @mdxeditor/editor uses this at least as of 2.13.1 + exports[`./${file}`] = { + import: `./${withEsmExtension(file)}`, + require: `./${file}`, + }; } } packageJSON.exports = exports;