mobx-downloader 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2083 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +51 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +2056 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +13 -16
- package/pnpm-workspace.yaml +0 -3
- package/source/Task.ts +2 -1
- package/dist/index.d.ts +0 -53
- package/dist/index.d.ts.map +0 -1
- package/dist/index.esm.js +0 -861
- package/dist/index.esm.js.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["id","name","path","fsHandle","total","loaded","percent","executing","options","MobX","destroy","persist","ByteSize","fileNameOf","observable","computed","ref","Reflect","get","DownloadTask","nameOf","stream","totalSize","loadedSize","toJSON","saveMeta","data","buffer","progress","Object","assign","start","started","innerStream","outerStream","Promise","withResolvers","ReadableStream","from","loadStream","tee","chunk","error","resolve","console","table","reject","promise","pause","URI","_object_spread","_sliced_to_array","_dec","HTTPClient","restore","DownloadTask","HTTPDownloadTask","path","name","client","responseType","id","loadStream","options","suggestedName","writer","stream","chunk","nameOf","fsHandle","showSaveFilePicker","createWritable","keepExistingData","download","range","loaded","executing","write","type","position","data","buffer","saveMeta","close","tasks","computed","observable","persist","restore","HTTPDownloadTask","set","map","name","path","get","list","Downloader","createTask","unfinishedCount","filter","percent","length","executingCount","executing","sameTask","find","task","destroyTask","index","findIndex","N","ReferenceError","destroy","slice","split","protocol","ProtocolTask","protocolMap","URIError","http","https","Object","defineProperty","exports","Symbol","toStringTag","value","__create","create","__defProp","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__copyProps","to","from","except","desc","keys","i","n","length","key","call","get","k","bind","enumerable","__toESM","mod","isNodeMode","target","__esModule","mobx","require","mobx_restful","koajax","web_utility","_apply_decs_2203_r$1","targetClass","memberDecs","classDecs","parentClass","createAddInitializerMethod","initializers","decoratorFinishedRef","addInitializer","initializer","assertNotFinished","assertCallable","push","memberDec","dec","name","kind","isStatic","isPrivate","metadata","kindStr","ctx","static","private","v","set","originalGet","arguments","originalSet","access","has","newValue","fnName","Error","fn","hint","TypeError","assertValidReturnValue","type","init","applyMemberDec","ret","base","decInfo","decs","newInit","instance","ownInitializers","originalInitializer","args","applyMemberDecs","Class","decInfos","protoInitializers","staticInitializers","existingProtoNonFields","Map","existingStaticNonFields","Array","isArray","existingNonFields","existingKind","pushInitializers","applyClassDecs","newClass","nextNewClass","defineMetadata","for","configurable","parentMetadata","e","c","_array_like_to_array$1","arr","len","arr2","_array_with_holes$1","_async_iterator$1","iterable","method","async","sync","retry","asyncIterator","iterator","AsyncFromSyncIterator$1","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","then","next","apply","return","throw","thr","asyncGeneratorStep$1","gen","_next","_throw","arg","info","error","_async_to_generator$1","self","err","_check_private_redeclaration$1","obj","privateCollection","_class_apply_descriptor_get$1","receiver","descriptor","_class_apply_descriptor_set$1","writable","_class_call_check$2","Constructor","_class_extract_field_descriptor$1","privateMap","action","_class_private_field_get$1","_class_private_field_init$1","_class_private_field_set$1","_defineProperties$2","props","_create_class$2","protoProps","staticProps","_define_property$2","_iterable_to_array_limit$1","_i","_arr","_n","_d","_s","_e","_non_iterable_rest$1","_object_spread$1","source","ownKeys","getOwnPropertySymbols","concat","filter","sym","forEach","_object_without_properties","excluded","sourceKeys","Reflect","indexOf","propertyIsEnumerable","_object_without_properties_loose","_sliced_to_array$1","_unsupported_iterable_to_array$1","_ts_generator$2","thisArg","body","f","y","t","_","label","sent","trys","ops","g","Iterator","d","verb","step","op","pop","o","minLen","toString","slice","test","_dec$1","_dec1","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_init_id","_init_name","_init_path","_init_fsHandle","_init_total","_init_loaded","_init_percent","_init_executing","_init_options","_initProto$1","observable$1","observable","computed$1","computed","ref","persist","____private_id_1","WeakMap","____private_name_2","____private_path_3","____private_fsHandle_4","____private_total_5","____private_loaded_6","____private_percent_7","____private_executing_8","____private_options_9","DownloadTask","path","nameOf","_v","ByteSize","total","loaded","toJSON","_this","id","fsHandle","percent","options","saveMeta","data","buffer","progress","assign","start","started","_ReadableStream_from_tee","innerStream","outerStream","_arguments","_state","withResolvers","ReadableStream","loadStream","tee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","_value","chunk","console","table","promise","stream","pause","executing","destroy1","destroy","URI","fileNameOf","ref2","_assert_this_initialized","ReferenceError","_async_generator","front","back","send","request","resume","result","overloaded","_overload_yield","nextKey","settle","_invoke","_async_iterator","AsyncFromSyncIterator","_await_async_generator","_call_super","derived","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","construct","_class_call_check$1","_defineProperties$1","_create_class$1","_define_property$1","setPrototypeOf","__proto__","_inherits","subClass","superClass","_set_prototype_of","Boolean","valueOf","_object_spread","_type_of","p","_ts_generator$1","_wrap_async_generator","HTTPDownloadTask","DownloadTask1","HTTPClient","responseType","restore","suggestedName","_tmp","writer","showSaveFilePicker","createWritable","keepExistingData","client","download","range","write","position","close","_apply_decs_2203_r","_array_like_to_array","_array_with_holes","_array_without_holes","asyncGeneratorStep","_async_to_generator","_check_private_redeclaration","_class_apply_descriptor_get","_class_apply_descriptor_set","_class_call_check","_class_extract_field_descriptor","_class_private_field_get","_class_private_field_init","_class_private_field_set","_defineProperties","_create_class","_define_property","_iterable_to_array","iter","_iterable_to_array_limit","_non_iterable_rest","_non_iterable_spread","_sliced_to_array","_unsupported_iterable_to_array","_to_consumable_array","_ts_generator","_dec","_init_tasks","_initProto","tasks","map","param","list","Downloader","createTask","____private_tasks_1","sameTask","find","task","destroyTask","index","findIndex","protocol","split","ProtocolTask","protocolMap","URIError","ref1","http","https"],"sources":["../source/Task.ts","../source/HTTP.ts","../source/index.ts"],"sourcesContent":["import { Context, DownloadOptions, HTTPClient, TransferProgress } from 'koajax';\nimport * as MobX from 'mobx';\nimport { destroy, persist } from 'mobx-restful';\nimport type { FileSystemHandle } from 'native-file-system-adapter';\nimport type { ReadableStream } from 'web-streams-polyfill';\nimport { ByteSize, fileNameOf } from 'web-utility';\n\nconst { observable, computed } = MobX;\nconst ref =\n Reflect.get(MobX, 'observableRef') || Reflect.get(observable, 'ref');\n\nexport abstract class DownloadTask implements Partial<TransferProgress> {\n abstract client: Pick<HTTPClient<Context>, 'download'>;\n\n @persist()\n @observable\n accessor id = '';\n\n @persist()\n @observable\n accessor name = '';\n\n @persist()\n @observable\n accessor path = '';\n\n @persist()\n @ref\n accessor fsHandle: FileSystemHandle | undefined;\n\n @persist()\n @observable\n accessor total = 0;\n\n @persist()\n @observable\n accessor loaded = 0;\n\n @persist()\n @observable\n accessor percent = 0;\n\n @observable\n accessor executing = false;\n\n @persist()\n @observable\n accessor options: DownloadOptions | undefined;\n\n stream?: ReadableStream<Partial<TransferProgress>>;\n\n @computed\n get totalSize() {\n return new ByteSize(this.total);\n }\n\n @computed\n get loadedSize() {\n return new ByteSize(this.loaded);\n }\n\n static nameOf(URI: string) {\n return fileNameOf(URI);\n }\n\n constructor(path: string, name = DownloadTask.nameOf(path)) {\n this.path = path;\n this.name = name;\n }\n\n toJSON() {\n const { id, name, path, fsHandle, total, loaded, percent, options } =\n this;\n\n return {\n ...{ id, name, path, fsHandle, options },\n ...{ total, loaded, percent }\n };\n }\n\n saveMeta(data: Partial<TransferProgress> = {}) {\n const { buffer, ...progress } = data;\n\n Object.assign(this, progress);\n\n return data;\n }\n\n abstract loadStream(\n options?: DownloadOptions\n ): AsyncGenerator<Partial<TransferProgress>>;\n\n async start(options = this.options) {\n this.options = options;\n\n const started = Promise.withResolvers<void>();\n\n const [innerStream, outerStream] = (\n await import('web-streams-polyfill')\n ).ReadableStream.from<Partial<TransferProgress>>(\n this.loadStream(options)\n ).tee();\n\n (async () => {\n try {\n for await (const chunk of innerStream) {\n started.resolve();\n console.table(chunk);\n }\n } catch (error) {\n started.reject(error);\n }\n })();\n\n await started.promise;\n\n return (this.stream = outerStream);\n }\n\n async pause() {\n this.executing = false;\n }\n\n async destroy() {\n await this.pause();\n\n return destroy(this, this.id);\n }\n}\n","import { HTTPClient, type DownloadOptions } from 'koajax';\nimport { restore } from 'mobx-restful';\nimport type { FileSystemFileHandle } from 'native-file-system-adapter';\n\nimport { DownloadTask } from './Task';\n\nexport class HTTPDownloadTask extends DownloadTask {\n client: DownloadTask['client'] = new HTTPClient({\n responseType: 'arraybuffer'\n });\n\n constructor(path: string, name?: string) {\n super(path, name);\n\n this.id = `http-download-task-${this.name}`;\n\n restore(this, this.id);\n }\n\n async *loadStream(options?: DownloadOptions) {\n const { path } = this;\n const suggestedName = DownloadTask.nameOf(path);\n\n this.fsHandle ||= await (\n await import('native-file-system-adapter')\n ).showSaveFilePicker({ suggestedName });\n\n const writer = await (\n this.fsHandle as FileSystemFileHandle\n ).createWritable({\n keepExistingData: true\n }),\n stream = this.client.download(path, {\n range: [this.loaded],\n ...options\n });\n\n try {\n this.executing = true;\n\n for await (const chunk of stream) {\n await writer.write({\n type: 'write',\n position: this.loaded,\n data: chunk.buffer\n });\n\n yield this.saveMeta(chunk);\n\n if (!this.executing) break;\n }\n } finally {\n await writer.close();\n\n this.executing = false;\n }\n }\n}\n","import { computed, observable } from 'mobx';\nimport { persist, restore } from 'mobx-restful';\nimport { Constructor } from 'web-utility';\n\nimport { HTTPDownloadTask } from './HTTP';\nimport { DownloadTask } from './Task';\n\nexport * from './HTTP';\nexport * from './Task';\n\nexport class Downloader {\n static protocolMap: Record<string, Constructor<DownloadTask>> = {\n http: HTTPDownloadTask,\n https: HTTPDownloadTask\n };\n\n static createTask(path: string, name?: string) {\n const [protocol] = path.split(':');\n const ProtocolTask = Downloader.protocolMap[protocol];\n\n if (!ProtocolTask)\n throw new URIError(\n `Protocol \"${protocol} has not been registered\"`\n );\n return new ProtocolTask(path, name);\n }\n\n constructor() {\n restore(this, 'downloader');\n }\n\n @persist({\n set: tasks => tasks.map(({ name, path }) => ({ name, path })),\n get: list =>\n list?.map(({ name, path }) => Downloader.createTask(path, name)) ||\n []\n })\n @observable\n accessor tasks: DownloadTask[] = [];\n\n @computed\n get unfinishedCount() {\n return this.tasks.filter(({ percent }) => percent < 100).length;\n }\n\n @computed\n get executingCount() {\n return this.tasks.filter(({ executing }) => executing).length;\n }\n\n createTask(path: string, name?: string) {\n const { tasks } = this;\n const sameTask = tasks.find(task => task.path === path);\n\n if (sameTask) return sameTask;\n\n const task = Downloader.createTask(path, name);\n\n this.tasks = [...tasks, task];\n\n return task;\n }\n\n async destroyTask(name: string) {\n const { tasks } = this;\n const index = tasks.findIndex(({ name: N }) => N === name);\n\n if (index < 0) throw new ReferenceError(`${name} isn't found`);\n\n await tasks[index].destroy();\n\n this.tasks = [...tasks.slice(0, index), ...tasks.slice(index + 1)];\n }\n}\n"],"mappings":"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"}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ByteSize, Constructor } from "web-utility";
|
|
2
|
+
import { Context, DownloadOptions, HTTPClient, TransferProgress } from "koajax";
|
|
3
|
+
import { FileSystemHandle } from "native-file-system-adapter";
|
|
4
|
+
import { ReadableStream } from "web-streams-polyfill";
|
|
5
|
+
export declare abstract class DownloadTask implements Partial<TransferProgress> {
|
|
6
|
+
abstract client: Pick<HTTPClient<Context>, 'download'>;
|
|
7
|
+
accessor id: string;
|
|
8
|
+
accessor name: string;
|
|
9
|
+
accessor path: string;
|
|
10
|
+
accessor fsHandle: FileSystemHandle | undefined;
|
|
11
|
+
accessor total: number;
|
|
12
|
+
accessor loaded: number;
|
|
13
|
+
accessor percent: number;
|
|
14
|
+
accessor executing: boolean;
|
|
15
|
+
accessor options: DownloadOptions | undefined;
|
|
16
|
+
stream?: ReadableStream<Partial<TransferProgress>>;
|
|
17
|
+
get totalSize(): ByteSize;
|
|
18
|
+
get loadedSize(): ByteSize;
|
|
19
|
+
static nameOf(URI: string): string;
|
|
20
|
+
constructor(path: string, name?: string);
|
|
21
|
+
toJSON(): {
|
|
22
|
+
total: number;
|
|
23
|
+
loaded: number;
|
|
24
|
+
percent: number;
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
path: string;
|
|
28
|
+
fsHandle: FileSystemHandle | undefined;
|
|
29
|
+
options: DownloadOptions | undefined;
|
|
30
|
+
};
|
|
31
|
+
saveMeta(data?: Partial<TransferProgress>): Partial<TransferProgress>;
|
|
32
|
+
abstract loadStream(options?: DownloadOptions): AsyncGenerator<Partial<TransferProgress>>;
|
|
33
|
+
start(options?: DownloadOptions | undefined): Promise<ReadableStream<Partial<TransferProgress>>>;
|
|
34
|
+
pause(): Promise<void>;
|
|
35
|
+
destroy(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export declare class HTTPDownloadTask extends DownloadTask {
|
|
38
|
+
client: DownloadTask['client'];
|
|
39
|
+
constructor(path: string, name?: string);
|
|
40
|
+
loadStream(options?: DownloadOptions): AsyncGenerator<Partial<import("koajax").TransferProgress>, void, unknown>;
|
|
41
|
+
}
|
|
42
|
+
export declare class Downloader {
|
|
43
|
+
static protocolMap: Record<string, Constructor<DownloadTask>>;
|
|
44
|
+
static createTask(path: string, name?: string): DownloadTask;
|
|
45
|
+
constructor();
|
|
46
|
+
accessor tasks: DownloadTask[];
|
|
47
|
+
get unfinishedCount(): number;
|
|
48
|
+
get executingCount(): number;
|
|
49
|
+
createTask(path: string, name?: string): DownloadTask;
|
|
50
|
+
destroyTask(name: string): Promise<void>;
|
|
51
|
+
}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Context,DownloadOptions,HTTPClient,TransferProgress}from"koajax";import{ByteSize,Constructor}from"web-utility";import{FileSystemHandle}from"native-file-system-adapter";import{ReadableStream}from"web-streams-polyfill";export{DownloadTask,Downloader,HTTPDownloadTask};
|