chunks and dynamic import
This commit is contained in:
parent
86b5ec7eec
commit
3b34b600a7
|
@ -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')
|
||||||
|
|
|
@ -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({
|
||||||
|
|
Loading…
Reference in New Issue
Block a user