MCPcopy Create free account
hub / github.com/TheRedDeveloper/ply-engine / ply_storage_export

Function ply_storage_export

js/storage.js:171–203  ·  view source on GitHub ↗
(storage_id, relative_path_obj)

Source from the content-addressed store, hash-verified

169}
170
171function ply_storage_export(storage_id, relative_path_obj) {
172 var op_id = ply_storage_next_op_id();
173 var relative_path = consume_js_object(relative_path_obj);
174
175 (async function () {
176 try {
177 var root_handle = ply_storage_get_root(storage_id);
178 var parent = await ply_storage_resolve_parent_dir(root_handle, relative_path, false);
179 var file_handle = await parent.dir.getFileHandle(parent.file_name, { create: false });
180 var file = await file_handle.getFile();
181 var array_buffer = await file.arrayBuffer();
182 var blob = new Blob([array_buffer]);
183
184 var download_url = URL.createObjectURL(blob);
185 var anchor = document.createElement('a');
186 anchor.href = download_url;
187 anchor.download = parent.file_name;
188 anchor.style.display = 'none';
189 document.body.appendChild(anchor);
190 anchor.click();
191 anchor.remove();
192 setTimeout(function () {
193 URL.revokeObjectURL(download_url);
194 }, 0);
195
196 ply_storage_finish_ok(op_id);
197 } catch (error) {
198 ply_storage_finish_err(op_id, error);
199 }
200 }());
201
202 return op_id;
203}
204
205function ply_storage_try_recv(op_id) {
206 if (Object.prototype.hasOwnProperty.call(ply_storage_pending, op_id)) {

Callers 1

exportMethod · 0.85

Calls 7

ply_storage_next_op_idFunction · 0.85
consume_js_objectFunction · 0.85
ply_storage_get_rootFunction · 0.85
ply_storage_finish_okFunction · 0.85
ply_storage_finish_errFunction · 0.85
removeMethod · 0.80

Tested by

no test coverage detected