MCPcopy Create free account
hub / github.com/PageLeay/celestial-runtime / unpack

Function unpack

lib.commonjs/abi/coders/array.js:60–106  ·  view source on GitHub ↗

* @_ignore

(reader, coders)

Source from the content-addressed store, hash-verified

58 * @_ignore
59 */
60function unpack(reader, coders) {
61 let values = [];
62 let keys = [];
63 // A reader anchored to this base
64 let baseReader = reader.subReader(0);
65 coders.forEach((coder) => {
66 let value = null;
67 if (coder.dynamic) {
68 let offset = reader.readIndex();
69 let offsetReader = baseReader.subReader(offset);
70 try {
71 value = coder.decode(offsetReader);
72 }
73 catch (error) {
74 // Cannot recover from this
75 if ((0, index_js_1.isError)(error, "BUFFER_OVERRUN")) {
76 throw error;
77 }
78 value = error;
79 value.baseType = coder.name;
80 value.name = coder.localName;
81 value.type = coder.type;
82 }
83 }
84 else {
85 try {
86 value = coder.decode(reader);
87 }
88 catch (error) {
89 // Cannot recover from this
90 if ((0, index_js_1.isError)(error, "BUFFER_OVERRUN")) {
91 throw error;
92 }
93 value = error;
94 value.baseType = coder.name;
95 value.name = coder.localName;
96 value.type = coder.type;
97 }
98 }
99 if (value == undefined) {
100 throw new Error("investigate");
101 }
102 values.push(value);
103 keys.push(coder.localName || null);
104 });
105 return abstract_coder_js_1.Result.fromItems(values, keys);
106}
107exports.unpack = unpack;
108/**
109 * @_ignore

Callers 1

decodeMethod · 0.70

Calls 4

subReaderMethod · 0.45
readIndexMethod · 0.45
decodeMethod · 0.45
fromItemsMethod · 0.45

Tested by

no test coverage detected