chunks and dynamic import

This commit is contained in:
tonyrewin 2022-10-09 12:07:13 +03:00
parent 86b5ec7eec
commit 3b34b600a7
2 changed files with 12 additions and 23 deletions

View File

@ -42,26 +42,19 @@ const astroConfig: AstroUserConfig = {
output: { output: {
// eslint-disable-next-line sonarjs/cognitive-complexity // eslint-disable-next-line sonarjs/cognitive-complexity
manualChunks(id) { manualChunks(id) {
if (id.includes('p2p')) return 'p2p'
if (id.includes('editor') || id.includes('Editor')) return 'editor'
if (id.includes('node_modules')) { if (id.includes('node_modules')) {
let chunkid let chunkid
if (id.includes('solid')) { if (id.includes('solid')) chunkid = 'solid'
chunkid = 'solid' if (id.includes('swiper')) chunkid = 'swiper'
} if (id.includes('acorn')) chunkid = 'acorn'
if (id.includes('acorn')) { if (id.includes('prosemirror')) chunkid = 'editor'
chunkid = 'acorn' if (id.includes('markdown') || id.includes('mdurl') || id.includes('yjs')) {
} chunkid = 'codecs'
if (id.includes('prosemirror')) {
chunkid = 'prosemirror'
}
if (id.includes('markdown') || id.includes('mdurl')) {
chunkid = 'markdown'
}
if (id.includes('swiper')) {
chunkid = 'swiper'
} }
if ( if (
id.includes('yjs') || id.includes('p2p') ||
id.includes('y-prosemirror') ||
id.includes('y-protocols') || id.includes('y-protocols') ||
id.includes('y-webrtc') || id.includes('y-webrtc') ||
id.includes('simple-peer') id.includes('simple-peer')

View File

@ -3,10 +3,7 @@ import { v4 as uuidv4 } from 'uuid'
import type { Command, EditorState } from 'prosemirror-state' import type { Command, EditorState } from 'prosemirror-state'
import { undo, redo } from 'prosemirror-history' import { undo, redo } from 'prosemirror-history'
import { selectAll, deleteSelection } from 'prosemirror-commands' import { selectAll, deleteSelection } from 'prosemirror-commands'
import * as Y from 'yjs'
import { undo as yUndo, redo as yRedo } from 'y-prosemirror' 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 debounce from 'lodash/debounce'
import { createSchema, createExtensions, createEmptyText } from '../prosemirror/setup' import { createSchema, createExtensions, createEmptyText } from '../prosemirror/setup'
import { State, Draft, Config, ServiceError, newState } from '.' 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 { drafts as draftsatom } from '../../../stores/editor'
import { useStore } from '@nanostores/solid' import { useStore } from '@nanostores/solid'
import { createMemo } from 'solid-js' import { createMemo } from 'solid-js'
import { roomConnect } from '../prosemirror/p2p'
const isText = (x) => x && x.doc && x.selection const isText = (x) => x && x.doc && x.selection
const isState = (x) => typeof x.lastModified !== 'string' && Array.isArray(x.drafts) const isState = (x) => typeof x.lastModified !== 'string' && Array.isArray(x.drafts)
@ -223,7 +219,7 @@ export const createCtrl = (initial): [Store<State>, { [key: string]: any }] => {
let data = await fetchData() let data = await fetchData()
try { try {
if (data.args.room) { if (data.args.room) {
data = doStartCollab(data) data = await doStartCollab(data)
} else if (data.args.text) { } else if (data.args.text) {
data = await doOpenDraft(data, { data = await doOpenDraft(data, {
text: { ...JSON.parse(data.args.text) }, text: { ...JSON.parse(data.args.text) },
@ -370,11 +366,11 @@ export const createCtrl = (initial): [Store<State>, { [key: string]: any }] => {
setState(update) setState(update)
} }
const doStartCollab = (state: State): State => { const doStartCollab = async (state: State): Promise<State> => {
const backup = state.args?.room && state.collab?.room !== state.args.room const backup = state.args?.room && state.collab?.room !== state.args.room
const room = state.args?.room ?? uuidv4() const room = state.args?.room ?? uuidv4()
window.history.replaceState(null, '', `/${room}`) window.history.replaceState(null, '', `/${room}`)
const { roomConnect } = await import('../prosemirror/p2p')
const [type, provider] = roomConnect(room) const [type, provider] = roomConnect(room)
const extensions = createExtensions({ const extensions = createExtensions({