diff --git a/blocksuite/affine/all/src/adapters/extension.ts b/blocksuite/affine/all/src/adapters/extension.ts index c452d208bb..cd9ba3f991 100644 --- a/blocksuite/affine/all/src/adapters/extension.ts +++ b/blocksuite/affine/all/src/adapters/extension.ts @@ -24,36 +24,46 @@ import { defaultMarkdownPreprocessors } from './markdown/preprocessor'; import { defaultBlockNotionHtmlAdapterMatchers } from './notion-html/block-matcher'; import { defaultBlockPlainTextAdapterMatchers } from './plain-text/block-matcher'; -export const AdapterFactoryExtensions: ExtensionType[] = [ - AttachmentAdapterFactoryExtension, - ImageAdapterFactoryExtension, - MarkdownAdapterFactoryExtension, - PlainTextAdapterFactoryExtension, - HtmlAdapterFactoryExtension, - NotionTextAdapterFactoryExtension, - NotionHtmlAdapterFactoryExtension, - MixTextAdapterFactoryExtension, -]; +export function getAdapterFactoryExtensions(): ExtensionType[] { + return [ + AttachmentAdapterFactoryExtension, + ImageAdapterFactoryExtension, + MarkdownAdapterFactoryExtension, + PlainTextAdapterFactoryExtension, + HtmlAdapterFactoryExtension, + NotionTextAdapterFactoryExtension, + NotionHtmlAdapterFactoryExtension, + MixTextAdapterFactoryExtension, + ]; +} -export const HtmlAdapterExtension: ExtensionType[] = [ - ...HtmlInlineToDeltaAdapterExtensions, - ...defaultBlockHtmlAdapterMatchers, - ...InlineDeltaToHtmlAdapterExtensions, -]; +export function getHtmlAdapterExtensions(): ExtensionType[] { + return [ + ...HtmlInlineToDeltaAdapterExtensions, + ...defaultBlockHtmlAdapterMatchers, + ...InlineDeltaToHtmlAdapterExtensions, + ]; +} -export const MarkdownAdapterExtension: ExtensionType[] = [ - ...MarkdownInlineToDeltaAdapterExtensions, - ...defaultBlockMarkdownAdapterMatchers, - ...InlineDeltaToMarkdownAdapterExtensions, - ...defaultMarkdownPreprocessors, -]; +export function getMarkdownAdapterExtensions(): ExtensionType[] { + return [ + ...MarkdownInlineToDeltaAdapterExtensions, + ...defaultBlockMarkdownAdapterMatchers, + ...InlineDeltaToMarkdownAdapterExtensions, + ...defaultMarkdownPreprocessors, + ]; +} -export const NotionHtmlAdapterExtension: ExtensionType[] = [ - ...NotionHtmlInlineToDeltaAdapterExtensions, - ...defaultBlockNotionHtmlAdapterMatchers, -]; +export function getNotionHtmlAdapterExtensions(): ExtensionType[] { + return [ + ...NotionHtmlInlineToDeltaAdapterExtensions, + ...defaultBlockNotionHtmlAdapterMatchers, + ]; +} -export const PlainTextAdapterExtension: ExtensionType[] = [ - ...defaultBlockPlainTextAdapterMatchers, - ...InlineDeltaToPlainTextAdapterExtensions, -]; +export function getPlainTextAdapterExtensions(): ExtensionType[] { + return [ + ...defaultBlockPlainTextAdapterMatchers, + ...InlineDeltaToPlainTextAdapterExtensions, + ]; +} diff --git a/blocksuite/affine/all/src/extensions/store.ts b/blocksuite/affine/all/src/extensions/store.ts index 03179ffbbf..48085e9c11 100644 --- a/blocksuite/affine/all/src/extensions/store.ts +++ b/blocksuite/affine/all/src/extensions/store.ts @@ -51,11 +51,11 @@ import { import type { ExtensionType } from '@blocksuite/store'; import { - AdapterFactoryExtensions, - HtmlAdapterExtension, - MarkdownAdapterExtension, - NotionHtmlAdapterExtension, - PlainTextAdapterExtension, + getAdapterFactoryExtensions, + getHtmlAdapterExtensions, + getMarkdownAdapterExtensions, + getNotionHtmlAdapterExtensions, + getPlainTextAdapterExtensions, } from '../adapters/extension.js'; export const StoreExtensions: ExtensionType[] = [ @@ -96,11 +96,11 @@ export const StoreExtensions: ExtensionType[] = [ DatabaseSelectionExtension, TableSelectionExtension, - HtmlAdapterExtension, - MarkdownAdapterExtension, - NotionHtmlAdapterExtension, - PlainTextAdapterExtension, - AdapterFactoryExtensions, + getHtmlAdapterExtensions(), + getMarkdownAdapterExtensions(), + getNotionHtmlAdapterExtensions(), + getPlainTextAdapterExtensions(), + getAdapterFactoryExtensions(), FeatureFlagService, LinkPreviewerService, diff --git a/packages/common/nbstore/src/sync/indexer/crawler.ts b/packages/common/nbstore/src/sync/indexer/crawler.ts index 7afa3966e6..776fca5bb9 100644 --- a/packages/common/nbstore/src/sync/indexer/crawler.ts +++ b/packages/common/nbstore/src/sync/indexer/crawler.ts @@ -1,4 +1,4 @@ -import { MarkdownAdapterExtension } from '@blocksuite/affine/adapters'; +import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters'; import { Container } from '@blocksuite/affine/global/di'; import type { AttachmentBlockModel, @@ -119,7 +119,7 @@ function generateMarkdownPreviewBuilder( }; const container = new Container(); - [...MarkdownAdapterExtension].forEach(ext => { + getMarkdownAdapterExtensions().forEach(ext => { ext.setup(container); }); diff --git a/packages/frontend/apps/android/src/app.tsx b/packages/frontend/apps/android/src/app.tsx index d05daf4237..6e35931c1d 100644 --- a/packages/frontend/apps/android/src/app.tsx +++ b/packages/frontend/apps/android/src/app.tsx @@ -26,7 +26,7 @@ import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspac import { getWorkerUrl } from '@affine/env/worker'; import { I18n } from '@affine/i18n'; import { StoreManagerClient } from '@affine/nbstore/worker/client'; -import { MarkdownAdapterExtension } from '@blocksuite/affine/adapters'; +import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters'; import { Container } from '@blocksuite/affine/global/di'; import { docLinkBaseURLMiddleware, @@ -199,7 +199,7 @@ framework.impl(AIButtonProvider, { const snapshot = transformer.docToSnapshot(blockSuiteDoc); const container = new Container(); - [...MarkdownAdapterExtension].forEach(ext => { + getMarkdownAdapterExtensions().forEach(ext => { ext.setup(container); }); const provider = container.provider(); diff --git a/packages/frontend/apps/ios/src/app.tsx b/packages/frontend/apps/ios/src/app.tsx index 1a28ad8f18..9261da90c6 100644 --- a/packages/frontend/apps/ios/src/app.tsx +++ b/packages/frontend/apps/ios/src/app.tsx @@ -38,7 +38,7 @@ import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspac import { getWorkerUrl } from '@affine/env/worker'; import { I18n } from '@affine/i18n'; import { StoreManagerClient } from '@affine/nbstore/worker/client'; -import { MarkdownAdapterExtension } from '@blocksuite/affine/adapters'; +import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters'; import { MarkdownTransformer } from '@blocksuite/affine/blocks/root'; import { Container } from '@blocksuite/affine/global/di'; import { @@ -262,7 +262,7 @@ const frameworkProvider = framework.provider(); const snapshot = transformer.docToSnapshot(blockSuiteDoc); const container = new Container(); - [...MarkdownAdapterExtension].forEach(ext => { + getMarkdownAdapterExtensions().forEach(ext => { ext.setup(container); }); const provider = container.provider(); diff --git a/packages/frontend/core/src/blocksuite/ai/components/text-renderer.ts b/packages/frontend/core/src/blocksuite/ai/components/text-renderer.ts index 7ffeb18f57..f14bb3f9d7 100644 --- a/packages/frontend/core/src/blocksuite/ai/components/text-renderer.ts +++ b/packages/frontend/core/src/blocksuite/ai/components/text-renderer.ts @@ -1,5 +1,5 @@ import { createReactComponentFromLit } from '@affine/component'; -import { MarkdownAdapterExtension } from '@blocksuite/affine/adapters'; +import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters'; import { defaultImageProxyMiddleware, ImageProxyService, @@ -211,7 +211,7 @@ export class TextRenderer extends WithDisposable(ShadowlessElement) { provider = this.host.std.provider; } else { const container = new Container(); - [...MarkdownAdapterExtension].forEach(ext => { + getMarkdownAdapterExtensions().forEach(ext => { ext.setup(container); }); diff --git a/packages/frontend/core/src/blocksuite/ai/mini-mindmap/__tests__/mindmap-preview.unit.spec.ts b/packages/frontend/core/src/blocksuite/ai/mini-mindmap/__tests__/mindmap-preview.unit.spec.ts index 2fe19bb3cd..55b057b961 100644 --- a/packages/frontend/core/src/blocksuite/ai/mini-mindmap/__tests__/mindmap-preview.unit.spec.ts +++ b/packages/frontend/core/src/blocksuite/ai/mini-mindmap/__tests__/mindmap-preview.unit.spec.ts @@ -1,4 +1,4 @@ -import { MarkdownAdapterExtension } from '@blocksuite/affine/adapters'; +import { getMarkdownAdapterExtensions } from '@blocksuite/affine/adapters'; import { Container } from '@blocksuite/affine/global/di'; import { TestWorkspace } from '@blocksuite/affine/store/test'; import { describe, expect, test } from 'vitest'; @@ -6,7 +6,7 @@ import { describe, expect, test } from 'vitest'; import { markdownToMindmap } from '../mindmap-preview.js'; const container = new Container(); -[...MarkdownAdapterExtension].forEach(ext => { +getMarkdownAdapterExtensions().forEach(ext => { ext.setup(container); }); const provider = container.provider(); diff --git a/tools/cli/src/webpack/index.ts b/tools/cli/src/webpack/index.ts index 6a6228d0e1..fccc6427e6 100644 --- a/tools/cli/src/webpack/index.ts +++ b/tools/cli/src/webpack/index.ts @@ -67,7 +67,7 @@ export function createHTMLTargetConfig( //#region basic webpack config name: entry['index'], dependencies: deps, - context: pkg.path.value, + context: ProjectRoot.value, experiments: { topLevelAwait: true, outputModule: false, @@ -335,7 +335,6 @@ export function createHTMLTargetConfig( minimizer: [ new TerserPlugin({ minify: TerserPlugin.swcMinify, - exclude: [/plugins\/.+\/.+\.js$/, /plugins\/.+\/.+\.mjs$/], parallel: true, extractComments: true, terserOptions: { @@ -498,35 +497,6 @@ export function createWorkerTargetConfig( inlineSourcesContent: true, }, }, - { - test: /\.tsx$/, - exclude: /node_modules/, - loader: 'swc-loader', - options: { - // https://swc.rs/docs/configuring-swc/ - jsc: { - preserveAllComments: true, - parser: { - syntax: 'typescript', - dynamicImport: true, - topLevelAwait: false, - tsx: true, - decorators: true, - }, - target: 'es2022', - externalHelpers: false, - transform: { - react: { - runtime: 'automatic', - }, - useDefineForClassFields: false, - decoratorVersion: '2022-03', - }, - }, - sourceMaps: true, - inlineSourcesContent: true, - }, - }, ], }, ], @@ -561,7 +531,6 @@ export function createWorkerTargetConfig( minimizer: [ new TerserPlugin({ minify: TerserPlugin.swcMinify, - exclude: [/plugins\/.+\/.+\.js$/, /plugins\/.+\/.+\.mjs$/], parallel: true, extractComments: true, terserOptions: { @@ -583,5 +552,8 @@ export function createWorkerTargetConfig( runtimeChunk: false, splitChunks: false, }, + performance: { + hints: false, + }, }; }