(
block: Block,
{
addCoordinates = false,
addInputBlocks = true,
addNextBlocks = true,
doFullSerialization = true,
saveIds = true,
}: {
addCoordinates?: boolean;
addInputBlocks?: boolean;
addNextBlocks?: boolean;
doFullSerialization?: boolean;
saveIds?: boolean;
} = {},
)
| 86 | * serialied (eg it was an insertion marker). |
| 87 | */ |
| 88 | export function save( |
| 89 | block: Block, |
| 90 | { |
| 91 | addCoordinates = false, |
| 92 | addInputBlocks = true, |
| 93 | addNextBlocks = true, |
| 94 | doFullSerialization = true, |
| 95 | saveIds = true, |
| 96 | }: { |
| 97 | addCoordinates?: boolean; |
| 98 | addInputBlocks?: boolean; |
| 99 | addNextBlocks?: boolean; |
| 100 | doFullSerialization?: boolean; |
| 101 | saveIds?: boolean; |
| 102 | } = {}, |
| 103 | ): State | null { |
| 104 | if (block.isInsertionMarker()) { |
| 105 | return null; |
| 106 | } |
| 107 | const state: State = { |
| 108 | 'type': block.type, |
| 109 | 'id': saveIds ? block.id : undefined, |
| 110 | }; |
| 111 | |
| 112 | if (addCoordinates) { |
| 113 | saveCoords(block, state); |
| 114 | } |
| 115 | saveAttributes(block, state); |
| 116 | saveExtraState(block, state, doFullSerialization); |
| 117 | saveIcons(block, state, doFullSerialization); |
| 118 | saveFields(block, state, doFullSerialization); |
| 119 | if (addInputBlocks) { |
| 120 | saveInputBlocks(block, state, doFullSerialization, saveIds); |
| 121 | } |
| 122 | if (addNextBlocks) { |
| 123 | saveNextBlocks(block, state, doFullSerialization, saveIds); |
| 124 | } |
| 125 | |
| 126 | return state; |
| 127 | } |
| 128 | |
| 129 | /** |
| 130 | * Adds attributes to the given state object based on the state of the block. |
no test coverage detected