From 3b34b600a7d6e941b07912a66dc40db8392d4366 Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Sun, 9 Oct 2022 12:07:13 +0300 Subject: [PATCH] chunks and dynamic import --- astro.config.ts | 25 +++++++++---------------- src/components/Editor/store/ctrl.ts | 10 +++------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/astro.config.ts b/astro.config.ts index 5733ee29..50930bf3 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -42,26 +42,19 @@ const astroConfig: AstroUserConfig = { output: { // eslint-disable-next-line sonarjs/cognitive-complexity manualChunks(id) { + if (id.includes('p2p')) return 'p2p' + if (id.includes('editor') || id.includes('Editor')) return 'editor' if (id.includes('node_modules')) { let chunkid - if (id.includes('solid')) { - chunkid = 'solid' - } - if (id.includes('acorn')) { - chunkid = 'acorn' - } - if (id.includes('prosemirror')) { - chunkid = 'prosemirror' - } - if (id.includes('markdown') || id.includes('mdurl')) { - chunkid = 'markdown' - } - if (id.includes('swiper')) { - chunkid = 'swiper' + if (id.includes('solid')) chunkid = 'solid' + if (id.includes('swiper')) chunkid = 'swiper' + if (id.includes('acorn')) chunkid = 'acorn' + if (id.includes('prosemirror')) chunkid = 'editor' + if (id.includes('markdown') || id.includes('mdurl') || id.includes('yjs')) { + chunkid = 'codecs' } if ( - id.includes('yjs') || - id.includes('y-prosemirror') || + id.includes('p2p') || id.includes('y-protocols') || id.includes('y-webrtc') || id.includes('simple-peer') diff --git a/src/components/Editor/store/ctrl.ts b/src/components/Editor/store/ctrl.ts index d597d5c8..890acef8 100644 --- a/src/components/Editor/store/ctrl.ts +++ b/src/components/Editor/store/ctrl.ts @@ -3,10 +3,7 @@ import { v4 as uuidv4 } from 'uuid' import type { Command, EditorState } from 'prosemirror-state' import { undo, redo } from 'prosemirror-history' import { selectAll, deleteSelection } from 'prosemirror-commands' -import * as Y from 'yjs' import { undo as yUndo, redo as yRedo } from 'y-prosemirror' -import { WebrtcProvider } from 'y-webrtc' -import { uniqueNamesGenerator, adjectives, animals } from 'unique-names-generator' import debounce from 'lodash/debounce' import { createSchema, createExtensions, createEmptyText } from '../prosemirror/setup' import { State, Draft, Config, ServiceError, newState } from '.' @@ -16,7 +13,6 @@ import { isEmpty, isInitialized } from '../prosemirror/helpers' import { drafts as draftsatom } from '../../../stores/editor' import { useStore } from '@nanostores/solid' import { createMemo } from 'solid-js' -import { roomConnect } from '../prosemirror/p2p' const isText = (x) => x && x.doc && x.selection const isState = (x) => typeof x.lastModified !== 'string' && Array.isArray(x.drafts) @@ -223,7 +219,7 @@ export const createCtrl = (initial): [Store, { [key: string]: any }] => { let data = await fetchData() try { if (data.args.room) { - data = doStartCollab(data) + data = await doStartCollab(data) } else if (data.args.text) { data = await doOpenDraft(data, { text: { ...JSON.parse(data.args.text) }, @@ -370,11 +366,11 @@ export const createCtrl = (initial): [Store, { [key: string]: any }] => { setState(update) } - const doStartCollab = (state: State): State => { + const doStartCollab = async (state: State): Promise => { const backup = state.args?.room && state.collab?.room !== state.args.room const room = state.args?.room ?? uuidv4() window.history.replaceState(null, '', `/${room}`) - + const { roomConnect } = await import('../prosemirror/p2p') const [type, provider] = roomConnect(room) const extensions = createExtensions({