MCPcopy
hub / github.com/RaspberryPiFoundation/blockly / save

Function save

packages/blockly/core/serialization/blocks.ts:88–127  ·  view source on GitHub ↗
(
  block: Block,
  {
    addCoordinates = false,
    addInputBlocks = true,
    addNextBlocks = true,
    doFullSerialization = true,
    saveIds = true,
  }: {
    addCoordinates?: boolean;
    addInputBlocks?: boolean;
    addNextBlocks?: boolean;
    doFullSerialization?: boolean;
    saveIds?: boolean;
  } = {},
)

Source from the content-addressed store, hash-verified

86 * serialied (eg it was an insertion marker).
87 */
88export 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.

Callers 1

saveConnectionFunction · 0.70

Calls 8

saveCoordsFunction · 0.85
saveAttributesFunction · 0.85
saveExtraStateFunction · 0.85
saveIconsFunction · 0.85
saveFieldsFunction · 0.85
saveInputBlocksFunction · 0.85
saveNextBlocksFunction · 0.85
isInsertionMarkerMethod · 0.80

Tested by

no test coverage detected