UNPKG

@limitless-angular/sanity

Version:

A powerful Angular library for Sanity.io integration, featuring Portable Text rendering and optimized image loading.

1 lines 7.46 kB
{"version":3,"file":"limitless-angular-sanity-visual-editing-helpers.mjs","sources":["../../../../packages/sanity/visual-editing-helpers/src/comlinkCompatibility.ts","../../../../packages/sanity/visual-editing-helpers/src/limitless-angular-sanity-visual-editing-helpers.ts"],"sourcesContent":["import {\n createListenLogic,\n createRequestMachine,\n DOMAIN,\n MSG_DISCONNECT,\n MSG_HANDSHAKE_ACK,\n MSG_HANDSHAKE_SYN,\n MSG_HANDSHAKE_SYN_ACK,\n MSG_HEARTBEAT,\n MSG_RESPONSE,\n type InternalMessageType,\n type Message,\n type ProtocolMessage,\n type RequestMachineContext,\n} from '@sanity/comlink';\nimport type {\n LoaderControllerMsg,\n LoaderNodeMsg,\n PreviewKitNodeMsg,\n VisualEditingControllerMsg,\n VisualEditingNodeMsg,\n} from './types';\n\ntype ComlinkMessageType =\n | InternalMessageType\n | (\n | LoaderControllerMsg\n | LoaderNodeMsg\n | PreviewKitNodeMsg\n | VisualEditingControllerMsg\n | VisualEditingNodeMsg\n )['type'];\n\ntype ChannelsMessageType =\n | 'handshake/syn'\n | 'handshake/syn-ack'\n | 'handshake/ack'\n | 'channel/response'\n | 'channel/heartbeat'\n | 'channel/disconnect'\n | 'overlay/focus'\n | 'overlay/navigate'\n | 'overlay/toggle'\n | 'presentation/toggleOverlay';\n\nconst channelsToComlinkMap: {\n [key in ChannelsMessageType]: ComlinkMessageType;\n} = {\n 'handshake/syn': MSG_HANDSHAKE_SYN,\n 'handshake/syn-ack': MSG_HANDSHAKE_SYN_ACK,\n 'handshake/ack': MSG_HANDSHAKE_ACK,\n 'channel/response': MSG_RESPONSE,\n 'channel/heartbeat': MSG_HEARTBEAT,\n 'channel/disconnect': MSG_DISCONNECT,\n 'overlay/focus': 'visual-editing/focus',\n 'overlay/navigate': 'visual-editing/navigate',\n 'overlay/toggle': 'visual-editing/toggle',\n 'presentation/toggleOverlay': 'presentation/toggle-overlay',\n};\n\nconst comlinkToChannelsMap: {\n [key in ComlinkMessageType]?: ChannelsMessageType;\n} = {\n [MSG_HANDSHAKE_SYN]: 'handshake/syn',\n [MSG_HANDSHAKE_SYN_ACK]: 'handshake/syn-ack',\n [MSG_HANDSHAKE_ACK]: 'handshake/ack',\n [MSG_RESPONSE]: 'channel/response',\n [MSG_HEARTBEAT]: 'channel/heartbeat',\n [MSG_DISCONNECT]: 'channel/disconnect',\n 'visual-editing/focus': 'overlay/focus',\n 'visual-editing/navigate': 'overlay/navigate',\n 'visual-editing/toggle': 'overlay/toggle',\n 'presentation/toggle-overlay': 'presentation/toggleOverlay',\n};\n\nconst convertToComlinkEvent = (\n event: MessageEvent<ProtocolMessage>,\n): MessageEvent<ProtocolMessage> => {\n const { data } = event;\n\n if (\n data &&\n typeof data === 'object' &&\n 'domain' in data &&\n 'type' in data &&\n 'from' in data &&\n 'to' in data\n ) {\n if (data.domain === 'sanity/channels') {\n data.domain = DOMAIN;\n }\n\n if (data.to === 'overlays') {\n data.to = 'visual-editing';\n }\n\n if (data.from === 'overlays') {\n data.from = 'visual-editing';\n }\n\n data.type =\n channelsToComlinkMap[data.type as ChannelsMessageType] ?? data.type;\n }\n\n return event;\n};\n\nconst convertToChannelsMessage = (\n message: ProtocolMessage,\n): ProtocolMessage => {\n if (message.domain === DOMAIN) {\n message.domain = 'sanity/channels';\n }\n\n if (message.to === 'visual-editing') {\n message.to = 'overlays';\n }\n\n if (message.from === 'visual-editing') {\n message.from = 'overlays';\n }\n\n message.type =\n comlinkToChannelsMap[message.type as ComlinkMessageType] ?? message.type;\n\n if (\n message.type === 'channel/response' &&\n message.responseTo &&\n !message.data\n ) {\n message.data = { responseTo: message.responseTo };\n }\n\n if (\n message.type === 'handshake/syn' ||\n message.type === 'handshake/syn-ack' ||\n message.type === 'handshake/ack'\n ) {\n message.data = { id: message.connectionId };\n }\n\n return message;\n};\n\nconst sendAsChannelsMessage = <S extends Message>(\n { context }: { context: RequestMachineContext<S> },\n params: { message: ProtocolMessage },\n): void => {\n const { sources, targetOrigin } = context;\n\n const message = convertToChannelsMessage(params.message);\n\n sources.forEach((source) => {\n source.postMessage(message, { targetOrigin });\n });\n};\n\n// @todo Why is this necessary?\nexport {\n type ListenInput,\n type Message,\n type MessageData,\n type MessageType,\n MSG_RESPONSE,\n type ProtocolMessage,\n type RequestMachineContext,\n type ResponseMessage,\n} from '@sanity/comlink';\n\nexport const createCompatibilityActors = <T extends Message>(): {\n listen: ReturnType<typeof createListenLogic>;\n requestMachine: ReturnType<typeof createRequestMachine<T>>;\n} => ({\n listen: createListenLogic(convertToComlinkEvent),\n requestMachine: createRequestMachine<T>().provide({\n actions: {\n 'send message': sendAsChannelsMessage,\n },\n }),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}